感謝platinum的文檔;
下面是我在Linux上的試驗步驟,可能不那麼准確。
=========
Iptables添加模塊 Howto
For kernel 2.6
准備工作:
1, 最新的patch-o-matic-ng,在下面的地址可以下載到最新的:
http://FTP.netfilter.org/pub/patch-o-matic-ng/
2, 最新的iptables源代碼:
http://www.netfilter.org
3, 內核源代碼:
http://www.kernel.org
4, L7-filter 補丁以及協議描述文件:
http://sourceforge.net/project/showfiles.PHP?group_id=80085
測試系統環境及軟件版本:
1, GCC 3.4.2
2, Kernel 2.6.9
3, Iptbles 1.3.1
4, l7-protocols 2005-02-06
5, netfilter-layer7 v1.0
6, patch-o-matic-ng 20050309
安裝步驟:
1, 解壓kernel到/usr/src: #tar –jxvf kernel-2.6.9.tar.bz2 –C /usr/src
2, 使用上面類似的命令解壓其余的文件到/source/temp下:
為kernel打補丁:
Cd /usr/src/linux-2.6.9
Make menUConfig(注意生成.config)
cd /source/temp/patch-o-matic-ng-20050309
KERNEL_DIR=/usr/src/linux-2.6.9 IPTABLES_DIR=/source/temp/iptables-1.3.1 ./runme time
(注: runme後跟需要添加的模塊,不要使用base或其它的命令,會導致後面iptables不能編譯通過。我編譯的模塊有:time ipv4options psd mport ipp2p quota。很遺憾的是string模塊不支持kernel-2.6版本)
##這裡是與l7-filter有關的(你可以不做這裡的):
Cd /usr/src/linux-2.6.9
Patch –p1 </source/temp/netfilter-layer7-v1.0/kernel-2.6-layer7-1.0.patch
Cd /source/temp/iptables-1.3.1
Patch –p1 </source/temp/netfilter-layer7-v1.0/iptables-layer7-1.0.patch
##這裡是與l7-filter有關的結束
Cd /usr/src/linux-2.6.9
Make menuconfig (在這裡選擇你添加的netfilter的模塊)
Make
Make modules_install
修改grub或lilo使用新的kernel來啟動Linux
編譯iptables:
Cd /source/temp/iptables-1.3.1
EXPort KERNEL_DIR=/usr/src/linux-2.6.9
Export IPTABLES_DIR=/source/temp/iptables-1.3.1
make PREFIX=/usr LIBDIR=/lib BINDIR=/sbin &&
make PREFIX=/usr LIBDIR=/lib BINDIR=/sbin install
安裝l7-filter協議文件:
Cd /source/temp/l7-protocols-2005-02-06
Make install
測試是否成功:
Iptables –A OUTPUT –p tcp –m mport –sports 21:23,80 –j DROP
等等測試命令,如果你需要看幫助:
Iptables –m ip2p2 –help
參考文檔:
http://l7-filter.sourceforge.net/L7-HOWTO-Netfilter
http://www.netfilter.org/documentation/HOWTO//netfilter-extensions-HOWTO.Html
platinum的HOWTO文檔