1 TỔNG QUAN VỀ MẠNG RIÊNG ẢO
3.4.1.2 Hoạt động của điều khiển truy nhập dựa trên ngữ cảnh
CBAC kiểm tra lưu lượng chuyển đi thông qua bộ định tuyến để phát hiện ra và quản lý thông tin về trạng thái của các phiên TCP hoặc UDP. Thông tin trạng
thái này được sử dụng để tạo ra quá trình mở tạm thời trong những danh sách truy nhập, cho phép lưu lượng trở lại từ cùng phiên đó để vào mạng vượt qua tường lửa.
Hình 3.7 : Hoạt động cơ bản của CBAC.
Hình 3.7 minh họa hoạt động của CBAC. Khi bộ định tuyến trong hình 3.7 khởi tạo sau khi bật nguồn hoặc nạp lại, nó bắt đầu với một bảng trống để duy trì trạng thái thông tin cho mỗi phiên. Khi máy chủ thuộc mạng bên trong của bộ định tuyến bắt đầu một kết nối tới một máy chủ mạng bên ngoài, bộ định tuyến nhận gói đầu tiên và sẽ so với gói dựa vào danh sách truy nhập phản hồi bất kỳ trên giao diện. Nếu gói được cho phép bởi danh sách truy nhập phản hồi, thì CBAC sẽ thiết lập một mục vào bảng để ghi thông tin về phiên. CBAC cũng sẽ thiết lập những danh sách truy nhập tạm thời để cho phép trả lại những gói là một phần của cùng phiên đó. Việc thiết lập này được điều khiển thông qua quá trình - chuyển mạch gói đầu tiên, và thông tin thu thập được sử dụng như một sự tham khảo để tất cả các gói kế tiếp trong phiên có thể được chuyển mạch nhanh. Các phiên TCP và UDP được xác định thông qua những địa chỉ IP và số cổng. Để bảo vệ phiên, tập đặc tính tường lửa sẽ kiểm tra số thứ tự TCP và những giá trị công nhận cũng như cờ, phải tương ứng với dữ liệu được truyền. Đối với UDP và TCP, những gói kế tiếp phải đến trong một chu kỳ timeout. Sau khi phiên đã được hoàn thành, bản ghi phiên đã mở bị hủy và kết nối được đóng lại.
Khi sử dụng CBAC, các giao thức sẽ được kiểm tra phải được chỉ rõ, và giao diện và hướng giao diện cần phải được cấu hình. Chỉ những giao thức đã được chỉ rõ mới được kiểm tra bởi CBAC. Các gói đi qua tường lửa IOS được kiểm tra bởi CBAC chỉ khi chúng qua được danh sách truy nhập trở lại (inbound access list) tại giao diện đầu vào, và danh sách truy nhập chuyển đi (outbound access list) ở giao diện đầu ra sẽ được phục vụ bởi bộ định tuyến. Nếu một gói bị từ chối bởi danh
sách truy nhập, thì gói đó bị loại hoàn toàn và không được kiểm tra bởi CBAC. CBAC kiểm tra số thứ tự trong tất cả các gói TCP và các gói bị loại với số thứ tự không nằm trong khoảng cho phép.
Có vài giao thức, như Telnet Hoặc SMTP, sẽ chỉ có một kết nối giữa client và server, được gọi là các phiên đơn kênh. Tất cả các gói đều được nhận dạng thích ứng với phiên bằng cách chấp nhận việc xác nhận các byte từ thiết bị khác. Sau khi các phiên kết thúc, một phía hoặc nhiều phía khác có thể bắt đầu quá trình kết thúc bằng việc đặt cờ FIN. CBAC theo dõi điều này, và khi nào nhận được ACK thì CBAC sẽ loại bỏ danh sách điều khiển truy nhập tạm thời. Việc loại bỏ danh sách truy nhập tạm thời sẽ từ chối những gói từ mạng bên ngoài đi vào trong mạng sau khi hai thiết bị trong phiên đã đồng ý kết thúc. Trong thời gian một phiên, CBAC sẽ loại những gói vi phạm qui định của nó, như những gói có các giá trị
sequence/acknowledgment bên ngoài của ô chấp nhận hoặc có các cờ đặt không
đúng.
Ngoài những phiên đơn kênh, một vài ứng dụng cũng sử dụng một kênh điều khiển và tạo ra một hoặc nhiều kênh dữ liệu bổ sung để mang thông tin. Những kênh đó được gọi là những phiên đa kênh, như FTP và H.323. Khi kênh điều khiển tạo thành, CBAC theo dõi dấu hiệu như là kênh dữ liệu kế tiếp. Khi dấu hiệu này xuất hiện, CBAC sẽ thêm vào danh sách những phần tử điều khiển truy nhập để điều chỉnh các kênh dữ liệu. Khi kết thúc các kênh dữ liệu, CBAC sẽ loại bỏ danh sách những phần tử điều khiển truy nhập tạm thời.
Hai trường hợp đặc biệt cũng cần đề cập: xử lý SMTP và Java. Nếu việc kiểm tra SMTP được cho phép, thì chỉ một tập lệnh SMTP được cho phép cho qua tập đặc tính tường lửa. Nếu lệnh khác nào đó được đưa đến từ mạng không tin cậy, CBAC sẽ gửi một gói TCP/IP giữa phiên đến mỗi người tham gia với việc thiết lập các cờ RST. Điều này sẽ kết thúc phiên.
Một yêu cầu trình duyệt Web có thể yêu cầu trả lại một văn bản HTML để bắt đầu nhiều hơn một phiên TCP từ client đến server để khôi phục lại các phần bổ sung của trang. Việc này có thể bao gồm văn bản và đồ thị và có thể cũng bao gồm các applet Java. Nếu việc kiểm tra HTTP được cho phép và các applet Java đang được lọc, thì CBAC sẽ kiểm tra phiên các phần chính của mỗi phiên HTTP để so khớp với dấu hiệu applet Java. Nếu CBAC tìm thấy dấu hiệu này, thì nó sẽ kết thúc phiên bằng một gói TCP, với tập hợp cờ RST gửi cho cả client lẫn server. Khi CBAC kết thúc một phiên như vậy, danh sách điều khiển truy nhập tạm thời cũng được loại bỏ, nhưng phần còn lại của trang, văn bản, và đồ thị sẽ tiếp tục truyền tải qua mỗi phiên TCP như bình thường.
Những kênh dữ liệu này được kiểm tra một cách đúng đắn sự gia tăng số thứ tự và số công nhận cũng như sử dụng cờ thích hợp. Chúng sẽ cũng được kết thúc nếu chúng vượt hơn các giới hạn giá trị timeout rỗi. Tuy nhiên, để tăng tốc độ xử lý, nội dung của những gói kênh dữ liệu không được kiểm tra các lệnh như những gói kênh điều khiển.