Iptables+layer7的實現

 Iptables+layer7的實現

    1.內核  +7層補丁

    2.iptables +l7補丁  

       

 IPTABLES 7層過濾

 軟件環境:

     http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.19.tar.bz2  (內核源代碼,已不是最新了)

    http://www.netfilter.org/projects/iptables/files/iptables-1.4.2.tar.bz2  (iptables源代碼)

    http://ie.archive.ubuntu.com/sourceforge/l/l7/l7-filter/netfilter-layer7-v2.20.tar.gz (L7補丁)

    http://ie.archive.ubuntu.com/sourceforge/l/l7/l7-filter/l7-protocols-2008-10-04.tar.gz (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) ”處主修改如下兩個地方:

    1) 在Core Netfilter Configuration ---->

        將“Netfilter connection tracking suport (NEW)”選擇編譯爲模塊(M)(按下空格鍵),需選取此項才能在下面看到layer7支持的配置。

        layer7stringstatetimeIPseciprangeconnlimit……等編譯成模塊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這也文件讓系統開機自動用新的內核引導如下:

重啓之後再看一下內核版本

4、重新編譯iptables

① 卸載老的iptables iptables v1.3.5,先保存一下老的控制腳本)

cp /etc/init.d/iptables /etc/init.d/iptables.bak

rpm -e iptables --nodeps 

② 合併iptableslayer7補丁

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了可以對應用層進行控制了!!!!!!!!!!!。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章