Để có thể bảo vệ gói IP, chúng ta cần phải bắt đ−ợc các gói IP để mã hoá phân đoạn TCP sau đó lại trả lại gói IP để hệ thống xử lý tiếp. Thực chất của việc bắt gói IP chính là khả năng can thiệp đ−ợc vào nội dung của gói IP. Cơ chế STREAMS của UNIX cho phép chúng ta xây dựng một tầng lọc gói IP trong mô hình STREAMS TCP/IP.
Theo cơ chế STREAMS chúng ta có thể chèn thêm một môđun có tên gọi là “Tầng lọc gói IP”, gọi tắt là IPF vào d−ới tầng IP (hình 3.4). Mỗi máy sẽ có hai cạc mạng t−ơng ứng với hai giao diện elx0 và elx1. Tầng IPF cho phép chúng ta chặn bắt và mã hoá phân đoạn TCP của các gói IP. Dữ liệu của gói IP tại tầng IPF sẽ đ−ợc quản lý bởi cấu trúc hàng đợi trong STREAMS TCP/IP. Chúng ta tìm hiểu về các thành phần của STREAMS TCP/IP tr−ớc và sau khi chèn tầng IPF. STREAMS TCP/IP tr−ớc khi chèn tầng IPF:
Khi hệ thống khởi động, các mô đun đ−ợc tải (load) tự động vào hệ thống là: IP, TCP, UDP, ELX. Dùng lệnh modinfo, chúng ta có thể xem thông tin về các môđun trên:
Ví dụ: dòng d−ới đây là thông tin về mô đun IP.
11 f56099e8 18b28 0 1 ip (ip streams module)
Ngoài ra một môđun có thể đ−ợc tải vào hệ thống bằng lệnh modload, với tham số là tên của file t−ơng ứng với môđun trong th− mục dev và dừng tải bằng lệnh modunload. Các mô đun trên đ−ợc kết nối tự động để tạo thành một đa luồng TCP/IP. Ng−ời dùng không thể dùng lệnh modunload để dừng việc tải một môđun nào đó.
Streams TCP/IP sau khi có module ipf
Module IPF đ−ợc tải và dừng tải vào nhân nhờ lệnh modload và modunload với đ−ờng dẫn file là /usr/kernel/drv/ipf. Để kiểm tra xem mô đun IPF đã đ−ợc tải vào nhân ch−a ta dùng lệnh modinfo | grep ipf . Sau khi đ−ợc tải vào nhân, mô đun IPF đ−ợc chèn vào giữa môđun IP và môđun elx .