
Mục lục bài viết 10 phần
TACACS+ thường được nghiệm thu bằng một lần đăng nhập thành công. Cách đó bỏ sót rủi ro lớn hơn: người dùng có thể chạy lệnh ngoài vai trò, accounting mất bản ghi, server dự phòng trả policy khác hoặc local fallback vô tình mở rộng đặc quyền. Test plan cần kiểm toàn chuỗi AAA và bằng chứng audit dưới fault có kiểm soát.
Bài viết giúp bạn
- Câu hỏi kỹ thuật cần trả lời
- Topology và điều kiện đo
- Biến số phải kiểm soát
Câu hỏi kỹ thuật cần trả lời
#RFC 8907 mô tả TACACS+ chủ yếu cho device administration: xác thực truy cập, phân quyền thao tác và audit hoạt động. Ba chức năng này liên quan nhưng không thay thế nhau. Đăng nhập đúng không chứng minh authorization đúng; lệnh bị từ chối cũng không chứng minh accounting đầy đủ.
Phép thử phải trả lời ai được đăng nhập, được chạy lệnh nào, bản ghi nào được tạo và điều gì xảy ra khi server hoặc đường truyền lỗi. Cần phân biệt fail-open, fail-close và fallback có điều kiện; không dùng từ “an toàn” nếu policy khẩn cấp chưa được mô tả bằng role, nguồn truy cập và thời gian.
Topology và điều kiện đo
#Topology tối thiểu gồm DUT, hai TACACS+ server ở failure domain khác nhau, máy quản trị qua production và OOB, collector/SIEM, NTP và một endpoint tạo fault. Capture tại DUT–server giúp đo request/response; audit trên server và config diff trên DUT giúp đối soát kết quả.
Lấy baseline cho từng role: read-only, operator, network admin, security admin và break-glass. Ghi username source, source interface/VRF, server order, timeout, retry, transport profile, method list, local database, command set và timezone. Phân biệt shared secret của TACACS+ truyền thống với xác thực peer của TACACS+ over TLS; không coi chúng là cùng một chế độ bảo vệ. Đồng bộ clock trước mọi test accounting.

Biến số phải kiểm soát
#Khóa protocol/secure transport theo implementation, server version, device OS, AAA method list, privilege mapping, command syntax normalization và accounting start/stop. Ghi rõ timeout/retry, deadtime, source address, DNS, VRF, NAT và session caching. Một thay đổi source interface có thể khiến server coi client là thiết bị khác.
Kiểm soát kiểu truy cập console, SSH, API hoặc web UI; role; command với argument; configuration mode; concurrent session; và hành vi khi authorization server không phản hồi so với trả deny. Hai tình huống timeout và explicit deny không được gộp vì fallback thường khác nhau. Với authorization, phản hồi TAC_PLUS_AUTHOR_STATUS_FAIL phải dẫn tới từ chối yêu cầu theo RFC 8907, không được thử tài khoản local để vượt quyết định đó.
KPI và bằng chứng đầu ra
#KPI gồm login success/failure đúng policy, authorization decision accuracy, thời gian phản hồi percentile, failover time, tỷ lệ command bị từ chối đúng, accounting completeness/duplicate/order và config-change traceability. Đo riêng session đang mở và session mới khi server lỗi.
Bằng chứng tối thiểu gồm TACACS+ server log, DUT AAA debug ở mức an toàn, packet metadata, SIEM event, command transcript, config diff và timestamp fault. Không ghi secret/password vào báo cáo. Mỗi command test cần correlation ID hoặc tổ hợp user–device–session–time để đối soát.
Ma trận quyết định pass/fail
#Pass/fail cần định nghĩa theo vai trò và thao tác, không chỉ “AAA reachable”. Accounting lệnh thường phản ánh thao tác được thực thi; lệnh bị từ chối có thể chỉ xuất hiện trong authorization log hoặc security log tùy DUT. Cần đối soát đúng loại bản ghi, không bắt buộc mọi deny phải có command-accounting record. Một lệnh bị deny đúng nhưng thiếu bằng chứng theo chính sách audit vẫn là lỗi audit; một login nhanh qua fallback nhưng mở rộng quyền ngoài policy là lỗi bảo mật.
- Tình huống: Read-only chạy show · Kỳ vọng: Được phép theo command set · Bằng chứng: authorization + transcript · Dấu hiệu fail: deny sai hoặc cấp quyền thừa
- Tình huống: Read-only vào config · Kỳ vọng: Bị từ chối, có audit · Bằng chứng: authorization deny log + transcript; accounting theo khả năng DUT · Dấu hiệu fail: command chạy được hoặc mất log
- Tình huống: Server chính timeout · Kỳ vọng: Chuyển server dự phòng theo SLO · Bằng chứng: packet + server log · Dấu hiệu fail: treo login hoặc policy khác
- Tình huống: Server trả explicit deny · Kỳ vọng: Không tự fallback trái policy · Bằng chứng: response + DUT decision · Dấu hiệu fail: local login vượt quyền
- Tình huống: Accounting collector chậm · Kỳ vọng: Không làm mất/nhân bản ngoài ngưỡng · Bằng chứng: record sequence + queue · Dấu hiệu fail: gap không phát hiện được
- Tình huống: Break-glass · Kỳ vọng: Chỉ dùng đúng nguồn/điều kiện, có cảnh báo · Bằng chứng: auth log + alert · Dấu hiệu fail: dùng từ mạng thường hoặc không audit
Accounting, failover và local fallback
#Với mỗi session, đối soát login, command và logout/stop record; tạo disconnect đột ngột để xem interim/stop behavior. Làm đầy queue hoặc ngắt collector/server trong lab để đo loss, retry, duplicate và thứ tự. Accounting không nên được gọi là “đầy đủ” chỉ từ một phía.
Fault server chính bằng blackhole, TCP reset, process stop và response chậm; đo khác biệt giữa timeout và deny. Kiểm server dự phòng có cùng user/role/command set. Local fallback chỉ được thử qua OOB và tài khoản break-glass đã phê duyệt; sau test phải rotate credential nếu quy trình yêu cầu.

Scale, runbook và regression
#Tăng concurrent administrator, login rate và command rate theo bậc; đo latency, server CPU, queue và loss. Kịch bản reconnect storm sau mất điện phải tách khỏi tải thường. Không công bố capacity thiếu server sizing, crypto mode, log destination và traffic profile.
Runbook cần OOB, tài khoản break-glass, người phê duyệt, cách xác nhận server state, tắt method list lỗi và rollback policy. Regression sau đổi NOS, TACACS+ server, directory, PKI, command set, source interface/VRF, NTP hoặc SIEM pipeline.
Giới hạn kết luận
#Kết quả chỉ đúng cho DUT, OS, server, secure transport, method list, role mapping và failure model đã thử. RFC 8907 là Informational và cảnh báo cơ chế bảo vệ TACACS+ truyền thống yếu; RFC 9887 cập nhật RFC 8907 với profile TLS 1.3 cho TACACS+, nhưng khả năng hỗ trợ phải xác nhận theo implementation. Nếu thử profile này, kiểm mutual authentication, TLS bắt đầu ngay khi mở kết nối, không dùng STARTTLS và không tự hạ xuống transport không TLS. Cổng được đăng ký là TCP 300, tách khỏi TACACS+ truyền thống; nếu dùng cổng khác phải ghi rõ trong test plan.
AAA test không chứng minh toàn bộ hardening của thiết bị, độ an toàn endpoint quản trị hay tính bất biến của SIEM. Không coi log tồn tại là bằng chứng người dùng không thể xóa hoặc sửa nếu chưa kiểm retention, access control và integrity.
Khái niệm cần nhớ
#- Authentication: xác minh danh tính người quản trị.
- Authorization: quyết định thao tác/lệnh được phép.
- Accounting: ghi nhận session và hoạt động để audit.
- Method list: thứ tự cơ chế AAA mà DUT thử.
- Explicit deny: server phản hồi từ chối, khác với timeout.
- Break-glass: truy cập khẩn cấp có phạm vi và kiểm soát riêng.
- Fail-open/fail-close: cho phép hoặc từ chối khi dịch vụ kiểm soát lỗi.
Khái niệm cần nhớ
- Security efficacy
- Mức độ phát hiện hoặc ngăn chặn đúng nội dung kiểm thử trong phạm vi đã xác định.
- Goodput
- Lưu lượng ứng dụng hữu ích tới đích, không tính phần truyền lại hoặc overhead không tạo giá trị.
- False positive
- Lưu lượng hợp lệ bị nhận diện hoặc xử lý nhầm như một mối đe dọa.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo3 nguồn +
Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.
NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.
