Loading...

Bài 76: AAA — Authentication, Authorization, Accounting

💡 Liên hệ thực tế

Hãy hình dung anh Nam đến gửi xe tại tòa nhà văn phòng VNExperts. Đầu tiên, bảo vệ kiểm tra thẻ nhân viên để xác nhận đúng là anh Nam — đây là Authentication (xác thực danh tính: bạn là ai). Sau khi xác nhận danh tính, hệ thống kiểm tra xem thẻ của anh Nam có quyền vào bãi xe tầng hầm hay chỉ được đậu xe ở sân trước — đây là Authorization (phân quyền: bạn được làm gì). Cuối cùng, mọi lượt ra vào của anh Nam đều được ghi lại thời gian, cổng ra vào vào sổ nhật ký — đây là Accounting (ghi nhận: bạn đã làm gì, khi nào).

Ba chữ A này — Authentication, Authorization, Accounting — chính là khung mô hình bảo mật nền tảng mà mọi thiết bị Cisco (router, switch) đều hỗ trợ để kiểm soát ai được truy cập, được làm gì, và mọi hành động đều có thể truy vết lại. Đây cũng là 1 trong những công nghệ hiện thực hóa tư duy Zero Trust đã học ở Bài 75 — không có khái niệm "đăng nhập 1 lần rồi được tin tưởng mãi mãi".


📘 Kiến thức cốt lõi

1. Ba thành phần của AAA

Thành phầnTrả lời câu hỏiVí dụ thực tế trên Cisco IOS
Authentication (Xác thực) Bạn là ai? Đăng nhập bằng username/password, xác thực qua server TACACS+/RADIUS
Authorization (Phân quyền) Bạn được làm gì? Chỉ cho phép chạy show command hay được vào chế độ enable, chạy lệnh cấu hình
Accounting (Ghi nhận) Bạn đã làm gì, khi nào? Ghi log thời điểm đăng nhập, các lệnh đã thực thi, thời gian phiên làm việc

🎯 Điểm cốt lõi cần nhớ: 3 thành phần này có thứ tự phụ thuộc — Authorization chỉ diễn ra sau khi Authentication thành công, và Accounting thường đi kèm để ghi lại cả 2 bước trên.

2. Kiến trúc AAA — Local vs Server-based

AAA trên Cisco IOS có thể hoạt động theo 2 hình thức, thường kết hợp cả 2 để có phương án dự phòng:

  • Local AAA: thông tin user/password được lưu trực tiếp trên chính thiết bị (username ... secret ...). Đơn giản, không cần hạ tầng bổ sung, nhưng khó quản lý tập trung khi có nhiều thiết bị.
  • Server-based AAA: thiết bị (đóng vai trò NAS — Network Access Server) gửi yêu cầu xác thực đến 1 server AAA tập trung (TACACS+ hoặc RADIUS), giúp quản lý user/quyền hạn đồng nhất cho toàn bộ hệ thống mạng từ 1 điểm duy nhất.

⚠️ Riêng thành phần Accounting thì local không áp dụng được — Local AAA trên IOS chỉ hỗ trợ Authentication và một phần Authorization (qua privilege level gắn với từng user), còn Accounting bắt buộc phải có server TACACS+/RADIUS mới ghi nhận được (đây cũng là lý do trong khối lệnh cấu hình mẫu bên dưới, riêng 2 dòng aaa accounting không có tùy chọn local đi kèm như 2 dòng authentication/authorization phía trên). Nếu chỉ đăng nhập bằng tài khoản local, show logging có thể cho thấy sự kiện đăng nhập cơ bản (nhờ syslog), nhưng đó không phải Accounting đúng nghĩa — không ghi được chi tiết từng lệnh đã chạy theo cấu trúc start/stop như khi dùng server.

💡 Ghi nhớ: trong thực tế production, cấu hình AAA luôn nên có local làm phương án dự phòng (fallback) — nếu server TACACS+/RADIUS không phản hồi được (mất kết nối, server down), thiết bị vẫn cho phép đăng nhập bằng tài khoản local đã cấu hình sẵn, tránh bị khóa hoàn toàn khỏi thiết bị.

3. So sánh TACACS+ và RADIUS

Tiêu chíTACACS+RADIUS
Nhà phát triển Giao thức độc quyền của Cisco Chuẩn mở (IETF)
Giao thức vận chuyển TCP port 49 UDP (1812/1813 hiện nay, hoặc 1645/1646 kiểu cũ) cho Authentication/Accounting
Mã hóa Mã hóa toàn bộ nội dung gói tin Chỉ mã hóa phần password, các trường còn lại gửi dạng rõ
Tách biệt AAA Tách biệt rõ ràng 3 chức năng Authentication, Authorization, Accounting Gộp chung Authentication và Authorization trong cùng 1 giao dịch
Trường hợp dùng phổ biến Quản trị truy cập thiết bị mạng (device administration) — phù hợp khi cần phân quyền chi tiết theo từng lệnh Xác thực truy cập mạng cho user/thiết bị đầu cuối (network access), ví dụ 802.1X, VPN

⚠️ Lưu ý: vì TACACS+ tách biệt rõ 3 chức năng và mã hóa toàn bộ gói tin, đây là lựa chọn phổ biến hơn khi cần kiểm soát quyền chạy từng lệnh cụ thể trên router/switch (command authorization) — điều mà RADIUS không hỗ trợ tốt bằng.

4. Cấu hình AAA cơ bản trên Cisco IOS (dùng TACACS+ + local fallback)

Router(config)# hostname R1
R1(config)# clock timezone ICT 7
R1(config)# ntp server 192.168.1.1
R1(config)# logging on
R1(config)# username admin-backup privilege 15 secret Str0ngP@ss!
R1(config)# aaa new-model
R1(config)# tacacs server TACACS-VNE
R1(config-server-tacacs)# address ipv4 192.168.1.10
R1(config-server-tacacs)# key VNExperts@2026
R1(config-server-tacacs)# exit
R1(config)# aaa group server tacacs+ TACACS-GROUP
R1(config-sg-tacacs+)# server name TACACS-VNE
R1(config-sg-tacacs+)# exit
R1(config)# aaa authentication login default group TACACS-GROUP local
R1(config)# aaa authorization exec default group TACACS-GROUP local
R1(config)# aaa accounting exec default start-stop group TACACS-GROUP
R1(config)# aaa accounting commands 15 default start-stop group TACACS-GROUP
R1(config)# line vty 0 4
R1(config-line)# login authentication default
R1(config-line)# transport input ssh

Giải thích từng dòng lệnh:

  • hostname R1 — đặt tên thiết bị, phần cấu hình nền tảng chuẩn thực chiến.
  • clock timezone ICT 7 — đặt múi giờ Việt Nam (UTC+7), quan trọng để timestamp trong log Accounting chính xác.
  • ntp server 192.168.1.1 — đồng bộ thời gian với NTP server nội bộ, đảm bảo log Accounting có mốc thời gian đáng tin cậy.
  • logging on — bật ghi log hệ thống, nền tảng để kết hợp với Accounting log sau này.
  • username admin-backup privilege 15 secret Str0ngP@ss! — tạo tài khoản local dự phòng, quyền cao nhất (privilege 15), dùng khi server TACACS+ không phản hồi được.
  • aaa new-modelbắt buộc phải chạy lệnh này đầu tiên để kích hoạt toàn bộ khung AAA trên IOS; nếu không có lệnh này, mọi cấu hình AAA phía sau sẽ không có tác dụng.
  • tacacs server TACACS-VNE — khai báo 1 server TACACS+ với tên định danh TACACS-VNE, chuyển vào chế độ con để cấu hình chi tiết.
  • address ipv4 192.168.1.10 — chỉ định địa chỉ IP thực tế của server TACACS+.
  • key VNExperts@2026 — khóa bí mật dùng để mã hóa giao tiếp giữa Router và server TACACS+; khóa này phải khớp chính xác với khóa đã cấu hình trên server TACACS+.
  • aaa group server tacacs+ TACACS-GROUP — gom các server TACACS+ đã khai báo thành 1 nhóm server có tên TACACS-GROUP, cho phép gộp nhiều server dự phòng cho nhau.
  • server name TACACS-VNE — thêm server TACACS-VNE đã khai báo ở trên vào nhóm TACACS-GROUP.
  • aaa authentication login default group TACACS-GROUP local — áp dụng method-list default cho toàn bộ đường đăng nhập (console, vty...): thử xác thực qua nhóm TACACS-GROUP trước, nếu server không phản hồi thì chuyển sang xác thực bằng tài khoản local.
  • aaa authorization exec default group TACACS-GROUP local — sau khi xác thực thành công, kiểm tra quyền truy cập chế độ EXEC (được vào shell hay không) qua cùng nhóm server, có fallback local.
  • aaa accounting exec default start-stop group TACACS-GROUP — ghi nhận log bắt đầu (start) và kết thúc (stop) mỗi phiên EXEC (đăng nhập/đăng xuất) gửi về server TACACS+.
  • aaa accounting commands 15 default start-stop group TACACS-GROUP — ghi nhận lại mọi lệnh ở mức privilege 15 (lệnh cấu hình quan trọng) mà user đã thực thi, phục vụ truy vết và kiểm toán (audit).
  • line vty 0 4 — chuyển vào chế độ cấu hình 5 đường truy cập từ xa (vty 0 đến 4), nơi thực tế xử lý các phiên Telnet/SSH đăng nhập vào thiết bị.
  • login authentication defaultđây là bước gán method-list default (đã định nghĩa ở aaa authentication login default... phía trên) vào đúng đường truy cập vty — nếu thiếu dòng này, các lệnh aaa authentication khai báo trước đó sẽ không được áp dụng cho phiên đăng nhập qua vty, tức là ưu tiên TACACS+, nếu máy chủ không phản hồi thì sử dụng tài khoản Local.
  • transport input ssh — chỉ cho phép truy cập vty qua SSH (đã cấu hình ở Bài 77), chặn Telnet vì Telnet gửi username/password dạng văn bản thuần, không phù hợp khi đã dùng AAA với server tập trung.

📎 Liên hệ lại kiến thức đã học: logging onntp server ở đây chính là các bước nền tảng đã chuẩn hóa từ Bài 37 (NTP) và Bài 70 (Syslog) — timestamp chính xác là điều kiện tiên quyết để log Accounting có giá trị pháp lý/kiểm toán thực sự.

Luồng hoạt động AAA — Authentication, Authorization, Accounting Sơ đồ minh họa luồng AAA đầy đủ 2 chiều: Client gửi yêu cầu đăng nhập đến NAS, NAS chuyển tiếp yêu cầu (Request) đến AAA Server và nhận lại phán quyết (Response), cuối cùng NAS phản hồi kết quả về Client. Luồng Hoạt Động AAA (Request & Response) Client ←→ NAS (Router/Switch) ←→ AAA Server Client Anh Nam đăng nhập NAS Router / Switch AAA Server TACACS+ / RADIUS Username/Password Request Response (Accept/Reject) Phản hồi kết quả 1. Authentication → 2. Authorization → 3. Accounting Mỗi bước đều gửi Request và nhận lại Response tương ứng 💡 NAS không tự quyết định — mọi phán quyết Authentication/Authorization đến từ AAA Server


💬 Hỏi & Đáp nhanh

Nếu chỉ cấu hình aaa authentication login default group TACACS-GROUP local mà không cấu hình aaa authorization, thì điều gì xảy ra?

✅ User vẫn xác thực đăng nhập bình thường (Authentication hoạt động), nhưng hệ thống sẽ không kiểm tra phân quyền chi tiết qua AAA Server — mặc định sử dụng cơ chế phân quyền cục bộ thông thường của IOS (ví dụ theo privilege level).

Vì sao nên luôn có tài khoản local dự phòng khi cấu hình AAA với server tập trung?

✅ Để tránh trường hợp mất kết nối đến server TACACS+/RADIUS (đứt mạng, server down) khiến quản trị viên bị khóa hoàn toàn khỏi thiết bị, không còn cách nào đăng nhập vào để khắc phục sự cố.

TACACS+ và RADIUS, giao thức nào phù hợp hơn để quản lý quyền chạy từng lệnh cụ thể trên router?

TACACS+ — vì tách biệt rõ ràng 3 chức năng AAA và hỗ trợ command authorization (phân quyền theo từng lệnh) tốt hơn RADIUS, vốn thường dùng cho xác thực truy cập mạng đầu cuối.


📝 Bài tập đánh giá

Câu 1: Trong mô hình AAA, thành phần nào chịu trách nhiệm ghi lại thời điểm đăng nhập và các lệnh mà user đã thực thi trên thiết bị?

  • A. Authentication
  • B. Authorization
  • C. Accounting
  • D. Access Control

Câu 2: Lệnh nào bắt buộc phải được cấu hình đầu tiên trước khi mọi lệnh AAA khác có tác dụng trên Cisco IOS?

  • A. tacacs server
  • B. aaa new-model
  • C. aaa authentication login
  • D. username

👉 Đáp án:

Câu 1: C — Accounting là thành phần ghi nhận lại nhật ký hoạt động: thời gian đăng nhập/đăng xuất và các lệnh đã thực thi, phục vụ mục đích kiểm toán và truy vết.

Câu 2: Baaa new-model phải được cấu hình đầu tiên để kích hoạt toàn bộ khung AAA trên IOS; thiếu lệnh này, mọi cấu hình aaa authentication, aaa authorization, aaa accounting phía sau đều không có tác dụng.


📚 Bài viết thuộc khóa học CCNA của VNExperts

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
Bài 75: Các mô hình bảo mật — Defense in Depth, Zero Trust cơ bản Mục lục khóa học CCNA Bài 77: Cấu hình bảo mật cơ bản trên Cisco IOS — password, SSH, local user