Mục tiêu: Trình bày các hoạt động chính của tường lửa: điều khiển truy nhập (Access control), quản lý xác thực (Authentication) và ghi nhật ký truy nhập (activity logging)
5.1. Điều khiển truy nhập (Access Control)
Như trên đã giới thiệu có hai loại tường lửa với 2 cách điều khiển truy nhập khác nhau là quy chế bộ lọc gói (packet filter) và chính sách người đại diện ứng dụng.
Điểu khiển truy nhập phụ thuộc vào sự nhận dạng đúng đắn của các yêu cầu đôi khi còn phụ thuộc vào định nghĩa quyền xác thực của người sử dụng.
5.2. Vị trí xảy ra quá trình xử lý gói
Để hiểu được firewall hoạt động như thế nào, trước hết hãy quan tâm đến
đường đi của các gói tin dẫn đến firewall đó. Có 3 đường dẫn phổ biến mà một gói tin có thể đi qua tùy thuộc vào dạng tường lửa được cài đặt. Một gói tin có thể vựợt qua
một tường lửa ở mức tầng ứng dụng, ở mức nhân hệ điều hành hoặc là mức card giao tiếp mạng. Hầu hết các tường lửa đều kiểm soát và cho phép các gói đi qua 3 mức này.
85
trình xử lý các gói. Để lưu chứa ở đây với tốc độ cao bộ xử lý trên card giao tiếp mạng chỉ hỗ trợ những luật xử lý đơn giản như các phép so sánh nhị phân. Những dịch vụ
khác không được hỗ trợ ở đây.
Những router và những trạm luân chuyển gói khác thì quá trình lọc các gói tin thường diễn ra ở mức nhân hệ điều hành hơn là mức card giao tiếp mạng. Thông thường quá trình lọc được thực thi trên các bộ xử lý chuyên dụng cho phép tường lửa có thể thực hiện quá trình lọc và kiểm định một cách chuẩn xác, tinh xảo hơn là trên các card giao tiếp mạng tích hợp tính lọc. Hơn nữa quá trình xử lý các gói tại mức nhân hệ điều hành nhanh hơn ở mức tầng ứng dụng bởi vì quá trình lập lịch và tràn bộ
nhớ được tránh. Tuy nhiên quá trình xử lý nhân thường đòi hỏi tất cả các thông tin cần thiết cho việc lọc gói phải được chứa trong bộ nhớ thay vì trên đĩa. Một gói phải được
xử lý và được cho qua mà không cần phải đợi trên đĩa điều này sẽ làm hạn chế các
dạng gói và số lượng các gói được xử lý ở mức này.
Quá trình xử lý ở mức tầng ứng dụng có thể cung cấp một chính sách an ninh
tốt nhất. Mức ứng dụng có thể truy cập đến tất cả các tài nguyên hệ thống bao gồm đĩa, card mạng, bộ nhớ, thư viện các chương trình và cả những tiến trình khác. Tầng ứng
dụng là tầng trên cùng trong cấu trúc phân tầng của giao thức mạng, do đó nó không bị
giới hạn bới các tầng thấp hơn nó.
Hoạt động lọc gói (Packet Filtering)
Hoạt động lọc các gói có thể diễn ra ở một trong 3 mức xử lý gói như trên đã trình bày nhưng nó thường được hỗ trợ ở mức card giao tiếp mạng hoặc mức nhân hệ điều hành. Một bộ lọc gói sẽ căn cứ vào phần địa chỉ IP chứa trong gói tin để quyết
định xem gói đó có được cho phép vượt qua hay bị chặn lại. Gói được cho qua sẽ được chuyển đến trạm đích hoặc router tiếp theo. Gói bị chặn lại sẽ bị loại bỏ.
5.3. Luật lọc (Filtering Rules)
Bộ lọc sẽ kiểm tra 5 mảng thông tin trong khối IP ở phần đầu của gói tin. Các thông tin đó được mô tả như trong bảng 6.1:
BẢNG 6.1: Thông tin trong khối IP ở phần đầu của gói tin
Field Purpose
Source IP address Địa chỉ IP của trạm nguồn gửi gói tin Destination IP address Địa chỉ IP của trạm đích gói tin sẽ đi tới Upper level Protocol (đó là TCP hoặc
UDP)
Cho giao thức khác và dịch vụ khác TCP or UDP source port number Số hiệu cổng của trạm nguồn gửi gói ra TCP or UDP destination port number Số hiệu cổng của trạm dích sẽ nhận gói tin
Khi có được các thông tin trên của các gói, bộ lọc sẽ so sánh chúng với một tập
hợp các luật để đưa ra quyết định. Một luật lọc là sự kết hợp một giá trị hoặc miền giá trị của mỗi trường thông tin trên và quyết định sẽ được đưa ra nếu tất cả các thông tin
của gói được so khớp với các thông tin của các luật. Một bộ lọc gói sẽ thực hiện việc kiểm tra sự hợp lệ của các gói rất đơn giản và rất nhanh chỉ bằng các phép so sánh nhị
phân. Quyết định (cho phép hoặc cấm) sẽ được đưa ra ngay sau khi bộ lọc tìm thấy
một luật nào đó hoàn toàn so khớp với thông tin mà nó có được về gói tin do đó trật tự sắp xếp các luật cũng rất quan trọng nó góp phần làm cho quá trình lọc được nhanh hơn.
Có một điều đáng quan tâm ở đây đó là danh sách luật là hữu hạn và ta không thể lường hết được các tình huống để đưa ra tất cả các luật được; vì vậy phải có một
luật mặc định ở đây để nếu như khi xem xét hết tất cả các luật trong danh sách luật rồi mà bộ lọc vẫn không thể đưa ra được quyết định thì luật mặc định này sẽ giúp bộ lọc
đưa ra quyết định. Có 2 ý tưởng chủ đạo trong việc tạo ra luật mặc định này đó là hoặc là từ chối tất cả hoặc chấp nhận tất cả, có nghĩa là tất cả các gói có thông tin không thỏa mãn tập luật thì bị từ chối cho qua hoặc chấp nhận cho qua hết.
5.4. Hoạt động của tường lửa người đại diện ứng dụng (Proxy Application)
Hình 6.4 – Hoạt động của tường lửa người đại diện ứng dụng (Proxy Application) Như mô tả trên hình 6.4, người sử dụng trước hết phải thiết lập một kết nối đến người đại diện ứng dụng trên tường lửa (1). Đại diện ứng dụng này sẽ tập hợp các thông tin liên quan đến mối liên kết và yêu cầu của người sử dụng (2). Tường lửa sẽ sử dụng thông tin này để quyết định liệu yêu cầu có được cho phép thực thi hay không.
Nếu yêu cầu từ phía người dùng là thỏa đáng thì người đại diện trên tường lửa sẽ tạo
một kết nối khác từ tường lửa đến đích dự kiến (3). Sau đó người đại diện sẽ đóng vai trò như một con thoi để truyền tải dữ liệu giữa 2 mối kết nối (4).
Có 2 điểm cần lưu ý ở đây là:
• Thứ nhất, kết nối đầu tiên phải được thiết lập đến người đại diện trên tường
lửa thay vì nối trực tiếp đến trạm mong muôn kết nối.
• Thứ hai, người đại diên trên tường lửa phải có được địa chỉ IP của trạm đích. Trước khi người sử dụng hoặc một ứng dụng nào đó muốn kết nối đến người
đại diên ứng dụng thì phải thiết lập kêt nối đến tường lửa, kết nối này phải sử dụng phương pháp chuẩn để cung cấp tên hoặc địa chỉ IP của trạm đích mong muốn. Đây không phải là một công việc dễ dàng vì giao thức tầng ứng dụng luôn cố định và thường không hỗ trợ sự vượt qua của những thông tin được thêm vào. Để khắc phục
đặc điểm này có rất nhiều giải pháp bắt buộc người sử dụng và các ứng dụng phải tuân theo.
Kết nối trực tiếp
Đây là giải pháp đầu tiên cho phép người sử dụng thiết lập kết nối trực tiếp đến
tường lửa thông qua địa chỉ và số hiệu cổng người đại diện sau đó người đại diện sẽ hỏi người sử dụng để biết được địa chỉ của trạm mong muốn kết nối. Đây là một phương pháp thô được sử dụng bởi nhưng tường lửa sơ khai vì thế không được ưa dùng.
87
lửa. Giải pháp này tỏ ra hữu hiệu và trong suốt đối với người sử dụng; tuy nhiên, hạn chế của nó là mỗi chương trình hỗ trợ máy khách chỉ thực hiện tương ứng với một dịch
vụ nào đó của mạng mà thôi.
Sử dụng người đại diện tàng hình
Một phương pháp nữa được sử dụng hiện nay cho việc kết nối đến đại diện ứng
dụng trên tường lửa là sử dụng đại diện tàng hình (ẩn). Với giải pháp này thì người sử dụng không cần đến chương trình hỗ trợ máy khách hoặc kết nối trực tiếp đến tường
lửa. Ở đây người ta sử dụng phương pháp dò đường căn bản, mọi kết nối đến các
mạng bên ngoài đều phải định hướng thông qua tường lửa. Các gói khi vào trong
tường lửa tự động sẽ đổi hướng đến một đại diện ứng dụng móng muốn. Ứng dụng đại diện có được địa chỉ trạm đích một cách chính xác bằng cách lấy địa chỉ trạm đích của phiên. Trong trường hợp này tương lửa giả mạo thành một trạm đích và chặn các phiên
lại. Khi một kết nối được thiết lập đến đại diện trên tường lửa thì trình ứng dụng máy khách sẽ nghĩ rằng nó đang kết nối đến một trạm đích thật sự. Nếu được phân quyền thì đại diện ứng dụng trên tường lửa sẽ dùng một hàm đại diện để tạo ra liên kết thứ
hai đến trạm đích thật.
5.5. Quản lý xác thực (User Authentication)
Đây là chức năng ngăn cản việc truy cập trái phép vào hệ thống mạng nội bộ. Các hệ điều hành quản lý mạng chỉ kiểm soát một cách không chặt chẽ tên người sử dụng và password được đăng ký, và đôi lúc chính người sử dụng được ủy nhiệm lại vô ý để lộ password của mình. Hậu quả của việc này có khi là rất nghiêm trọng. Nó càng trở nên quan trọng hơn đối với những hệ thống mạng lớn có nhiều người sử dụng. Có hai giao thức chuẩn thông dụng nhất hiện nay để kết hợp làm việc với LAN.
• RADIUS (Remote Authen-tication Dial-In User Service)
• TACAS+ (Terminal Access Controller Access Control System Extended) Thông thường chức năng authentication được thực hiện với sự phối hợp của
một thiết bị phần cứng hoặc phần mềm được tích hợp sẵn bên trong các phần mềm (giải mã theo thuật toán và tiêu chuẩn khóa mã định trước). Khi một thao tác truy cập vào mạng được thực hiện (kiểm tra đúng User Name và Password), hệ quản lý xác thực sẽ gửi đến máy tính của người dùng đang xin truy cập vào mạng một chuỗi các ký
tự gọi là Challenge (câu thách đố), người dùng này sẽ nhập vào Token chuỗi Challenge và sẽ nhận được một chuỗi ký tự mới gọi là PIN (Personal Identification Number - số nhận dạng cá nhân). Nhờ PIN mà người dùng có thể truy cập vào hệ
thống mạng. Điều đặc biệt là Challenge và PIN thay đổi từng phút một, các Token có thể được định và thay đổi Cryptor Key (khóa mã) tùy người sử dụng nên việc bảo mật
gần như là tuyệt đối.
5.6. Kiểm tra và Cảnh báo (Activity Logging and Alarms)