Quá trình chuyển dữ liệu qua Netfilter

Một phần của tài liệu Tìm hiểu và cấu hình IPTables trên hệ điều hành linux (Trang 45 - 48)

II. TỔNG QUAN VỀ FIREWALL

I.5 Quá trình chuyển dữ liệu qua Netfilter

Iptables sẽ kiểm tra tất cả các gói khi nó đi qua iptables host, quá trình kiểm tra này đƣợc thực hiện tuần tự từ entries đầu tiên đến entries cuối cùng.

Iptables tổ chức phân loại dựa theo cách thức xử lý gói tin. Các gói tin này đƣợc xử lý qua các bảng, trong mổi bảng có phân biệt gói tin đi vào (INPUT), đi ra (OUTPUT) hoặc chuyển tiếp (FORWARD). Hay một số cách thức biến đổi địa chỉ nguồn, đích gọi là NAT bao gồm việc biến đổi địa chỉ nguồn thành đích gọi là PREROUTING, và đích thành nguồn gọi là POSTROUTING ngƣời ta gọi đó là các chuỗi(chain). Trong mổi chain sẽ có những luật để quyết định xử lý gói tin nhƣ thế nào: cho phép chuyển gói tin (ACCEPT), chặn và báo lại gói tin cho ngƣời gởi (REJECT), chặn gói tin (DROP).

Hình 3. 5 Mô hình hoạt động của Iptables

Gói dữ liệu (packet) chạy trên cáp, sau đó đi vào card mạng. Đầu tiên packet sẽ qua chain PREROUTING (trƣớc khi định tuyến). Tại đây, packet có thể bị thay đổi thông số (mangle) hoặc bị đổi địa chỉ IP đích (DNAT). Đối với packet đi vào máy, nó sẽ qua chain INPUT.

Tại chain INPUT, packet có thể đƣợc chấp nhận hoặc bị hủy bỏ. Tiếp theo packet sẽ đƣợc chuyển lên cho các ứng dụng (client/server) xử lí và tiếp theo là đƣợc chuyển ra chain OUTPUT.

Tại chain OUTPUT, packet có thể bị thay đổi các thông số và bị lọc chấp nhận ra hay bị hủy bỏ. Đối với packet forward qua máy, packet sau khi rời chain PREROUTING sẽ qua chain FORWARD.

Tại chain FORWARD, nó cũng bị lọc ACCEPT hoặc DENY. Packet sau khi qua chain FORWARD hoặc chain OUTPUT sẽ đến chain POSTROUTING (sau khi định tuyến).

Tại chain POSTROUTING, packet có thể đƣợc đổi địa chỉ IP nguồn (SNAT) hoặc MASQUERADE. Packet sau khi ra card mạng sẽ đƣợc chuyển lên cáp để đi đến máy tính khác trên mạng.

SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 38

Đầu tiên, gói dữ liệu đến mạng A, tiếp đó nó đƣợc kiểm tra bởi bảng Mangle PREROUTING chain ( nếu cần) . Tiếp theo là kiểm tra gói dữ liệu bởi bảng NAT PREPROUTING chain để kiểm tra gói dữ liệu có cần DNAT hay không ?. Nếu cần, DNAT sẽ thay đổi đích đến của packet. Rồi gói packet đƣợc chuyển đi.

Nếu gói packet đi vào trong mạng đƣợc bảo vệ, thì nó sẽ đƣợc lọc bởi FORWARD chain của Filte table, và nếu cần gói dữ liệu sẽ đƣợc SNAT trong POSTROUTING chain để thay đổi IP nguồn trƣớc khi vào mạng B.

Nếu gói dữ liệu đƣợc định hƣớng đi vào bên trong Firewall , nó sẽ đƣợc kiểm tra bởi INPUT chain trong mangle table, nếu gói dữ liệu qua đƣợc các chain này trong INPUT chain thì sẽ đƣợc vào trong chƣơng trình của các host ben trong Firewall.

Khi Firewall cần gởi gói packet ra ngoài, gói packet sẽ đƣợc dẫn và đi qua sự kiểm tra của OUTPUT chain trong Mangle table ( nếu cần ), tiếp đó là kiểm tra trong OUTPUT chain của Nat table để xem DNAT có cần thiết hay không và OUTPUT chain của Filter table sẽ kiểm tra gói dữ liệu nhằm phát hiện các gói dữ liệu không đƣợc phép gởi đi. Cuối cùng, trƣớc khi packet ra ngoài, SNAT và Qó sẽ đƣợc kiểm tra trong POSTROUTING chain.

Một phần của tài liệu Tìm hiểu và cấu hình IPTables trên hệ điều hành linux (Trang 45 - 48)

Tải bản đầy đủ (PDF)

(63 trang)