爲iptables安裝layer7模塊

  layer7 是在linux上面的一個防火牆模塊,它可以在iptables上面實現七層過濾,能過濾包括電驢,msn,qq等一些列軟件,我們知道在Linux上面firewall是基於內核模塊實現的,所以我們要想起用layer7模塊就必須編譯內核,下面是步驟:

 

 1. 需要源碼包

    The 2.4 or 2.6 Linux kernel source (2.6 strongly preferred)  內核源2.4或者2.6版本碼包
    The iptables source  iptables源碼包
    l7-filter kernel version" package  lyer7源碼包
     "Protocol definitions" package (l7-protocols-YYYY-MM-DD.tar.gz) lyer7規則包
2.  編譯內核
 # tar zxvf linux-2.6.28.10.tar.gz -C /usr/src
 // 解壓內核源碼包到/usr/scr
# tar zxvf netfilter-layer7-v2.22.tar.gz -C /usr/src
//解壓layer7源碼包到/usr/src
# ln –s /usr/src/linux-2.6.28.10/   /usr/src/linux
//把內核解壓後文件夾連接到/usr/src/linux文件夾
# cd /usr/src/linux/ 切換到/usr/srclinux 文件夾
# patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch  
//用layer7提供的補丁爲內核打補丁
#cp /boot/config-2.6.18-164.el5    /usr/src/linux/.config 複製/boot/config-XX 爲 .config爲藍本
# make menuconfig編譯內核
在下面選項中啓用以下模塊
Networking support → Networking Options →Network packet filtering framework →Code Netfilter Configuration
Ü      <M> Netfilter connection tracking support
Ü      <M> “layer7” match support
Ü      <M> “string” match support
Ü      <M> “time” match support
Ü      <M> “iprange” match support
Ü      <M> “connlimit” match support
Ü      <M> “state” match support
Ü      <M> “conntrack” connection match support
Ü      <M> “mac” address match support
Ü      <M>   "multiport" Multiple port match support
v      Networking support → Networking Options →Network packet filtering framework → IP: Netfilter Configuration
Ü      <M> IPv4 connection tracking support (required for NAT)
Ü      <M>   Full NAT
v      <M>     MASQUERADE target support                                                                                   <M>     NETMAP target support                                                                               <M>     REDIRECT target support
 
爲內核添加支持選項(layer7)
#make 開始編譯
#make modules_install 安裝內核模塊 安裝在/lib/modules/2.6.28.10/
#make install 安裝新內核
編輯grub 把新內核作爲默認啓動內核 並重啓
     # cp /etc/rc.d/init.d/iptables ~/iptables
複製/etc/rc.d/init.d/iptables 到~/iptables 爲了用service iptables 可用
# cp /etc/sysconfig/iptables.config /root 備份iptables配置文件
      # rpm -e iptables-ipv6 iptables iptstate --nodeps
卸載當前系統下的iptables
     # tar jxvf iptables-1.4.6.tar.bz2 –C /usr/src
解壓iptables 源碼包到/usr/src
     # cd /usr/src/iptables-1.4.6j
切換到iptables文件夾內
#cp   ../netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*   ./extensions/ 把layer7中對於iptables的補丁複製到iptables 源碼中
     ./configure --prefix=/usr --with-ksource=/usr/src/linux
配置iptables 默認安裝前綴爲/usr 內核模塊位於 /usr/src/linux下
    #make 編譯iptables
     #make install 安裝iptables
     # tar zxvf l7-protocols-2009-05-28.tar.gz
安裝layer7的
     # cd l7-protocols-2009-05-28
切換到目錄
      # make install
安裝layer7規則包
      # mv ~/iptables /etc/rc.d/init.d/
把此前備份的 ~/iptables 複製回到/etc/rc.d/init.d/目錄下
# cp /root/iptables.config /etc/sysconfig/iptables.config 複製回iptables配置文件
# vim /etc/rc.d/init.d/iptables 編寫這個文件
 把$iptables的路徑改成/usr/sbin/$iptables
利用服務腳本
# service iptables start
啓動 iptables 這樣iptables就可以即用layer7 模塊了 
使用layer7
#iptables -t nat -A POSTROUTING -m layer7 --17proto qq  -j DROP
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章