Series các bài viết về Linux Firewall IPtables Configuration:
#01 – Giới thiệu về IPtables
#02 – Tìm hiểu về Tables, Chains, Rules và xử lý packet trong IPtables
#03 – Cấu hình Fillter, Nat-in, Nat-out trong IPtables
#04 – Cấu hình IPtables chống DOS
#05 – Viết Shell Script để cấu hình IPtables
#06 – Viết GUI cho IPtables dưới dạng Web
IPtables bao gồm 4 tables chính là Filter, Nat, Mangle, Raw trong từng Tbale sẽ bao gồm các Chains và tương ứng sẽ gồm các rules. Chúng ta cùng quan sát lưu đồ sau:
Chức năng cụ thể của Tables, Chains, Rules
Filter Table
Chịu trách nhiệm thiết lập bộ lọc packet (packet filtering), có ba loại built-in chains là INPUT, OUTPUT, FORWARD được mô tả để thực hiện các chính sách về firewall (firewall policy rules). Filter là table mặc định cho iptable, nếu không xác định table thì iptables sẽ sử dụng Filter table
- INPUT – gửi đến Firewall. Cho các gói tin đến máy chủ Local.
- OUTPUT – gửi đi từ Firewall. Cho các gói tin đi ra khỏi máy chủ Local.
- FORWARD – Cho các gói tin định tuyến thông qua các máy chủ Local.
Nat Table
Thực thi chức năng NAT (Network Address Translation) bao gồm các chains PREROUTING, INPUT, OUTPUT và POSTROUTING
- PREROUTING – sửa địa chỉ đích của gói tin trước khi nó được routing bởi bảng routing của hệ thống (destination NAT hay DNAT).
- POSTROUTING – ngược lại với PREROUTING, nó sửa địa chỉ nguồn của gói tin sau khi gói tin đã được routing bởi hệ thống (SNAT).
Mangle Table
Bảng này dùng để chỉnh sửa thông số QOS(qulity of service) bit trong phần TCP Header của gói tin, thông thường loại table này được ứng dụng trong SOHO (Small Office/Home Office). Bảng này bao gồm các chains PREROUTING, INPUT, FORWARD, OUTPUT and POSTROUTING
Raw Table
Bảng Raw trong iptables là cho excemptions cấu hình. Bảng này bao gồm 2 chain là PREROUTING vàOUTPUT
Targets và Jumps
Những iptables rules kiểm tra những gói ip và cố gắng xác định nó sẽ được xử lý theo kiểu nào (target), khi đã được xác định gói ip sẽ được xử lý theo kiểu đó. Sau đây là một số build-in targets thường được sử dụng.
- ACCEPT: iptables chấp nhận gói tin, đưa nó qua hệ thống mà không tiếp tục kiểm tra nó nữa.
- DROP: iptables loại bỏ gói tin, không tiếp tục xử lý nó nữa.
- REJECT: chức năng của nó cũng giống như DROP tuy nhiên nó sẽ gửi một error message tới host đã gửi gói tin.
- LOG: thông tin của gói tin sẽ được ghi lại bởi syslog hệ thống, iptables tiếp tục xử lý gói tin bằng những rules tiếp theo.
- DNAT: dùng để sửa lại địa chỉ đích của gói tin.
- SNAT: dùng để sửa lại địa chỉ nguồn của gói tin
- MASQUERADE: cũng là một kiểu dùng để sửa địa chỉ nguồn của gói tin.
Qúa trình xử lý packet trong IPtables
Các gói tin từ ngoài đi vào sẽ được kiểm tra bởi các Pre-routing chain đầu tiên xem xem nó có cần DNAT không sau đó gói tin được routing. Nếu gói tin cần đi tới một hệ thống khác ( protected network ) nó sẽ được lọc bởi các FORWARD chain của bảng FILTER và nếu cần nó có thể được SNAT bởi các Post-routing chain trước khi đến được hệ thống đích.
Tương tự khi hệ thống đích cần trả lời, gói tin sẽ đi theo thứ tự như vậy nhưng theo chiều ngược lại. Lưu ý trong hình vẽ những FORWARD và Post-routing chain của bảng mangle chỉ tác động vào đặc điểm QOS ( Quality of Service ) của gói tin.
Nếu gói tin được gửi tới hệ thống ( hệ thống chứa iptables ) nó sẽ được xử lý bởi các INPUT chain và nếu không bị lọc bỏ nó sẽ được xử lý bởi một dịch vụ ( System Service ) nào đó chạy trên hệ thống. Khi hệ thống gửi trả lời, gói tin mà nó gửi đi được xử lý bởi các OUTPUT chain và có thể được xử ký bởi các Post-routing chain của bảng FILTER và bảng MANGLE nếu nó cần SNAT hay QoS.
Lượt xem (2066)
Để lại bình luận: