在網絡安全問題日趨嚴峻的今天,防火墻作為第一道防線起著關鍵的作用。Linux由于其源代碼的開放性,成為研究防火墻技術的一個很好的平臺。本文介紹 Linux的防火墻技術Netfilter/Iptables在Linux內核中的具體實現,以及Linux下常用的防火墻規則配置軟件Iptables。
● Netfilter在IP協議棧中的總體框架
Netfilter是Linux 2.4.x以后的內核中用于包處理的抽象、通用化的框架,它為IPv4、IPv6、Appletalk等可以多達32種的網絡協議定義了一套HOOK,這些HOOK在數據報流過協議棧的幾個關鍵點被調用,如IPv4協議棧為了實現對Netfilter架構的支持,IP PACKET在IPv4協議棧上的游歷路線之中,仔細選擇了5個參考點。在這5個參考點上,各引入了一行對NF_HOOK()宏函數的一個相應的調用。這個宏函數定義如下:
#define NF_HOOK