Khi một gúi tin đầu tiờn tới Firewall, phần cứng sẽ tiếp nhận nú và sau đú chuyển tiến trỡnh điều khiển thiết bị tương ứng trong nhõn hệ điều hành. Sau đú, gúi tin sẽ bắt đầu đi qua một loạt cỏc bước trong nhõn hệ điều hành, trước khi nú được gửi tới ứng dụng cục bộ hoặc là được chuyển tiếp đến mỏy tớnh khỏc hay chịu tỏc động nào đú của nhõn hệ điều hành. Một mặt mạnh của Iptables là ở chỗ nhiều bảng cú thể được sử dụng để quyết định “số phận” của một gúi tin nào đú, phụ thuộc vào kiểu của gúi tin đang được kiểm tra. Và hành động được thực hiện trờn gúi tin đú.
Bảng mặc định, bảng filter, cú chứa cỏc chuỗi luật được xõy dựng sẵn: INPUT, OUTPUT, và FORWARD. Theo mặc định Iptables chứa hai bảng bổ sung dựng để thực hiện cỏc cụng việc lọc gúi xỏc định. Bảng NAT và bảng Mangle.
Mụ̃i bảng chứa tõ ̣p hợp các chuụ̃i luõ ̣t mă ̣c đi ̣nh và các hành đụ ̣ng. Khi các chuụ̃i luõ ̣t được thảo mãn, thì các hành đụ ̣ng đã được áp du ̣ng vào gói tin. Các hành đụ ̣ng có thờ̉ khác nhau tương ứng với mụ̃i bảng hoă ̣c thõ ̣m chí là chuụ̃i mà nó chiờ́m giữ. Tuy nhiờn, người dựng cũng được phộp định nghĩa những chuỗi luật mới trong cỏc bảng.
3.5.1 Bảng Nat
Chỉ được sử dụng để chuyển đổi địa chỉ tĩnh hoặc động trờn những gúi tin. Núi cỏch khỏc, nú chỉ được dựng để chuyển đổi trường địa chỉ nguồn
hay trường địa chỉ đớch của gúi tin, tuỳ theo luật được chỉ ra. Cỏc gúi tin trong một dũng dữ liệu (stream) chỉ đi qua bảng này một lần. giả sử gúi đầu tiờn của một dũng dữ liệu được cho phộp (chỉ cú gúi đầu tiờn trong một dũng dữ liệu sẽ vấp phải chuỗi này). Phần gúi cũn lại trong dũng dữ liệu sẽ được tự động thay đổi địa chỉ và sẽ phải chịu cựng cỏc tỏc động như gúi đầu tiờn.
- Khi một mỏy bờn trong mạng nội bộ truy cập vào tài nguyờn bờn ngoài thỡ packet được gửi đến IP NAT, IP NAT sẽ thay đổi địa chỉ nguồn của packet bằng một địa chỉ hợp lệ trong dóy địa chỉ được cấp trờn Internet nếu cũn.
- Khi một mỏy của mạng bờn ngoài truy cập tài nguyờn của mạng cục bộ qua IP NAT, khi packet đến IP NAT nú sẽ thay đổi địa chỉ đớch của packet bằng một địa chỉ của mạng nội bộ.
Để chuyển đổi trường địa chỉ nguồn hoặc đớch trong packet chỳng ta sử dụng 3 chuỗi luật được xõy dựng sẵn:
Chuỗi luật PREOUTING: dựng để chuyển đổi địa chỉ cỏc gúi tin ngay sau khi đi vào Firewall.
Chuỗi luật POSROUTING: Dựng để thay đổi địa chỉ gúi tin trước khi chỳng ra khỏi Firewall.
Chuỗi luật OUTPUT: Dựng để thay đổi địa chỉ cỏc gúi tin được phỏt sinh cục bộ (trờn Firewall) trước khi định tuyến.
Cỏc hành động thực hiện trong bảng này là:
- DNAT dựng trong trường hợp bạn cú một địa chỉ IP chung (public) và muốn chuyển hướng cỏc truy nhập vào Firewall tới một số mỏy khỏc (vớ dụ trờn DMZ). Núi cỏch khỏc, chỳng ta thay đổi địa chỉ đớch của gúi tin và dẫn đường cho nú tới một số mỏy tớnh khỏc.
- SNAT được dựng để thay đổi địa chỉ nguồn của cỏc gúi tin. Để làm ẩn cỏc phần trong mạng cục bộ hoặc DMZ… Vớ dụ nếu một Firewall biết được địa chỉ IP ở ngoài, nhưng cần thay thế địa chỉ IP của mạng cục bộ bằng địa chỉ của Firewall. với hành động này Firewall sẽ tự động SNAT và De-SNAT cỏc gúi tin, do đú để cú khả năng thực hiện kết nối từ LAN đến Internet. Vớ dụ nếu dựng 192.168.0.0/netmask, cỏc gúi tin sẽ khụng bao giờ đến được Internet, bởi vỡ IANA đó điều chỉnh những mạng này là private và chỉ dựng trong cỏc LAN độc lập.
Hình 3.4: NAT động
- MASQUERADE được dựng giống như là SNAT, nhưng hành động MASQUERADE thực hiện tớnh toỏn ớt hơn. Vỡ mỗi lần hành động MASQUERADE bắt gặp (hit) một gúi tin nú sẽ tự động kiểm tra địa chỉ IP để dựng thay vỡ thực hiện cỏc thao tỏc như SNAT - chỉ dựng một địa chỉ IP được cấu hỡnh đơn. MASQUERADE làm cho nú cú thể thực hiện tốt với địa chỉ IP DHCP động mà ISP của bạn cú thể cung cấp cho PPP,PPPoE hoặc SLIP cỏc kết nối đến Internet.
3.5.2 Bảng lọc (filter)
Bảng filter dựng để lọc cỏc gúi tin. Chỳng ta cú thể kiểm tra và lọc cỏc gúi tin tương ứng và lọc gúi chỳng theo cỏch mà chỳng ta muốn. Đõy là nơi chỳng ta thật sự thực hiện hành động trờn cỏc gúi tin và kiểm tra nội dung của gúi tin và loại bỏ (DROP) hoặc chấp nhận(ACCEPT) chỳng.Cú 3 chuỗi luật được xõy dựng sẵn trong bảng này là:
- INPUT được ỏp dụng cho tất cả cỏc gúi tin đến Firewall.packet cho host được chuyển qua chain input. Chỳ ý rằng tất cả cỏc gúi tin đến mỏy này đều phải thụng của chuỗi input, khụng cần biết đến giao tiếp mạng nào hay hướng đến của chỳng.
- FORWARD được ỏp dụng trờn tất cả cỏc gúi tin sẽ đi qua Firewall (cỏc gúi tin khụng được phỏt sinh trờn mỏy Firewall và cú đớch đến ngoài mỏy Firewall). Là packet được nhận bởi host mà nú được định cho một host khỏc thỡ nú sẽ được chuyển sang chain này.
- OUTPUT được ỏp dụng cho tất cả cỏc gúi tin được phỏt sinh từ cỏc tiến trỡnh cục bộ tức là packet được tạo từ host và chuyển cho host khỏc thỡ được chuyển qua chain output.
* Phần lớn tất cả cỏc hành động ỏp dụng lờn gúi tin đều cú thể được sử dụng trong chuỗi luật này tuy nhiờn những hành động đó được nờu ở phần trờn chỉ cú thể được sử dụng trong bảng riờng của nú.
3.5.3 Bảng mangle
Được sử dụng để thay đổi thụng tin của gúi tin. Ta cú thể thay đổi nội dung gúi tin và phần header của gúi tin đú. Bảng này gồm 5 chuỗi luật được xõy dựng sẵn.
- PREOUTING: được sử dụng để thay đổi gúi tin khi chỳng vừa vào Firewall và trước khi chỳng qua bước quyết định dẫn đường.
- POSTROUTING: được sử dụng để thay đổi thụng tin gúi tin ngay sau khi tất cả cỏc quyết định dẫn đường được thực hiện.
- INPUT: được sử dụng để thay đổi thụng tin gúi tin sau khi chỳng đó được dẫn tới bản thõn mỏy cục bộ, nhưng trước khi được gửi tới tiến trỡnh ứng dụng.
- FORWARD: được sử dụng để thay đổi thụng tin gúi tin sau khi chỳng đó sang bước quyết định dẫn đường đầu tiờn, nhưng trước khi chỳng chịu tỏc động của quyết định dẫn đường cuối cựng.
- OUTPUT: được sử dụng để thay đổi thụng tin của cỏc gúi tin được phỏt sinh cục bộ trước khi chỳng được chuyển sang bước quyết định dẫn đường.
Chỳng ta khụng sử dụng bảng này để thực hiện lọc gúi tin và cũng khụng thực hiện chuyển đổi địa chỉ NAT hay Masquerading trong bảng này. Cỏc hành động cú thể được sử dụng trong bảng này bao gồm:TOS, TTL, MARK, chỳng chỉ hợp lệ trong bảng mangle.
- TOS: dựng xác lõ ̣p mụ ̣t byte (8 - bit) TOS (Type of service) trong phõ̀n tiờu đờ̀ IP của gói tin. Nú khụng thực sự hoàn hảo trờn thực tế nú khụng sử dụng trờn internet và hầu hết cỏc router khụng quan tõm đến giỏ trị trong trường này, và đụi khi chỳng thực hiện sai trờn thụng tin chỳng nhận được.
- TTL: dựng thay đổi trường TTL (Time To Live) của gúi tin tương kờ́t. - MARK: dựng xác lập cỏc giỏ trị cho trường điờ̉m đặc biệt cho gúi tin. Những điờ̉m này được nhận diện bởi cỏc chương trỡnh iprouter2 để thực hiện dẫn đường khỏc nhau trờn gúi phụ thuộc vào mark mà chỳng cú. Chỳng ta cũng cú thể giới hạn băng thụng và class based queuing trờn những mark này.
Kờ́t Chương:
Trong chương vừa rụ̀i chúng ta đã tìm hiờ̉u vờ̀ bức tường lửa trong Linux. Và trong đó có mụ ̣t sụ́ Firewall được cṍu hình và hoa ̣t đụ ̣ng trờn nờ̀n console nhỏ và tiờ ̣n du ̣ng đó là Ipchains và Iptables. Ipchains có sẵn trong kernel Linux 2.2x và Linux 2.0x ipfwadm. Còn Netfilter/Iptables có thờ̉ cṍu hình ở mức đụ ̣ cao và có nhiờ̀u đă ̣c tính hơn Ipchains. Bờn ca ̣nh đó Iptables cũng có nhiờ̀u ứng du ̣ng, như là cài đă ̣t, duy trì và kiờ̉m tra IP Firewall, IP Nat hay IP Masquerading. Chương tiờ́p theo dành đờ̉ nói vờ̀ mụ ̣t sụ́ những ứng du ̣ng đó, đó là dùng Iptables đờ̉ làm IP Masquerading, IP Nat, và mụ ̣t sụ́ phõ̀n mờ̀m ứng du ̣ng.
CHƯƠNG IV : ỨNG DỤNG Firewall
4.1 Sử dụng Iptable
4.1.1 Cỏc file cấu hỡnh
- Để khởi động, ngừng hoặc khởi động lại Iptables cú thể dựng lệnh sau:
/etc/rc.d/init.d/Iptables start : khởi động iptables. /etc/rc.d/init.d/Iptables stop : ngừng iptables.
/etc/rc.d/init.d/Iptables restart : khởi động lại iptables. - Để cấu hỡnh Iptables thỡ dựng file :
/etc/sysconfig/iptables.