Iptables+layer7的實作
1.核心 +7層更新檔
2.iptables +l7更新檔
IPTABLES 7層過濾
軟體環境:
主要目标:
為iptables增加layer7更新檔,實作應用層過濾功能,以便能夠實作過濾即時通信和下載下傳
軟體的流量,及一些流氓軟體的流量過濾。
但是我的核心版本是2.6.18-164.el5不支援L7過濾功能,為此我們需要更新一下我的核心版本
1、重新編譯核心 将kernel+layer7更新檔合并
(Linux核心 在/boot/vmlinuz-2.6.18-164.el5
核心子產品 在/lib/modules/2.6.18-164.el5/kernel/)
tar -jxvf linux-2.6.25.19.tar.bz2 -C /usr/src/ --将我上傳上去的linux核心源碼解壓縮
tar -zxvf netfilter-layer7-v2.20.tar.gz -C /usr/src/ --解壓縮L7更新檔
cd /usr/src/linux-2.6.25.19/
patch -p1 < /usr/src/netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.20.patch --打上L7的更新檔
2、配置新核心
cp /boot/config-2.6.18-8.el5 .config --沿用舊的核心配置
make menuconfig --打開配置菜單
//配置核心時依次選擇如下,在“Networking ---> Networking Options ---> Network Packet filtering framework (Netfilter) ”處主修改如下兩個地方:
<a href="http://blog.51cto.com/attachment/201212/193408226.png" target="_blank"></a>
1) 在Core Netfilter Configuration ---->中
将“Netfilter connection tracking suport (NEW)”選擇編譯為子產品(M)(按下空格鍵),需選取此項才能在下面看到layer7支援的配置。
再将layer7、string、state、time、IPsec、iprange、connlimit……等編譯成子產品(M),一般這些都滿足需要了。
2) 在IP: Netfilter Configuration ---->中
将“IPv4 connection tracking support (require for NAT)”編譯成子產品(M)。
将“Full NAT”下的“MASQUERADE target support”和“REDIRECT target support”編譯成子產品。
3)退出,儲存
3、編譯及安裝子產品、新核心
make && make modules_install && make install
編譯安裝成後後,重新開機選擇使用新的核心(2.6.25.19)引導系統(這一步需要一定的時間哦)也可以修改一下/etc/grub.conf這也檔案讓系統開機自動用新的核心引導如下:
<a href="http://blog.51cto.com/attachment/201212/193421177.png" target="_blank"></a>
重新開機之後再看一下核心版本
<a href="http://blog.51cto.com/attachment/201212/193433427.png" target="_blank"></a>
4、重新編譯iptables
① 解除安裝老的iptables (iptables v1.3.5,先儲存一下老的控制腳本)
cp /etc/init.d/iptables /etc/init.d/iptables.bak
rpm -e iptables --nodeps
② 合并iptables和layer7更新檔
tar -jxvf iptables-1.4.2.tar.bz2 -C /usr/src/
cd /usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel-2.6.20forward/
cp libxt_layer7.c libxt_layer7.man /usr/src/iptables-1.4.2/extensions/
5、編譯安裝
cd /usr/src/iptables-1.4.2/
./configure --prefix=/ --with-ksource=/usr/src/linux-2.6.25.19
make && make install
cp /etc/init.d/iptables.bak /etc/init.d/iptables --還原腳本,這樣就可以用以下指令了
service iptables {start|stop|restart|condrestart|status|panic|save}
6、安裝l7-protocols包
tar -zxvf l7-protocols-2009-05-10.tar.gz -C /etc
mv /etc/l7-protocols-2009-05-10/ /etc/l7-protocols
到這裡iptables已經支援layer7了可以對應用層進行控制了!!!!!!!!!!!。
本文轉自 abc16810 51CTO部落格,原文連結:http://blog.51cto.com/abc16810/1097176