8. Xây dựng hệ Linux Firewall
8.1.5. Giới thiệu về Netfilter/ iptables
• netfilter là packet filtering engine trong Linux kernel (cũng như là tập hợp các kernel modules hoặc được dịch vào kernel).
• iptables chỉ định cho netfilter gói nào cần lọc. Nó thực hiện (manipulates) các luật trong bảng lọc gói của kernel (kernel’s packet filtering tables).
• iptables còn xuất hiện dưới dạng câu lệnh giao diện dòng lệnh
8.1.5.1. Các đặc tính nổi bật của Netfilter/iptables
• Packet Filtering with Stateful Inspection • Full NAT Support
• Source NAT & Destination NAT • Packet Mangling
• Manipulate Type of Service (TOS) value • Improved Logging
• Log messages & Log limits • Extensible
• the kernel & the iptables tool can be extended
8.1.5.3.Cấu trúc của lệnh iptables
• Table: filter, nat, mangle
• Chain: Built-in hoặc user defined
• Rule Specification với Match Extensions và Target (Extension) • Cấu trúc :
# iptables [<table>] <chain-spec> [<rule-spec>] • Ví dụ:
# iptables –t filter –A INPUT –p icmp –j DROP
• Các luật được tổ chức trong các tables và chains • Tables:
•Filter: bao gồm tất cả các luật liên quan đến packet filtering
• Nat: bao gồm tất cả các luật liên quan đến Network Address Translation • Mangle: tất cả các luật cho việc thay đổi các gói chỉ định (specialized packet alteration)
• Bảng ngầm định (nếu không chỉ ra tham số -t ) là Filter • Table chains:
• Filter: INPUT, OUTPUT, FORWARD, user-defined • Nat: PREROUTING, POSTROUTING
• Mangle: PREROUTING, POSTROUTING Thứ tự thực hiện các luật trong chain
8.1.5.4. Một vài ví dụ
• Bảo vệ LAN từ Internet
Chỉ forward các incoming packets từ giao tiếp ngoài mà nó thuộc về một kết nối đang có. # iptables -A FORWARD --in-interface eth0 -m state
–state ESTABLISHED, RELATED –j ACCEPT • eth0: Interface connected to Internet
8.2. Mô hình thử nghiệm