3.1.2.1 Giới thiệu Iptables
Hỡnh 3.1 Vị trớ Netfilter/Iptables trong Kernel Linux 2.4.
Iptables là một tường lửa ứng dụng lọc gúi dữ liệu rất mạnh, cú sẵn bờn trong kernel Linux 2.4.x và 2.6.x. Netfilter/Iptable gồm 2 phần là Netfilter ở trong nhõn Linux và Iptables nằm ngoài nhõn. Iptables được dùng đờ̉ quản lý các quy tắc lọc gói tin bờn dưới cơ sở hạ tõ̀ng của Netfilter.Hợ̀ thụ́ng con Netfilter của Linux 2.4x cho phép cài đặt, duy trì, và kiẻm tra các quy tắc lọc gói tin trong Kernel. Netfilter làm việc trực tiếp trong nhõn, nhanh và khụng làm giảm tốc độ của hệ thống.
Nó là mụ̣t giải pháp lọc gói tin mới, cao cṍp hơn so với những gì có sẵn đụ́i với Linux Kernel trước 2.4x. Netfilter cung cṍp 1 sụ́ ưu điờ̉m và hiợ̀n nay nó đã trở thành mụ̣t giải pháp mạnh mẽ và hoàn thiợ̀n hơn đờ̉ giúp bạn bảo vợ̀ các mạng cụ̣ng tác.
Tuy nhiờn, Netfilter cũng khụng phải là mụ̣t giải pháp hoàn toàn mới. Nó là mụ̣t khung làm viợ̀c đờ̉ xử lý các gói tin khi chúng đi qua các thành phõ̀n của Kernel. Netfilter bao gụ̀m:
* Xõy dựng bức tường lửa dựa trờn cơ chế lọc gúi stateless và stateful * Dựng bảng NAT và masquerading chia sẻ sự truy cập mạng nếu khụng cú đủ địa chỉ mạng.
* Dựng bảng NAT để cài đặt transparent proxy
* Cú khả năng theo dừ sự kết nối, cú khả năng kiểm tra nhiều trạng thỏi của packet. Nú làm việc này cho UDP và ICMP tốt nhất là kết nối TCP, thớ dụ tỡnh trạng đầy đủ của lọc ICMP chỉ cho phộp hồi õm khi cú yờu cầu phỏt đi, chứ khụng chặn cỏc yờu cầu nhưng vẫn chấp nhận hồi õm với giả sử rằng chỳng luụn đỏp lại lệnh ping. Sự hồi õm khụng do yờu cầu cú thể là tớn hiệu của sự tấn cụng hoặc cửa sau.
* Xử sự đơn giản của cỏc packet thoả thuận trong cỏc chains (một danh sỏch cỏc nguyờn tắc) INPUT, OUTPUT, FORWARD. Trờn cỏc host cú nhiều giao diện mạng, cỏc packet di chuyển giữa cỏc giao diện chỉ trờn chain FORWARD hơn là trờn 3 chain.
* Phõn biệt rừ ràng giữa lọc packet và NAT (Nework Address Translation)
* Cú khả năng giới hạn tốc độ kết nối và ghi nhật ký. Bạn cú thể giới hạn kết nối và ghi nhật ký ồ ạt để trỏnh sự tấn cụng từ chối dịch vụ (Deinal of service).
* Cú khả năng lọc trờn cỏc cờ và địa chỉ vật lý của TCP.
* Là một Firewall cú nhiều trạng thỏi, nờn nú cú thể theo dừi trong suốt sự kết nối, do đú nú an toàn hơn Firewall cú ớt trạng thỏi.
* Iptables bao gồm một vài bảng, mỗi bảng với một chớnh sỏch (police) mặc định và cỏc nguyờn tắc trong chain xõy dựng sẵn.
3.1.2.2 So sỏnh Iptables và Ipchains
- Sự khỏc biệt đầu tiờn mà chỳng ta cú thể thấy là tờn của cỏc chain xõy dựng sẵn chuyển từ chữ thường sang chữ hoa.
- Cờ “-i” bõy giờ cú nghĩa là giao diện đi vào (incoming interface) và chỉ làm việc trong chain INPUT và FORWARD. Cỏc nguyờn tắc trong chain OUTPUT hoặc FORWARD trước đõy sử dụng “-i” được thay đổi thành “- o”.
- Cỏc cổng của TCP và UDP bõy giờ cần đưa ra “- source-port hoặc – sport/--destination-port hoặc dport” được đặt sau “-p tcp” hoặc “-p udp”.
- Cờ TCP –y bõy giờ là –syn phải được đặt sau “-p tcp”. - DENY đớch, bõy giờ là DROP.
- Tờn chain cú thể lờn đến 16 ký tự.
- REJECT và LOG bõy giờ chỳng cú thể riờng biệt với kernel. - Iptables cú một hệ thống con cho NAT riờng biệt