Thuật ngữ xác thực, thẩm quyền, và tính toán cước (Authentication, Authorization, và Accounting - AAA) ám chỉ đến một số dịch vụ bảo mật phổ biến. Phần này tập trung vào ký tự A đầu tiên trong AAA – là xác thực (authentication) và nó dùng để quản lý truy cập dến router và IOS của switch như thế nào. Phương thức xác thực mạnh nhất được dùng để quản lý truy cập đến router hay IOS của switch là dùng TACACS+ hay RADIUS. Sản phẩm ACS (Cisco Secure Access Control Server) là một sản phẩm phần mềm có thể cài trên Linux, Unix và vài hệ điều hành Window. Máy chủ sẽ lưu các tên người dùng và mật khầu được sử dụng trong quá trình xác thực. Các router và switch sau đó cần phải nhận tên người dùng và mật khẩu, gửi các thông tin này dưới dạng mã hóa và nhận thông điệp trả lời. Sau đó sẽ chấp nhận hay từ chối yêu cầu truy cập. Bảng 21.1 tóm tắt các thông tin chủ chốt về RADIUS và TACACS+.
|
Radius |
Tacacs+ |
Tầm vực mã hóa: cả gói tin hay chỉ mã hóa mật khẩu |
Chỉ mã hóa password |
Toàn bộ gói tin |
Giao thức lớp 4 |
UDP |
TCP |
Địa chỉ cổng được dùng cho xác thực |
1812/1645 |
49/49 |
Chuẩn hay của Cisco |
RFC2865 |
Riêng của Cisco |
Bảng 21.1: Các đặc điểm cơ bản của Radius và Tacacs+
+ Dùng tập hợp phương thức xác thực mặc định
Cấu hình xác thực AAA bao gồm vài lệnh để định nghĩa các phương thức xác thực. Một phương thức xác thực là cách thức để xác thực hoặc thẩm định một người dùng. Ví dụ, một phương thức là yêu cầu máy chủ RADIUS xác thực một người dùng đang đăng nhập, một cách thức khác là để router tìm kiếm các lệnh định nghĩa username trong cấu hình cục bộ của router.
Một tập hợp của các phương thức cấu hình được đại diện bằng một danh sách có thứ tự, trong đó từng phương thức được thử theo thứ tự cho đến khi nào một phương thức nào đó trả về một thông điệp là từ chối hay chấp nhận người dùng.
Cấu hình đơn giản nhất của AAA sẽ định nghĩa một tập hợp của các phương thức xác thực được dùng một cách mặc định cho các truy cập vào router hay vào switch. Ngoài ra, một tập hợp mặc định của các phương thức xác thực được dùng bởi lệnh enable. Phương thức xác thực mặc định áp dụng vào tất cả các tiến trình truy cập: console, Telnet và aux.
Phương thức xác định mặc định được dùng bởi lệnh enable đơn giản mô tả IOS của Cisco làm gì khi người dùng gõ lệnh enable. Cấu hình tổng thể sử dụng các bước sau:
Ví dụ dưới đây hiển thị một cấu hình router mẫu dùng các lệnh này. Trong trường hợp này, hai máy chủ RADIUS được cấu hình. Một máy chủ dùng cổng mặc định 1645 và máy chủ còn lại dùng cổng 1812. Theo cấu hình dưới đây, router này cố gắng xác thực như sau:
Lệnh kế tiếp mô tả rằng mật khẩu enable secret password vẫn được cấu hình nhưng sẽ không được dùng. Lệnh username định nghĩa một username/password sẽ được dùng cho quá trình xác thực nếu máy chủ RADIUS không được thấy bởi máy chủ. Chú ý rằng số 0 trong câu lệnh username có ý nghĩa chỉ ra rằng mật khẩu không được mã hóa.
R1# show running-config
! lines omitted for brevity
enable secret 5 $1$GvDM$ux/PhTwSscDNOyNIyr5Be/
username cisco password 0 cisco
Kế tiếp, AAA được bật lên. Các phương thức xác thực mặc định và phương thức xác thực để vào chế độ enable được định nghĩa.
aaa new-model
aaa authentication enable default group radius local
aaa authentication login default group radius none
Kế tiếp, hai máy chủ Radius được định nghĩa. Các giá trị cổng bị bỏ qua khi lệnh radius-server host 10.1.1.2 được thực hiện. IOS sẽ tự động điền vào giá trị cổng mặc định. Tương tự, lệnh radius-server host 10.1.1.1 auth-port 1812 được thực hiện với IOS tự động thêm vào giá trị cổng trong câu lệnh.
radius-server host 10.1.1.1 auth-port 1812 acct-port 1646
radius-server host 10.1.1.2 auth-port 1645 acct-port 1646
radius-server key cisco
Trước khi AAA được cấu hình, cả hai line console và vty đều đã cấu hình các lệnh login và password như liệt kê trong ví dụ trên. Việc bật AAA sẽ xóa các lệnh login. Thay vào đó mặc định lệnh aaa authentication login default ở chế độ toàn cục sẽ được dùng. Các password trong chế độ line sẽ chỉ được dùng nếu trong câu lệnh aaa authentication login có chỉ ra phương thức là line.
line con 0
password cisco
line vty 0 4
password cisco
Xác thực AAA cho phép tham chiếu đến nhiều máy chủ và nhiều phương thức xác thực để một người dùng có thể chỉ được xác thực chỉ nếu một phương thức xác thực không làm việc. Lệnh aaa authentication hỗ trợ lên đến 4 phương thức trên một lệnh duy nhất. Thêm vào đó, không có giới hạn thực tế đối với số máy chủ RADIUS và TACACS+. Thuật toán được dùng bởi IOS của Cisco khi dùng các phương thức này là như sau:
Ví dụ, cấu hình dưới đây khai báo máy chủ RADIUS 10.1.1.1 và 10.1.1.2 theo thức tự đó, vì vậy các máy chủ này sẽ được kiểm tra trong cùng thứ tự. Nếu không có bất kỳ thông điệp trả lời nào thì phương thức kế tiếp sẽ được dùng. Phương thức none có nghĩa là tự động cho người dùng vào và xác thực dựa trên lệnh username.
Bảng 21.2 liệt kê các phương thức xác thực phổ biến cho phép đăng nhập vào chế độ enable mode cùng với một mô tả ngắn.
Phương thức |
Ý nghĩa |
Group radius |
Hãy dùng các máy chủ radius được cấu hình |
Group tacacs+ |
Hãy dùng các máy chủ tacacs+ được cấu hình |
Group name |
Hãy dùng một nhóm của các máy chủ radius hoặc tacacs+ |
Enable |
Hãy dùng enable password dựa trên câu lệnh enable secret hay enable password |
Line |
Hãy dùng password được định nghĩa trong câu lệnh ở chế độ line |
Local |
Hãy dùng username trong cấu hình cục bộ, hãy xem username không quan tâm chử thường hay chữ hoa nhưng mật khẩu là phân biệt chữ thường, chữ hoa |
Local-case |
Hãy dùng lệnh username trong cấu hình cục bộ. Xem cả username và password là phân biệt chữ thường, chữ hoa |
None |
Không cần xác thực. Người dùng tự động được xác thực. |
Bảng 21.2: Các phương thức xác thực phổ biến
+ Nhóm các máy chủ của AAA
Mặc định, IOS của Cisco tự động nhóm các máy chủ RADIUS và TACACS+ được cấu hình bởi câu lệnh radius-server host và tacacs-server host vào một nhóm, gọi là Radius và Tacacs+.
Lệnh aaa authentication bao gồm từ khóa group radius hoặc group tacacs+ để chỉ đến các nhóm mặc định. Mặc định, tất cả các máy chủ RADIUS định nghĩa trong group radius và các máy chủ TACACS+ định nghĩa trong group tacacs+. Trong vài trường hợp, đặc biệt là với những triển khai cho những hệ thống mạng quay số dạng lớn, một thiết kế có thể dùng các tập hợp khác nhau của các máy chủ RADIUS hay TACACS+. Để làm được điều đó, các máy chủ có thể nhóm với nhau bằng tên. Ví dụ dưới đây hiển thị một cấu hình với hai máy chủ trong một nhóm RADIUS có tên là fred và mô tả lệnh aaa authentication có thể tham chiếu đến một nhóm như thế nào.
Ba lệnh kế tiếp tạo ra một nhóm tên fred của các máy RADIUS. Chú ý rằng các máy chủ được cấu hình bên trong nhóm AAA, dùng lệnh server. Cũng chú ý rằng IOS thêm vào các lệnh auth-port và acct-port tự động.
R1(config)# aaa group server radius fred
R1(config-group)# server 10.1.1.3 auth-port 1645 acct-port 1646
R1(config-group)# server 10.1.1.4 auth-port 1645 acct-port 1646
Để dùng nhóm có tên là fred thay vì là nhóm mặc định, lệnh aaa authentication cần phải tham chiếu đến một nhóm có tên là fred, như được hiển thị kế tiếp.
aaa new-model
aaa authentication enable default group fred local
aaa authentication login default group fred none
Các cổng console, vty và aux có thể vượt qua việc sử dụng phương thức xác thực mặc định. Để làm được việc này, trong chế độ cấu hình ở chế độ line, lệnh login authentication name được dùng để chỉ đến tên một tập hợp các phương thức xác thực khác.
Ví dụ dưới đây hiển thị một nhóm các phương thức cấu hình được gọi là dành riêng cho từng phương thức (for-console, for-vty và for-aux). Trong đó từng phương thức áp dụng vào các phương thức truy cập khác nhau.
Mỗi nhóm được đặt tên định nghĩa một tập hợp các phương thức xác thực khác nhau. Ví dụ dưới đây mô tả một cấu hình trong đó hiện thực các yêu cầu sau:
Cấu hình dưới đây thêm vào đoạn cấu hình đã có trong ví dụ trước đó.
aaa authentication login for-console group radius line
aaa authentication login for-vty group radius local
aaa authentication login for-aux group radius
Các phương thức được bật lên dưới đây bằng lệnh login authentication. Chú ý rằng các mật khẩu khai báo cục bộ vẫn tồn tại trong các cổng console và vty. Đối với cổng console, mật khẩu của line console sẽ được dùng nếu tất cả các máy chủ Radius đều không trả lời. Tuy nhiên, lệnh vty password sẽ không được dùng bởi cấu hình này.
line con 0
password 7 14141B180F0B
login authentication for-console
line aux 0
login authentication for-aux
line vty 0 4
password 7 104D000A0618
login authentication for-vty