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