Hệ thống Firewall xây dựng bởi CSE
2.10.4 Xác thực và dịch vụ xác thực
Bộ Firewall chứa chơng trình server xác thực đợc thiết kế để hỗ trợ cơ chế phân quyền. Authsrv chứa một cơ sở dữ liệu về ngời dùng trong mạng, mỗi bản ghi tơng ứng với một ngời dùng, chứa cơ chế xác thực cho mỗi anh ta, trong đó bao gồm tên nhóm, tên đầy đủ của ngời dùng, lần truy cập mới nhất. Mật khẩu không mã hoá (Plain text password) đợc sử dụng cho ngời dùng trong mạng để việc quản trị đợc đơn giản. Mật khẩu không mã hoá không nên dùng với những ngòi sử dụng từ mạng bên ngoài. Authsrv đợc chạy trên một host an toàn thông thờng là bastion host. Để đơn giản cho việc quản trị authsrv ngời quản trị có thể sử dụng một shell authmsg để quản trị cơ sở dữ liệu có cung cấp cơ chế mã hoá dữ liệu.
Ngời dùng trong 1 cơ sở dữ liệu của authsrv có thể đợc chia thành các nhóm khác nhau đợc quản trị bởi quản trị nhóm là ngời có toàn quyền trong nhóm cả việc thêm, bớt ngời dùng. Điều này thuận lợi khi nhiều tổ chức cùng dùng chung một Firewall.
Để cấu hình authsrv, đầu tiên cần xác định 1 cổng TCP trống và thêm vào một dòng vào trong inetd.conf để gọi authsrv mỗi khi có yêu cầu kết nối. Authsrv không phải một tiến trình deamon chạy liên tục, nó là chơng trình đợc gọi mỗi khi có yêu cầu và chứa một bản sao CSDL để tránh rủi ro. Thêm authsrv vào inet.conf đòi hỏi tạo thêm điểm vào trong /etc/services. Vì authsrv không chấp nhận tham số, mà phải thêm vào inetd.conf và services các dòng nh sau:
Trong /etc/services:
authsrv 7777/tcp
Trong /etc/inetd.conf:
authsrv stream tcp nowait root /usr/proxy/bin/authsrv authsrv
Cổng dịch vụ dùng cho authsvr sẽ đợc dùng để đặt cấu hình cho các ứng dụng client có sử dụng dịch vụ xác thực. Dịch vụ xác thực không cần áp dụng cho tất cả các dịch vụ hay tất cả các client.
#Example ftp gateway rules:
ftp-gw: authserver local host 7777
ftp-gw: denial-msg /usr/proxy/etc/ftp-deny.txt
ftp-gw: welcome-msg /usr/proxy/etc/ftp-welcome.txt
ftp-gw: help-msg /usr/proxy/etc/ftp-help.txt
ftp-gw: permit-host 192.33.112.100
ftp-gw: permit-host 192.33.112.* -log {retr stor} -auth {stor}
ftp-gw: permist-host * -authall
ftp-gw: timeout 36000
Trong ví dụ trên, xác thực dùng với FTP proxy. Dòng đầu tiên định nghĩa địa chỉ mạng cổng dịch vụ của chơng trình xác thực. Dòng permist-host cho thấy một trong số sự mềm dẻo của hệ thống xác thực, một host đợc lựa chọn để không phải chịu cơ chế xác thực, ngời dùng từ host này có thể truy cập tự do tới mọi dịch vụ của proxy. Permist-host thứ 2 đòi hỏi xác thực mọi hệ thống trong mạng 192.33.112 muốn truyền ra ngoài với -auth {store} những thao tác của FTP sẽ bị khoá tới khi ngời dùng hoàn thành việc xác thực với server. Khi đó, lệnh đợc mở khoá và ngời dùng có thể vào
hệ thống. Ví dụ cuối định nghĩa mọi ngời có thể nối với server nhng trớc hết họ phải đợc xác thực.
Authsrv server phải đợc cấu hình để biết máy nào đợc cho phép kết nối. Điều này cấm tất cả những cố gắng truy nhập bất hợp pháp vào server từ những server không chạy những phần mềm xác thực. Trong Firewall authsrv sẽ chạy trên bastion host cùng với proxy trên đó. Nếu không có hệ thống nào đòi hỏi truy cập, mỗi client và server coi “local host” nh một địa chỉ truyền thông. Cấu hình authsrv định nghĩa nó sẽ vận hành CSDL và client hỗ trợ.
#Example authhsrv rules:
authsrv: database /usr/proxy/bin/authsrv.db
authsrv: permit-host localhost
authsrv: permit-host 192.5.214..32
Trong ví dụ trên, đờng dẫn tới CSDL định nghĩa và 2 host đợc nhận ra. Chú ý CSDL ở trên trong hệ thống đợc bảo vệ hoặc đợc bảo vệ nghiêm ngặt bởi cơ chế truy cập file. Bảo vệ CSDL rất quan trọng do đó nên để CSDL trên bastion host. Lối vào thứ 2 là một ví dụ về client sử dụng mã hoá DES trong khi truyền thông với authsrv. Khoá mã chứa trong tệp cấu hình đòi hỏi file cấu hình phải đợc bảo vệ. Nói chung, việc mã hoá là không cần thiết. Kết quả của việc mã hoá là cho phép quản trị có thể quản lý cơ sở dữ liệu xác thực từ trạm làm việc. Luồng dữ liệu duy nhất cần phải bảo vệ là khi ngời quản trị mạng đặt lại mật khẩu qua mạng cục bộ, hay khi quản lý cơ sở dữ liệu xác thực qua mạng diện rộng.
Duy trì CSDL xác thực dựa vào 2 công cụ authload và authdump để load và dump CSDL xác thực. Ngời quản trị
nên chạy authdump trong crontab tạo bản sao dạng ASCII của CSDL để tránh trờng hợp xấu khi CSDL bị hỏng hay bị xoá.
Authsrv quản lý nhóm rất mềm dẻo, quản trị có thể nhóm ngời dùng thành nhóm dùng “group wiz”, ngời có quyền quản trị nhóm có thể xoá, thêm, tạo sửa bản ghi trong nhóm, cho phép hay cấm ngời dùng, thay đổi password của mật khẩu của user trong nhóm của mình. Quản trị nhóm không thay đổi đợc ngời dùng của nhóm khác, tạo ra nhóm mới hay thay đổi quan hệ giữa các nhóm. Quản trị nhóm chỉ có quyền hạn trong nhóm của mình. Việc này có ích đối với tổ chức có nhiều nhóm làm việc cùng sử dụng Firewall. Tạo một ngời sử dụng bằng lệnh “adduser”
adduser mrj ‘Marcus J. Ranum’
Khi một user record mới đợc tạo nó cha đợc hoạt động và ngời sử dụng cha thể login. Trớc khi ngời sử dụng login, quản trị mạng có thể thay đổi mật khẩu và số hiệu nhóm của ngời sử dụng đó
group users mjr
password “whumpus” mjr proto SecurID mjr enable mjr
Khi một user record tạo ra bởi ngời quản trị nhóm, nó thừa hởng số hiẹu nhóm cũng nh giao thức xác thực. User record có thể xem bởi lệnh “display” hay “list”.
Ví dụ một phiên làm việc với Authmsg:
%-> authmgs
Connected to server authmgr-> login
Username: wizard
Challenge “200850” : 182312 Logged in
authmgs-> disp wizard
Report for user wizard (Auth DBA)
Last authenticated: Fri Oct 8 17:11:07 1993 Authentication protocol: Snk
Flags: WIZARD authmgr-> list
Report for user in database
user group longname flags proto last
--- --- --- --- --- ---
wizard users Auth DBA y W SnkFri Oct 8 17:02:56 1993
avolio users Fred Avolio y passwd Fri Sep 24 10:52:14 1993
rnj users Robert N. Jesse y passwd Wed Sep 29 18:35:45
1993
mjr users Marcus J. Ranum y noneri Oct 8 17:02:10 1993
authmgr-> adduser dalva “Dave dalva” ok - user added initially disable authmgr-> enable dalva
enabled
authmgr-> group dalva users set group
authmgr-> proto dalva Skey changed
authmgr-> disp dalva
Report for user dalva, group users (Dave Dalva) Authentication protocol: Skey
Flags: none
Password: #######
Repeat Password: #######
ID dalva s/key is 999 sol32 authmgr-> quit
Trong ví dụ trên quản trị nối vào authsrv qua mạng sử dụng giao diện authmsg sau khi xác thực user record hiển thị thời gian xác thực. Sau khi login, list CSDL user, tạo ngời dùng, đặt password, enable và đa vào nhóm.
Khởi tạo CSDL Authsrv:
# authsrv
-administrator mode-
authsrv# list
Report for user in database
user group longname flags proto last
--- --- --- --- --- ---
authsrv# adduser admin ‘Auth DBA’ ok - user added initially disable authsrv# enable admin
enabled
authsrv# superwiz admin set wizard
authsrv# proto admin Snk changed
authsrv# pass ‘160 270 203 065 022 034 232 162’ admin Secret key changed
authsrv# list
--- --- --- --- ---- ---
admin Auth DBA y W Snk never
authsrv# quit
Trong ví dụ, một CSDL mới đợc tạo cùng với một record cho ngời quản trị. Ngời quản trị đợc gán quyền, gán protocol xác thực.