Giao thức tacacs+ là gì

Các giao thức để tạo nên cơ chế đƣờng ống bảo mật cho VPN là L2TP, Cisco GRE và IPSec.

34 2.4.1. L2TP

Trƣớc khi xuất hiện chuẩn L2TP [tháng 8 năm 1999], Cisco sử dụng Layer 2 Forwarding [L2F] nhƣ là giao thức chuẩn để tạo kết nối VPN. L2TP ra đời sau với những tính năng đƣợc tích hợp từ L2F.

L2TP là dạng kết hợp của Cisco L2F và Mircosoft Point-to-Point Tunneling Protocol [PPTP]. Microsoft hỗ trợ chuẩn PPTP và L2TP trong các phiên bản WindowNT và 2000

L2TP đƣợc sử dụng để tạo kết nối độc lập, đa giao thức cho mạng riêng ảo quay số [Virtual Private Dail-up Network]. L2TP cho phép ngƣời dùng có thể kết nối thông qua các chính sách bảo mật của công ty [security policies] để tạo VPN hay VPDN nhƣ là sự mở rộng của mạng nội bộ công ty.

L2TP không cung cấp mã hóa.

Hình 2-2 Mô hình L2TP

L2TP là sự kết hợp của PPP[giao thức Point-to-Point] với giao thức L2F[Layer 2 Forwarding] của Cisco do đó rất hiệu quả trong kết nối mạng dial, ADSL, và các mạng truy cập từ xa khác. Giao thức mở rộng này sử dụng PPP để cho phép truy cập VPN bởi những ngƣờI sử dụng từ xa.

2.4.2. GRE

Đây là đa giao thức truyền thông đóng gói IP, CLNP và tất cả cá gói dữ liệu bên trong đƣờng ống IP [IP tunnel].

Với GRE Tunnel, Cisco router sẽ đóng gói cho mỗi vị trí một giao thức đặc trƣng chỉ định trong gói IP header, tạo một đƣờng kết nối ảo [virtual point-to-point] tới Cisco router cần đến. Và khi gói dữ liệu đến đích IP header sẽ đƣợc mở ra.

Bằng việc kết nối nhiều mạng con với các giao thức khác nhau trong môi trƣờng có một giao thức chính. GRE tunneling cho phép các giao thức khác có thể thuận lợi trong việc định tuyến cho gói IP.

35

Hình 2-3 Mô hình IPSEC

IPSec là sự lựa chọn cho việc bảo mật trên VPN. IPSec là một khung bao gồm bảo mật dữ liệu [data confidentiality], tính toàn vẹn của dữ liệu [integrity] và việc chứng thực dữ liệu.

IPSec cung cấp dịch vụ bảo mật sử dụng KDE cho phép thỏa thuận các giao thức và thuật toán trên nền chính sách cục bộ [group policy] và sinh ra các khóa bảo mã hóa và chứng thực đƣợc sử dụng trong IPSec.

2.4.4. Point to Point Tunneling Protocol [PPTP]

Đƣợc sử dụng trên các máy client chạy HĐH Microsoft for NT4.0 và

Windows 95+ . Giao thức này đƣợc sử dụng để mã hóa dữ liệu lƣu thông trên Mạng LAN. Giống nhƣ giao thức NETBEUI và IPX trong một pác két gửi lên Internet. PPTP dựa trên chuẩn RSA RC4 và hỗ trợ bởi sự mã hóa 40-bit hoặc 128-bit.

Hình 2-4 Mô hình PPTP

Nó không đƣợc phát triển trên dạng kết nối LAN-to-LAN và giới hạn 255 kết nối tới 1 server chỉ có một đƣờng hầm VPN trên một kết nối. Nó không cung

36

cấp sự mã hóa cho các công việc lớn nhƣng nó dễ cài đặt và triển khai và là một giải pháp truy cập từ xa chỉ có thể làm đƣợc trên mạng MS. Giao thức này thì đƣợc dùng tốt trong Window 2000. Layer 2 Tunneling Protocol thuộc về IPSec.

37

Chƣơng 3 - TỔNG QUAN VỀ AAA VÀ CẤU HÌNH AAA TRÊN

CISCO ASA FIREWALL

3.1. Định nghĩa AAA

Hình 3-1 Mô hình AAA chung

AAA cho phép nhà quản trị mạng biết đƣợc các thông tin quan trọng về tình hình cũng nhƣ mức độ an toàn trong mạng. Nó cung cấp việc xác thực

[authentication] ngƣời dùng nhằm bảo đảm có thể nhận dạng đúng ngƣời dùng. Một khi đã nhận dạng ngƣời dùng, ta có thể giới hạn uỷ quyền [authorization] mà ngƣời dùng có thể làm. Khi ngƣời dùng sử dụng mạng, ta cũng có thể giám sát tất cả những gì mà họ làm. AAA với ba phần xác thực [authentication], uỷ quyền [authorization] và kiểm toán [accounting] là các phần riêng biệt mà ta có thể sử dụng trong dịch vụ mạng, cần thiết để mở rộng và bảo mật mạng.

AAA có thể dùng để tập hợp thông tin từ nhiều thiết bị trên mạng. Ta có thể kích hoạt các dịch vụ AAA trên router, switch, firewall, các thiết bị VPN, server…

Các dịch vụ AAA bao gồm ba phần, xác thực [authentication], Uỷ quyền [Authorization] và kiểm toán [accounting]. Ta sẽ tìm hiểu sự khác nhau của ba phần này và cách thức chúng làm việc nhƣ thể nào.

38 3.1.1. Xác thực [Authentication]

Xác thực dùng để nhận dạng [identify] ngƣời dùng. Trong suốt quá trình xác thực, username và password của ngƣời dùng đƣợc kiểm tra và đối chiếu với cơ sở dữ liệu lƣu trong AAA Server. Tất nhiên, tuỳ thuộc vào giao thức mà AAA hỗ trợ mã hoá đến đâu, ít nhất thì cũng mã hoá username và password.

Xác thực sẽ xác định ngƣời dùng là ai. Ví dụ: Ngƣời dùng có username là LINH và mật khẩu là L!nh@nq sẽ là hợp lệ và đƣợc xác thực thành công với hệ thống. Sau khi xác thực thành công thì ngƣời dùng đó có thể truy cập đƣợc vào mạng. Tiến trình này chỉ là một trong các thành phần để điều khiển ngƣời dùng với AAA. Một khi username và password đƣợc chấp nhận, AAA có thể dùng để định nghĩa thẩm quyền mà ngƣời dùng đƣợc phép làm trong hệ thống.

3.1.2. Uỷ quyền [Authorization]

Uỷ quyền cho phép nhà quản trị điều khiển việc cấp quyền trong một khoảng thời gian, hay trên từng thiết bị, từng nhóm, từng ngƣời dùng cụ thể hay trên từng giao thức. AAA cho phép nhà quản trị tạo ra các thuộc tính mô tả các chức năng của ngƣời dùng đƣợc phép thao tác vào tài nguyên. Do đó, ngƣời dùng phải đƣợc xác thực trƣớc khi uỷ quyền cho ngƣời đó.

Uỷ quyền trong AAA làm việc giống nhƣ một tập các thuộc tính mô tả những gì mà ngƣời dùng đã đƣợc xác thực có thể có.

Ví dụ: Ngƣời dùng LINH sau khi đã xác thực thành công có thể chỉ đƣợc

phép truy cập vào server LINHNQ_SERVER thông qua FTP. Những thuộc tính này đƣợc so sánh với thông tin chứa trong cơ sở dữ liệu của ngƣời dùng đó và kết quả đƣợc trả về AAA để xác định khả năng cũng nhƣ giới hạn thực tế của ngƣời đó. Điều này yêu cầu cơ sở dữ liệu phải giao tiếp liên tục với AAA server trong suốt quá trình kết nối đến thiết bị truy cập từ xa [RAS].

Uỷ quyền liên quan đến việc sử dụng một bộ quy tắc hoặc các mẫu để quyết định những gì một ngƣời sử dụng đã chứng thực có thể làm trên hệ thống.

Máy chủ AAA sẽ phân tích yêu cầu và cấp quyền truy cập bất cứ yêu cầu nào có thể, có hoặc không phải là toàn bộ yêu cầu là hợp lệ. Ví dụ: Một máy khách quay số kết nối và yêu cầu nhiều liên kết. Một máy chủ AAA chung chỉ đơn giản là sẽ từ chối toàn bộ yêu cầu, nhƣng một sự thực thi thông minh hơn sẽ xem xét yêu cầu, xác định rằng máy khách chỉ đƣợc phép một kết nối dial-up, và cấp một kênh trong khi từ chối các yêu cầu khác.

39 3.1.3. Kiểm toán [Accounting]

Kiểm toán cho phép nhà quản trị có thể thu thập thông tin nhƣ thời gian bắt đầu, thời gian kết thúc ngƣời dùng truy cập vào hệ thống, các câu lệnh đã thực thi, thống kê lƣu lƣợng, việc sử dụng tài nguyên và sau đó lƣu trữ thông tin trong hệ thống cơ sở dữ liệu quan hệ. Nói cách khác, kiểm toán cho phép giám sát dịch vụ và tài nguyên đƣợc ngƣời dùng sử dụng. Ví dụ: thống kê cho thấy ngƣời dùng có tên truy cập là LINH đã truy cập vào LINHNQ_SERVER bằng giao thức FTP với số lần là 5 lần. Điểm chính trong kiểm toán đó là cho phép ngƣời quản trị giám sát tích cực và tiên đoán đƣợc dịch vụ và việc sử dụng tài nguyên. Thông tin này có thể đƣợc dùng để tính cƣớc khách hàng, quản lý mạng, kiểm toán sổ sách.

3.2. Giao thức sử dụng trong dịch vụ AAA

3.2.1.1. Giới thiệu

Hình 3-2 Các giao thức cho dịch vụ AAA

Có hai giao thức bảo mật dùng trong dịch vụ AAA đó là TACACS [Terminal Access Controller Access Control System] và RADIUS [Remote Authentication Dial-In User Service]. Cả hai giao thức đều có phiên bản và thuộc tính riêng. Chẳng hạn nhƣ phiên bản riêng của TACACS là TACACS+, tƣơng thích hoàn toàn với TACACS. RADIUS cũng có sự mở rộng khi cho phép khách hàng thêm thông tin xác định đƣợc mang bởi RADIUS. TACACS và RADIUS đƣợc dùng từ một thiết bị nhƣ là server truy cập mạng [NAS] đến AAA server.

40

Xem xét một cuộc gọi từ xa nhƣ hình 3.2. Ngƣời dùng gọi từ PC đến NAS. NAS sẽ hỏi thông tin để xác thực ngƣời dùng. Từ PC đến NAS, giao thức sử dụng là PPP, và một giao thức nhƣ là CHAP hay PAP đƣợc dùng để truyền thông tin xác thực. NAS sẽ truyền thông tin đến AAA Server để xác thực. Nó đƣợc mang bởi giao thức TACACS hoặc RADIUS.

3.2.1.2. Tổng quan về TACACS

TACACS là giao thức đƣợc chuẩn hoá sử dụng giao thức hƣớng kết nối [connection-oriented] là TCP trên port 49.

TACACS có các ƣu điểm sau:

o Với khả năng nhận gói reset [RST] trong TCP, một thiết bị có thể lập tức báo cho đầu cuối khác biết rằng đã có hỏng hóc trong quá trình truyền.

o TCP là giao thức mở rộng vì có khả năng xây dựng cơ chế phục hồi lỗi. Nó có thể tƣơng thích để phát triển cũng nhƣ làm tắc nghẽn mạng với việc sử dụng sequence number để truyền lại.

o Toàn bộ payload đƣợc mã hoá với TACACS+ bằng cách sử dụng một khoá bí mật chung [shared secret key]. TACACS+ đánh dấu một trƣờng trong header để xác định xem thử có mã hoá hay không.

o TACACS+ mã hoá toàn bộ gói bằng việc sử dụng khoá bí mật chung nhƣng bỏ qua header TACACS chuẩn. Cùng với header là một trƣờng xác định body có đƣợc mã hoá hay không. Thƣờng thì trong toàn bộ thao tác, body của một gói đƣợc mã hoá hoàn toàn để truyền thông an toàn.

o TACACS+ đƣợc chia làm ba phần: xác thực [authentication], cấp quyền [authorization] và tính cƣớc [accounting]. Với cách tiếp cận theo module, ta có thể sử dụng các dạng khác của xác thực và vẫn sử dụng TACACS+ để cấp quyền và tính cƣớc. Chẳng hạn nhƣ, việc sử dụng phƣơng thức xác thực Kerberos cùng với việc cấp quyền và tính cƣớc bằng TACACS+ là rất phổ biến.

o TACACS+ hỗ trợ nhiều giao thức.

o Với TACACS+, ta có thể dùng hai phƣơng pháp để điều khiển việc cấp quyền thực thi các dòng lệnh của một user hay một nhóm nhiều user:

41

o Phƣơng pháp thứ nhất là tạo một mức phân quyền [privilege] với một số câu lệnh giới hạn và user đã xác thực bởi router và TACACS server rồi thì sẽ đƣợc cấp cho mức đặc quyền xác định nói trên.

o Phƣơng pháp thứ hai đó là tạo một danh sách các dòng lệnh xác định trên TACACS+ server để cho phép một user hay một nhóm sử dụng.

o TACACS thƣờng đƣợc dùng trong môi trƣờng enterprise. Nó có nhiều ƣu điểm và làm việc tốt đáp ứng yêu cầu quản lý mạng hàng ngày.

Định dạng TACACS và các giá trị tiêu đề

Các ID TACACS định nghĩa một tiêu đề 12-byte xuất hiện trong tất cả các gói TACACS. tiêu đề này luôn luôn đƣợc gửi ở định dạng văn bản rõ ràng.

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Major_ver sion Minor_ver sion

Type Seq_no Flags

Session_id Length

Hình 3-3Định dạng gói tin

Major_version Đây là số phiên bản chính của TACACS. giá trị xuất hiện trong tiêu đề nhƣ TAC_PLUS_MAJOR_VER = 0xc.

Minor_version: cung cấp số serial cho giao thức TACACS. Nó cũng cung cấp cho khả năng tƣơng thích của giao thức. Một giá trị mặc định, cũng nhƣ phiên bản một, đƣợc định nghĩa cho một số lệnh. Những giá trị này xuất hiện trong tiêu đề TACACS nhƣ TAC_PLUS_MINOR_VER_DEFAULT = 0x0

TAC_PLUS_MINOR_VER_ONE = 0x1.

Nếu một máy chủ AAA chạy TACACS nhận đƣợc một gói TACACS xác định một phiên bản nhỏ hơn khác phiên bản hiện tại, nó sẽ gửi một trạng thái lỗi trở lại và yêu cầu các minor_version với phiên bản gần nhất đƣợc hỗ trợ.

Loại này phân biệt các loại gói tin. Chỉ có một số loại là hợp pháp. Các loại gói hợp pháp nhƣ sau:

42

- TAC_PLUS_AUTHEN = 0x01 đây là loại gói nghĩa xác thực. - TAC_PLUS_AUTHOR-0x02 đây là loại gói tin mà nghĩa uỷ quyền. - TAC_PLUS_ACCT = 0x03 đây là loại gói tin mà nghĩa kế toán.

Seq_no: xác định số thứ tự cho các phiên làm việc. TACACS có thể khởi tạo một hoặc nhiều phiên TACACS cho mỗi khách hàng AAA.

Flags: có 2 cờ

+TAC_PLUS_UNENCRYPTED_FLAG:xác định mã hoá của gói TACACS. Giá trị 1 là chƣa mã hoá, giá trị 0 là gói tin đã đƣợc mã hoá.

+TAC_PLUS_SINGLE_CONNECT_FLAG:Xác định ghép hoặc không ghép các phiên tacacs trên một kết nối tcp.

Session_id Đây là một giá trị ngẫu nhiên đó chỉ định các phiên hiện tại giữa khách hàng và máy chủ AAA chạy TACACS. Giá trị này vẫn giữ nguyên trong suốt thời gian của phiên làm việc

Lengh: tổng chiều dài của gói TACACS, không bao gồm tiêu đề 12-byte. Khái niệm xác thực TACACS + cũng tƣơng tự nhƣ RADIUS. NAS sẽ gửi một yêu cầu chứng thực với TACACS + server. Các máy chủ cuối cùng sẽ gửi bất kỳ thông điệp sau đây trở về NAS:

ACCEPT - Ngƣời dùng đã đƣợc xác thực thành công và các dịch vụ yêu cầu sẽ đƣợc cho phép. Nếu nhƣ cơ chế cấp quyền đƣợc yêu cầu, tiến trình cấp quyền sẽ đƣợc thực thi.

REJECT - xác thực ngƣời dùng đã bị từ chối. Ngƣời sử dụng có thể đƣợc nhắc để thử lại chứng thực tuỳ thuộc vào TACACS + server và NAS.

ERROR - Một số lỗi xảy ra trong quá trình xác thực. Nguyên nhân gây ra lỗi có thể ở vấn đề kết nối hoặc vi phạm cơ chế bảo mật.

CONTINUE - Ngƣời dùng đƣợc nhắc nhở để cung cấp thông tin xác thực hơn.

Sau khi quá trình xác thực đã hoàn tất, nếu uỷ quyền đƣợc yêu cầu TACACS + server với sẽ xử lý giai đoạn kế tiếp nếu xác thực thành công.

3.2.1.3. Tổng quan về RADIUS

RADIUS là một giao thức xác thực sử dụng rộng rãi đƣợc định nghĩa trong RFC 2865. "Remote Authentication Dial-In User Service [RADIUS]." RADIUS

43

hoạt động trong một mô hình khách hàng / máy chủ. Một khách hàng RADIUS thƣờng đƣợc gọi là một máy chủ truy cập mạng [network access server:NAS].một máy NAS có trách nhiệm truyền thông tin ngƣời dùng tới máy chủ RADIUS. Cisco ASA Firewall hoạt động nhƣ là một NAS và xác thực ngƣời dùng dựa trên phản ứng của máy chủ RADIUS. Cisco ASA Firewall hỗ trợ một vài máy chủ RADIUS sau:

 CiscoSecure ACS

 Cisco Access Registrar.

 Livingston.

 Merit.

 Funk Steel Belted.

 Microsoft Internet Authentication Server.

RADIUS hoạt động theo giao thức UDP. RADIUS sử dụng các cổng 1645 và 1812 để xác thực và 1646 và 1813 cho kiểm toán. Các cổng 1812 và 1813 đƣợc tạo ra trong việc triển khai RADIUS mới hơn. Việc sử dụng các cổng RADIUS 1645 trong lúc triển khai đã gây ra xung đột với các dịch vụ "datametrics". Do đó, cổng chính thức là 1812. Giao thức RADIUS đƣợc xem là một dịch vụ kết nối. Các vấn đề liên quan đến máy chủ sẵn sàng, phát lại, và hết giờ đƣợc xử lý trên thiết bị chứ không phải là giao thức truyền tải. Chức năng này khác với TACACS + độ tin cậy trong giao thức phụ thuộc vào giao thức TCP.

Hoạt động RADIUS

Sau đây là quá trình hoạt động RADIUS quản lý đăng nhập:

 Bƣớc 1. Một thông tin đăng nhập ngƣời dùng tạo ra một truy vấn [Access- Request] từ AAA khách hàng đến máy chủ RADIUS.

 Bƣớc 2. Một phản ứng cho phép hoặc loại bỏ[Access-Accept hoặc Access- Reject] đƣợc trả về từ máy chủ.

Các gói tin Access-Request chứa tên ngƣời dùng, mật khẩu mã hoá, địa chỉ IP của khách hàng AAA, và cổng định dạng gói tin RADIUS:

Code Identifier Length Request Authenticator

44

Hình 3-4 Gói tin RADIUS

Mỗi gói tin RADIUS gồm các thông tin sau đây: + Code: 1 octet, định nghĩa loại packet

+ Identifier: 1 octet, Kiểm tra yêu cầu, trả lời và phát hiện trùng lặp yêu cầu từ RADIUS server.

+ Length: 2 octet, xác định độ dài của toàn bộ gói.

+ Request Authenticator: 16 octet, Các octet quan trọng nhất đƣợc truyền đi đầu tiên, nó xác nhận trả lời từ máy chủ RADIUS. Hai loại authenticators nhƣ sau:

-Request-Authenticator có sẵn trong gói Access-Request và Accounting-

Chủ Đề