Các cách truy cập được xác thực như sau: •aaa authentication login: câu lệnh này trả lời cho câu hỏi: “Tôi có thể xác thực khi login vào hệ thống như thế nào?” •aaa authentication enable
Trang 1Giới thiệu cơ bản về AAA.
AAA quản lý hoạt động cơ bản của user qua các thiết bị như Switch, Router… Nó được sử dụng để xác thực, cấp phát quyền, và loggig hay accounting
Authentication (Xác thực)
Để xác định xem user có quền để truy nhập vào thiết bị hay không
Ta có thể cấu hình để enable AAA trên Router hay Switch
Router(config)#aaa new-model
Ta có thể cấu hình user nội bộ trong thiết bị
Router(config)#username username password password
Định nghĩa TACACS+ hay RADIUS server : AAA server như:Secure Access Control Server(ACS)
Router(config)#tacacs-server host {hostname | ip-address } [key string]
Ở đây thì key ta cấu hình ở router phải trùng với key cấu hình ở server Định nghĩa các phương thức truy nhập vào Router qua cac line (console, vty)
Router(config)#aaa authentication login {default | list-name} method1
[method2…]
Có một phương thức như sau
Tacacs+: Mỗi TACACS+ server được cấu hình thì Router sẽ cố gắng theo trình tự được cấu hình ở trên
Radius: Tương tự như tacacs
Local: Nó sẽ lấy các user nội bộ bằng lệnh username
Line: Line password có thể được sử dụng cho bất kỳ user nào
Nếu ta sử dụng default thì nó sẽ áp dụng vào tất cả các line, còn đối với name-list thì ta phải áp dụng nó vào từng line mà ta muốn Áp dụng các phương thức vào Line(console hoặc vty)
Router(config-line)#login authentication {default | list-name}
Ta cấu hình bảo vệ bằng enable password ở privilege
Router(config)#aaa authentication enable default method1 [ [method4]]
Authorization(Xác định thẩm quyền)
Sau khi xác thực xong thì không phải tất cả các user đều có quyền như nhau mà ta
sẽ phân cấp quyền cho các user theo nhiều cấp khác nhau, cho từng mode khác nhau
Router(config)#aaa authorization {command | configuration | exec | network| reverse-access} {default | list-name} method1 [method2 …]
Command : Server sẽ trả về quyền cho phép user các lệnh có thể ở privilege level
Trang 2Config-command: Server sẽ trả về quyền cho phép user có thể sử dụng bất kỳ lệnh nào trên thiết bị
Exec: Nó sẽ áp dụng các thuộc tính thích hợp với exec terminal session
Network: Áp dụng cho các kết nối như SLIP, PPP, kết nối ARAP
Reverse-access: Server sẽ trả về quyền được reverse telnet từ Router
Accounting:
Để cho phép server thu thập thông tin từ thiết bị
Router(config)#aaa accounting {system | exec |command | level} {default | list-name} {start-stop | stop-only | wait-start | none } metod1 [method2 …]
System : Cung cấp các sự kiện liên quan đên hệ thống như: reload
Netword: cung cấp các sự kiện liên quan đến kết nối như : PPP, SLIP, ARAP
Exec:Cung cấp thông tin về exec của user như địa chỉ ip của user, và thời gian của session
Start-stop cung cấp sự kiện từ lúc bắt đầu đến lúc kết thúc
Stop-only: Cung cấp sự kiện chỉ khi kết thúc sự kiện
Wait-start: Các yêu cầu của user chưa đựơc khởi tạo cho đến khi accounting record ack
2.1.Cấu hình AAA
Việc cấu hình AAA [1] được thực hiện theo ba bước như sau:
Bước 1: Bật tính năng cho phép cấu hình AAA trên router Trong suốt quá trình
xác định AAA, router phải cấu hình sao cho nó luôn nói chuyện được với
TACACS/RADIUS server
Bước 2: Xác định người nào sẽ được xác thực, được cấp quyền như thế nào, và cái
gì sẽ giám sát cơ sở dữ liệu
Bước 3: Cho phép hoặc định nghĩa phương thức trên giao tiếp.
Các phần tiếp theo sẽ nói một cách chi tiết cách thức bật chức năng AAA (bước 1), cách thức xác định phương thức để xác thực, cấp quyền, và tính cước (bước 2), và
Trang 3cách thức xác định AAA trên một interface (bước 3) Để cho gọn và dễ dàng hiểu
hơn, ta có thể gộp hai bước 2 và 3 lại làm một
Chú ý rằng một khi AAA đã được cho phép trên router, bất kì interface và phương thức kết nối nào cũng phải định nghĩa hoặc không cho phép truy cập vào Do đó, điều quan trọng nhất là phải tạo một “cánh cửa hậu” (back door) hay là cách thức truy cập cục bộ (local) trong suốt quá trình triển khai ban đầu để bảo đảm rằng router luôn có thể truy cập được nếu ta quên những gì đã cấu hình trước đó
2.1.1.Bước 1- Cho phép chức năng AAA trên router
Để cho phép AAA trên router, ta sử dụng câu lệnh sau:
Router(config)#aaa new-model Một khi AAA được cho phép thì router phải chỉ
đến địa chỉ source của AAA server Với TACACS server, thì câu lệnh sẽ là:
Router(config)#tacacs-server host host-ip-address [single-connection]Router(config)#tacacs-server key serverkey Tham số
host-ip-address xác định địa chỉ của TACACS server
Tham số single-connection cho biết router duy trì một kết nối đơn trong suốt phiên
làm việc giữa router và AAA server
Một password chung được dùng giữa access router và AAA server để bảo mật thông tin Ví dụ, câu lệnh cho phép thiết lập password trên router như sau:
Router(config)#tacacs-server key cisco Password được chọn phải giống password
cấu hình như trên AAA server Password phân biệt kí tự hoa, kí tự thường Quá trình cho phép AAA trên RADIUS server cũng tương tự như TACACS, chủ
yếu gồm các câu lệnh sau:
Router(config)#aaa new-modelRouter(config)#radius-server host host-ip-address [single-connection]Router(config)#radius-server key serverkey
2.1.2.Bước 2 và bước 3 - Xác thực, cấp quyền và tính cước
2.1.2.1 Xác thực (authentication) 2.1.2.1.1.AAA Authentication
Một khi đã cho phép AAA trên router, nhà quản trị có thể xác định cách thức dùng
để xác thực Vấn đề chủ yếu ở đây là nhà quản trị có cách thức truy cập vào router
Trang 4nếu AAA server bị down Nếu không cung cấp cách truy cập dự phòng thì có thể dẫn đến mất kết nối với router và ta có thể không thể truy cập vào cổng console được Do đó ta phải luôn cẩn thận để cung cấp cách thức cấu hình truy cập cục bộ
cho bất kì sự cài đặt AAA nào
Cú pháp để cấu hình AAA trên router có thể rất khó nhớ Do đó ta phải phân chia
ra nhiều trường hợp để có thể dễ hiểu hơn Ta có thể xét các phương pháp cụ thể
nhưlogin, enable, arap, để xem xét cách thức xác thực người dùng trên router.
Câu lệnh tổng quát cho xác thực là:
aaa authentication service-type {default | list-name} method1 [method2]
[method3] [method4] Trong đó: service-type là một trong các cách truy cập như
login, enable, arap ppp, nasi Tham số tiếp theo là từ khóa default hoặc tên một danh sách Tên danh sách có thể là một từ ảo bất kì nào đó ngoại trừ từ default, và
được dùng như là tên của một danh sách các phương pháp xác thực Tham
số method1, method2, method3, method4 được dùng để xác định thứ tự xác thực
Ta có thể tham khảo các phương pháp xác thực trong phần sau
Các cách truy cập được xác thực như sau:
•aaa authentication login: câu lệnh này trả lời cho câu hỏi: “Tôi có thể xác thực
khi login vào hệ thống như thế nào?”
•aaa authentication enable: câu lệnh này trả lời cho câu hỏi:”Người dùng có thể
đi vào chế độ thực thi (exec privilege) hay không?”
•aaa authentication arap: câu lệnh này trả lời cho câu hỏi: “Có phải người dùng
giao thức ARAP sử dụng TACACS/RADIUS hay không?”
•aaa authentication ppp: câu lệnh này trả lời cho câu hỏi: “Nếu người dùng đến
từ kết nối PPP thì sẽ sử dụng phương pháp nào?”
•aaa authentication nasi: câu lệnh này trả lời cho câu hỏi: “Nếu người dùng đến
từ NASI thì sẽ sử dụng phương pháp nào?”
2.1.2.1.2.AAA Authentication Login
Phương pháp xác thực được sử dụng trong suốt tiến trình login là gì? Câu hỏi đó
Trang 5được giải quyết trong câu lệnh sau:
aaa authentication login {default | list-name} method1 [method2] [method3] [method4] Từ khóa default cho biết router không sử dụng bất kì listname nào trên
interface Nếu có một listname đã được xác định, thì login có thể theo điều khiển
trong listname đó Ví dụ câu lệnh sau:
aaa authentication ppp myaaa argument1 argument2 argument3 xác định cách thức
list myaaa được chấp nhận Một interface xác định là sử dụng cách xác
thực myaa Các tham số theo sau có thể là:
[enable|line|local|none|tacacs+|radius|guest]
Mỗi một tham số xác định một cách xác thực riêng như sau:
•line: phương pháp này xác định sử dụng password để xác thực vào interface Câu
lệnh này được sử dụng trong câu lệnh login và password trong từng line (console,
vty, )
•enable: phương pháp này xác định rằng sẽ sử dụng câu lệnh enable password để
xác thực trên interface Việc xác thực được thực hiện bằng việc so sánh password
người dùng nhập vào với password trong câu lệnh enable password hay enable
secret của router.
•local: phương pháp này xác định xác thực bằng việc sử dụng
cặp username yyyy password xxxx trên router.
•none: phương pháp này xác định rằng không cần sử dụng phương pháp xác thực
nào cả
•tacacs+: phương pháp này xác định sử dụng TACACS server để xác thực
•radius: phương pháp này xác định sử dụng RADIUS server để xác thực.
Sau khi cấu hình authentication, ta có thể chỉ rõ interface hoặc line sẽ được xác
thực cụ thể:
Router(config)#line con 0Router(config-line)#login authentication myaaa Ví dụ:
Router(config)#aaa authentication login myaaa tacacs+ radius
localRouter(config)#aaa authentication login default tacacs+Router(config)#line vty 0 4 Router(config-line)#login authentication myaaa Câu lệnh đầu tiên xác định
một listname tên là myaaa sử dụng TACACS+ và sau đó là RADIUS và cuối cùng
là username/password lưu cục bộ trong router để xác thực Câu lệnh thứ tư xác
định line vty từ 0 đến 4 xác thực sử dụng trong list myaaa Chú ý rằng nếu một
người muốn truy cập vào port console, họ có thể xác thực chỉ bằng TACACS+ bởi
Trang 6vì là mặc định (default) không có câu lệnh xác thực login nào cụ thể trên port
console
Ở ví dụ trên ta thấy thứ tự xác thực là điều rất quan trọng: nếu user thất bại trong việc xác thực với TACACS+, thì user đó sẽ bị từ chối truy cập Nếu router thất bại trong việc truy cập với TACACS+, thì router sẽ cố gằng thử tiếp xúc với RADIUS server Vấn đề chính ở đây là phương pháp thứ hai chỉ được sử dụng nếu phương
pháp thứ nhất không phù hợp trên router
Nếu TACACS+ là tùy chọn duy nhất để xác thực thì khi dịch vụ TACACS+ bị down, không ai có thể login vào hệ thống Nếu các phương thức xác thực
là TACACS+ và local thì username/password lưu cục bộ trên router có thể thay thế
để sử dụng nhằm tránh trường hợp không thể login vào router
Thứ tự phương pháp lựa chọn để login vào là rất quan trọng Thông thường
thì local nên được dùng làm phương pháp cuối cùng để cho phép truy cập vào
router ít nhất cũng là bằng một cặp username/password cục bộ trên router
2.1.2.1.3.AAA Authentication Enable
Có câu hỏi đặt ra là: “Phương thức gì được sử dụng nếu một user cố thử truy cập vào privileged mode trên router? Nếu không có phương thức AAA được thiết lập, user phải có enable password Password này được đòi hỏi bởi Cisco IOS Nếu AAA được dùng và không thiết lập chế độ mặc định thì người dùng có thể cần
enable password để truy cập vào chế độ privileged mode
Cấu trúc của AAA tương tự như trong câu lệnh login authentication:
aaa authentication enable {default | list-name} method1 [method2] [method3] [method4] Trong đó các tham số có ý nghĩa tương tự như trong câu lệnh aaa
authentication login.
Các phương pháp dùng cho câu lệnh trên là:
•enable: phương pháp này xác định rằng sẽ sử dụng câu lệnh enable password để
xác thực trên interface Việc xác thực được thực hiện bằng việc so sánh password
người dùng nhập vào với password trong câu lệnh enable password hay enable
secret của router.
•line: phương pháp này xác định sử dụng password để xác thực vào interface Câu
lệnh này được sử dụng trong câu lệnh login và password trong từng line (console,
Trang 7•none: phương pháp này xác định rằng không cần sử dụng phương pháp xác thực
nào cả
•tacacs+: phương pháp này xác định sử dụng TACACS server để xác thực
•radius: phương pháp này xác định sử dụng RADIUS server để xác thực.
Ví dụ:
Router(config)#aaa authentication enable myaaa tacacs+ enable Câu lệnh trên xác định việc truy cập trở lại vào chế độ privilege mode Trong đó, TACACS+ sẽ được kiểm tra đầu tiên, và chỉ khi TACACS+ trả về lỗi (error) hoặc trạng thái không phù hợp (unavailable) thì lúc đó mới kiểm tra enable password Khi nhiều phương pháp được thiết lập cho AAA, thì phương pháp thứ hai chỉ được dùng nếu phương pháp trước đó trả về một lỗi (error) hoặc không phù hợp (unavailable) Nếu nó trả về thông điệp “thất bại” (fail) thì router sẽ không thử xác thực thêm phương pháp tiếp
theo trong listname nữa
2.1.2.1.4 AAA Authentication ARAP
Câu lệnh aaa authentication arapđược sử dụng kết hợp với lệnh arap
authentication trong việc cấu hình line Nó mô tả cách thức mà ARAP user đang
thử truy cập vào router Cú pháp câu lệnh như sau:
aaa authentication arap {default | list-name} method1 [method2] [method3]
[method4] Các phương pháp được dùng trong câu lệnh này:
•line: phương pháp này xác định sử dụng password để xác thực vào interface Câu
lệnh này được sử dụng trong câu lệnh login và password trong từng line (console,
vty, )
•local: phương pháp này xác định xác thực bằng việc sử dụng
cặp username yyyy password xxxx trên router.
•tacacs+: phương pháp này xác định sử dụng TACACS server để xác thực
•guest: phương pháp này cho phép login vào nếu username là guest Tùy chọn này
chỉ phù hợp với ARAP
•auth-guest: phương pháp này cho phép khách chỉ được login vào nếu user đã login vào chế độ EXEC trên router và đang khởi tạo tiến trình ARAP
Chú ý rằng mặc định thì khách viếng thăm không thể login thông qua ARAP khi ta
Trang 8khởi tạo AAA Câu lệnh aaa authentication arapvới hai từ khóa guest hoặc
auth-guest sẽ cần thiết để khách truy cập khi sử dụng AAA.
Ví dụ:
Router(config)#aaa authentication arap myaaa tacacs+ localRouter(config)#line 1 12Router(config-line)#arap authentication myaaa Ở ví dụ trên, câu lệnh đầu tiên
xác định rằng dùng xác thực TACACS+ trước tiên, sau đó mới dùng
username/password cục bộ trên router nếu TACACS+ trả về một lỗi (error) hoặc không phù hợp (unavailable) Từ line 1 đến line 12 sẽ sử dụng xác thực trong
listname vừa tạo
2.1.1.1.1.AAA Authentication PPP
Câu lệnh aaa authentication pppđược sử dụng kết hợp với lệnh ppp
authentication trong việc cấu hình line để mô tả phương thức được sử dụng khi
một user sử dụng PPP muốn truy cập vào router Cú pháp câu lệnh như sau:
aaa authentication ppp {default | list-name} method1 [method2] [method3]
[method4] Các phương pháp được dùng trong câu lệnh này:
•local: phương pháp này xác định xác thực bằng việc sử dụng
cặp username yyyy password xxxx trên router.
•none: phương pháp này xác định rằng không cần sử dụng phương pháp xác thực
nào cả
•tacacs+: phương pháp này xác định sử dụng TACACS server để xác thực
•radius: phương pháp này xác định sử dụng RADIUS server để xác thực.
•krb5: phương pháp này dùng Kerberos 5 chỉ phù hợp cho thao tác (operation) PPP và các liên lạc với một Kerberos server đã được thiết lập Xác thực login sử
dụng Kerberos chỉ làm việc với giao thức PPP PAP
•if-needed: phương pháp này ngừng xác thực nếu một user đã được xác thực trước
đó trên line tty
Ví dụ:
Router(config)#aaa authentication ppp myaaa tacacs+ localRouter(config)#line 1 12Router(config-line)#ppp authentication myaaa Cùng một dạng cú pháp được sử
Trang 9dụng thông qua nhiều câu lệnh AAA Với câu lệnh ppp được thiết lập, thì câu lệnh
trên interface là ppp authentication option(s) với option(s) là các tùy chọn pap,
chap, pap chap, chap pap, ms-chap Thêm vào đó, các phương pháp trong AAA
có thể sử dụng Ở ví dụ trên thì TACACS+ sẽ được kiểm tra trước tiên, sau đó username/password cục bộ trên máy sẽ được sử dụng nếu TACACS+ không phù
hợp hay trả về một lỗi (error)
2.1.1.1.2.AAA Authentication ANSI
Câu lệnh aaa authentication ansiđược sử dụng kết hợp với lệnh ansi
authentication trong việc cấu hình line để mô tả phương thức được sử dùng khi
một NASI user muốn truy cập vào router.Cú pháp câu lệnh như sau:
aaa authentication nasi {default | list-name} method1 [method2] [method3]
[method4] Các phương pháp được dùng trong câu lệnh này:
•local: phương pháp này xác định xác thực bằng việc sử dụng
cặp username yyyy password xxxx trên router.
•enable: phương pháp này xác định rằng sẽ sử dụng câu lệnh enable password để xác thực trên interface Việc xác thực được thực hiện bằng việc so sánh password
người dùng nhập vào với password trong câu lệnh enable password hay enable
secret của router.
•line: phương pháp này xác định sử dụng password để xác thực vào interface Câu
lệnh này được sử dụng trong câu lệnh login và password trong từng line (console,
vty, )
•none: phương pháp này xác định rằng không cần sử dụng phương pháp xác thực
nào cả
•tacacs+: phương pháp này xác định sử dụng TACACS server để xác thực
Khi AAA được cho phép, tất cả các line và port trên router đều sử dụng AAA, vì
thế default group nên cấu hình cho bất kì sự truy cập nào mà router nhìn thấy
được
Ví dụ:
Router(config)#aaa authentication ansi myaaa tacacs+ localRouter(config)#line 1
Trang 1012Router(config-line)#ansi authentication myaaa Với các phương pháp truy cập khác, khi một user sử dụng NASI thì sẽ bị yêu cầu xác thực TACACS+ trước tiên
và sau đó sẽ sử dụng username/password cục bộ nếu TACACS+ bị lỗi hay không
thích hợp
2.1.1.2.Cấp quyền (Authorization)
Một khi user đã được xác thực, thì ta cần giới hạn những quyền mà họ được phép
sử dụng Điều đó được thực hiện thông qua câu lệnh aaa authorization Những
giới hạn có thể áp đặt vào hoạt động hay dịch vụ được yêu cầu bởi router Với việc cấp thẩm quyền, AAA thiết lập một subadministrator để cho phép truy cập vào chế
độ configuration mode, nhưng với khả năng là chỉ có thể sử dụng một tập nhỏ các
lệnh được phép Mặc dù có thể, việc cấu hình router sẽ bị hạn chế
Cú pháp dùng để cấp quyền khá đơn giản, nó xác định hoạt động hay dịch vụ (network, exec, command level, config-command, reverse-access) được sử dụng
cho user Dạng tổng quát của câu lệnh cấp thẩm quyền là:
aaa authorization service-type {default | list-name} method1 [method2]
[method3] [method4] Câu lệnh trên có ý nghĩa như sau:
aaa authorization do-what? check-how? Mệnh đề do-what? có thể là:
•network: tham số này dùng phương pháp check-how? để cấp quyền và thiết lập
các yêu cầu dịch vụ có liên quan đến mạng như là SLIP, PPP
•exec: tham số này dùng phương pháp check-how? để cấp quyền nếu user được
phép tạo hoặc chạy trong chế độ EXEC shell Nếu TACACS+ hoặc RADIUS được
sử dụng, thì có thể cơ sở dữ liệu sẽ trả về một thông tin với câu lệnh tự động cho
người dùng
•command level: tham số này dùng phương pháp check-how? để cấp quyền cho
các lệnh tại mức phân quyền xác định trước Mức phân quyền (privilege) có giá trị
từ 1 đến 15
•reverse-access: tham số này dùng phương pháp check-how? để cấp quyền cho
phép thực thi reverse telnet
Mệnh đề check-how? giống như các phương pháp dùng trong việc xác thực check-how? chỉ đơn giản chỉ ra xác thực nên tiến hành ở đâu Tham
số check-how? có thể thuộc bất kì loại nào trong các dạng sau: