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