天天看點

Iptables+layer7的實作

 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 ----&gt;中

        将“Netfilter connection tracking suport (NEW)”選擇編譯為子產品(M)(按下空格鍵),需選取此項才能在下面看到layer7支援的配置。

        再将layer7、string、state、time、IPsec、iprange、connlimit……等編譯成子產品(M),一般這些都滿足需要了。

    2) 在IP: Netfilter Configuration ----&gt;中

        将“IPv4 connection tracking support (require for NAT)”編譯成子產品(M)。

        将“Full NAT”下的“MASQUERADE target support”和“REDIRECT target support”編譯成子產品。

   3)退出,儲存

3、編譯及安裝子產品、新核心

make &amp;&amp; make modules_install &amp;&amp; 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 &amp;&amp; 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

繼續閱讀