a. Lọc theo cổng TCP/UDP
Khái niệm cổng ở đây là các trƣờng cổng nguồn (Source port) và cổng đích (Destinatinon port) trong tiêu đề mảng tin TCP (Hình 2.3a) và UDP (Hình 2.3b)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Hình 2.3a. Tiêu đề mảng tin TCP
Hình 2.3.b. Tiêu đề mảng tin UDP
Có một số kỹ thuật lọc mà thƣờng đƣợc sử dụng nhƣ là một chính sách an ninh ban đầu. Kỹ thuật gói cơ bản nhất là lọc dựa trên số cổng (port, 16-bit) của TCP và UDP, số cổng xác định số tiến trình của hai đầu của một kết nối. Số cổng đƣợc chia thành các khối khác nhau cho các mục đích khác nhau. Các cổng từ 1 đến 1023 đƣợc dành riêng cho hệ thống (System). Theo quy định chỉ tiến trình có thẩm quyền có thể gán cổng cho một tiến trình khác. Điều này đƣợc thực hiện để ngăn chặn ngƣời sử dụng bình thƣờng có thể thiết lập một dịch vụ với cổng dành riêng và hoạt động nhƣ dịch vụ hợp pháp. Ví dụ một ngƣời có thể tạo máy chủ thƣ giả để thu thập tất cả các thƣ của một mạng nhƣ một máy chủ SMTP thực. Tin tặc cũng có thể sử dụng cổng nguồn với hy vọng vƣợt qua kiểm tra của bộ lọc gói. Các dịch vụ phổ biến nhất đã đƣợc cấp số cổng trong phạm vi dành riêng bởi tổ chức IANA (Internet Assigned Numbers Authority).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Các cổng phải cập nhật cho các tiến trình trên cả hai đầu của một kết nối. Bên cạnh các cổng dành riêng cho hệ thống là các cổng tạm thời (chỉ sử dụng trong thời gian ngắn (Ephemeral ports). Đây là những cổng đƣợc sử dụng bởi máy khách để thực hiện kết nối đến một máy chủ, chúng bao gồm các cổng trong phạm vi từ cổng 1024 đến 4999. Mỗi khi một chƣơng trình trên máy khách chạy sẽ tự động đƣợc gán một số cổng. Máy khách có thể yêu cầu một số cổng cụ thể.
Phạm vi cuối cùng của số cổng là từ 5000 đến 65535 và đƣợc sử dụng cho các dịch vụ khác, nói chung là các dịch vụ không sử dụng rộng rãi trên Internet, các dịch vụ này đƣợc cấp các cổng động (Dynamic).
Phạm vi cổng tạm thời có thể đƣợc kiểm soát trên một số hệ điều hành. Phạm vi của các cổng tạm thời giới hạn 3975 kết nối đồng thời đến một cổng cụ thể trên một máy chủ. Các hệ thống lớn yêu cầu phạm vi cổng tạm thời nhiều hơn nên ngƣời ta đề xuất phạm vi này nằm trong khoảng 49.152 đến 65.535. Nhƣ vậy khối cổng này bao gồm 16.383 cổng.
Bảng 2.1. Bảng dịch vụ và tƣơng ứng với số cổng
Hệ điều hành Linux có các cổng tạm thời, trong đó khoảng từ 32.768 đến 61.000 theo mặc định. Đối với mạng với các hệ điều hành không đồng nhất, phàm vi cổng tạm thời nên đƣợc chọn giống nhau để việc mở cổng trên BTL lọc gói thuận lợi hơn. Thông thƣờng, các quy tắc để cho phép hoặc không cho phép các dịch vụ mạng khác nhau nhƣ dịch vụ tên miền (DNS), Secure Shell (SSH), Simple Mail Transfer Protocol (SMTP), Hyper Text Transfer Protocol (HTTP). Việc cho
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ phép hoặc từ chối các dịch vụ khác nhau sẽ phụ thuộc vào chính sách bảo mật đã đƣợc quyết định cho mạng.
Nói chung, lọc gói cần đƣợc thực hiện trên cả hai gói tin đến và đi vì hầu hết các kết nối là hai chiều. Nhƣ vậy, không thể cho phép các gói SSH đi ra, nếu các gói trở về không đƣợc phép trở lại.
Trong lọc gói phải quyết định về việc có nên cho phép kết nối dịch vụ khác nhau (SSH chẳng hạn) của máy nội bộ đến các máy từ xa, hay từ các máy tính từ xa vào một máy nội bộ để chạy các dịch vụ sau bộ lọc gói không.
Việc phân chia tập quy tắc thành quy tắc cho các kết nối vào một giao diện (INPUT) và các kết nối ra từ một giao diện (OUTPUT) rất hữu ích cho lập trình cũng nhƣ triển khai bộ lọc. Tên giao diện (ví dụ eth0, cho giao diện bên ngoài) thƣờng có thể đƣợc sử dụng nhƣ một tham số cho bộ lọc gói.
Các dịch vụ khác, chẳng hạn nhƣ File Transfer Protocol (FTP), cần đặc biệt chú ý khi đƣợc lọc vì quy trình hoạt động của giao thức. FTP sử dụng hai kết nối TCP riêng biệt: Một kênh lệnh (đối với các lệnh FTP để đƣợc gửi qua trên cổng 21) và một kênh dữ liệu, (Thƣờng là cổng 20 ở phía máy chủ). Quy tắc cần phải đƣợc định nghĩa cho cả hai kênh để tất cả các gói liên quan đƣợc phép thông qua các, tuy nhiên quy tắc lọc cho giao thức FTP là khá phức tạp.
Hình 2.4. Các cổng trong giao thức TCP
b. Lọc theo các bit cờ của TCP
TCP sử dụng quy trình “bắt tay 3 bƣớc” (Hình 2.5) để thiết lập kết nối giữa hai tiến trình. Ba mảng tin thiết lập kết nối gồm: SYN, SYN/ACK và ACK.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Hình 2.5. Quá trình bắt tay ba bƣớc của giao thức TCP
Các mảng tin này nhằm mục đích thiết lập một số trình tự (Sequence number) ở cả hai đầu của một kết nối TCP. Số trình tự đƣợc gán cho dữ liệu đƣợc truyền giữa hai máy chủ từ sử dụng 32-bit, bắt đầu với một số tùy ý gọi một số trình tự ban đầu (ISN). ISN đƣợc trao đổi tại thời điểm khi thiết lập một kết nối để giải quyết vấn đề mảng tin bị trễ, mất hay đúp dữ liệu.
Có thể tạo ra quy tắc để lọc dựa trên cờ SYN của TCP, bởi vì các bit cờ SYN = 1 chỉ khi một máy tính đang thiết lập kết nối với máy khác, và nhƣ vậy bằng cách kiểm soát các mảng tin với cờ SYN ta có thể kiểm soát các kết nối. Tƣơng tự nhƣ vậy, bất kỳ mảng tin khác trong quá trình tuyền dữ liệu thuộc kết nối đã đƣợc thiết lập có các bit ACK = 1 và bit SYN = 0 (Giai đoạn sau khi hoàn thành bắt tay 3 bƣớc). Nhiều BTL lọc dựa trên các cờ TCP khác, ví dụ Finish (FIN), Reset (RST) ...
Lọc trên cờ ACK có nghĩa là quy tắc xác định cho phép các gói trở lại trở lại thông qua BTL không bị tấn công bởi các kết nối mới. Quy tắc này nghĩa là, chúng ta cho phép tất cả các mảng của kết nối đã thiết lập đi qua bộ lọc. Nếu các gói tin đến mà không có liên quan với một kết nối hiện tại sẽ bị từ chối. Các mảng tin phục vụ thiết lập kết nối cần kiểm soát và lọc cẩn thận hơn. Các gói này chỉ đƣợc qua BTL nếu là các dịch vụ mà ngƣời quản trị cho phép. Lọc các mảng tin với bit SYN = 1 bit rất hữu ích để ngăn chặn các kết nối đến không đƣợc phép.