標籤:l7-filter iptables
環境:
RHEL6.6-x86_64
iptables-1.4.21.tar.bz2
l7-protocols-2009-05-28.tar.gz
netfilter-layer7-v2.23.tar.gz
kernel-2.6.35.8-l7
想禁止員工上班期間玩扣扣,下載電影浪費寶貴的頻寬嗎?l7-filter是個不錯的選擇。。
1、給核心打補丁
# tar xf linux-2.6.35.8.tar.gz -C /usr/src
# tar xf netfilter-layer7-v2.23
# cd /usr/src
# ln -s linux-2.6.35.8 linux
# cd linux
# patch -p1 < /root/netfilter-layer7-v2.23/kernel-2.6.35-layer7-2.23.patch
# cp /boot/config-2.6.32-504.el6.x86_64 /usr/src/linux/.config
# make menuconfig
選擇以下幾項做成核心模組
Networking support ---> Networking options ---> Network packet filtering framework (Netfilter) ---> Core Netfilter Configuration ---> <M> Netfilter connection tracking support
Networking support ---> Networking options ---> Network packet filtering framework (Netfilter) ---> Core Netfilter Configuration ---> <M> "layer7" match support
Networking support ---> Networking options ---> Network packet filtering framework (Netfilter) ---> Core Netfilter Configuration ---> <M> "iprange" address range match support
Networking support ---> Networking options ---> Network packet filtering framework (Netfilter)--->IP: Netfilter Configuration ---> <M> IPv4 connection tracking support (required for NAT) <M> Full NAT
# make
# make modules_install
# make install
核心編譯完以後重啟
# uname -a
Linux localhost.localdomain 2.6.35.8-l7 #1 SMP Mon Apr 13 13:44:31 CST 2015 x86_64 x86_64 x86_64 GNU/Linux
2、安裝iptables
rpm -e iptables-ipv5 iptables --nodeps
# cp /etc/init.d/iptables /
# tar xf iptables-1.4.21.tar.bz2
# cp /root/netfilter-layer7-v2.23/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.* /root/iptables-1.4.21/extensions/
# cd iptables-1.4.21
# ./configure --prefix=/usr --with-ksource=/usr/src/linux
# make
# make install
# cp /iptables-config /etc/sysconfig/iptables-config
# cp /iptables /etc/init.d/iptables
/etc/init.d/iptables設定檔
.........紅色部分為要修改的部分
if [ ! -x /usr/sbin/$IPTABLES ]; then
echo -n $"${IPTABLES}:/usr/sbin/$IPTABLES does not exist."; warning; echo
exit 5
fi
# service iptables start
3、安裝協議特徵包:
# tar xf l7-protocols-2009-05-28
# cd l7-protocols-2009-05-28
# make install
查看支援的部分協議:
# ls protocols/
100bao.pat doom3.pat jabber.pat radmin.pat teamfortress2.pat
aim.pat edonkey.pat kugoo.pat rdp.pat teamspeak.pat
aimwebcontent.pat fasttrack.pat live365.pat replaytv-ivs.pat telnet.pat
applejuice.pat finger.pat liveforspeed.pat rlogin.pat tesla.pat
..........................
.........................
dayofdefeat-source.pat ident.pat pop3.pat ssh.pat xboxlive.pat
dazhihui.pat imap.pat pplive.pat ssl.pat xunlei.pat
dhcp.pat imesh.pat qq.pat stun.pat yahoo.pat
directconnect.pat ipp.pat quake1.pat subspace.pat zmaap.pat
dns.pat irc.pat quake-halflife.pat subversion.pat
4、使用QQ測試
安裝部分已經完成,接下來使用QQ做測試,是否能拒絕QQ登入
兩台主機:
主機A兩個網卡分別對應 192.168.1.123 192.168.8.131 兩個IP ------->指定規則
主機B 192.168.8.128 -------> 登入QQ
主機B想要串連互連網需要通過主機A轉寄,主機B的網關為192.168.8.131指向主機A,制定定以下規則:
# iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j SNAT --to-source 192.168.1.123
# iptables -A FORWARD -s 192.168.8.0/24 -m layer7 --l7proto qq -j DROP
通過上面兩條規則,192.168.8這個網段內的所有主機都無法登入QQ。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6B/31/wKioL1Urmz_CXFb9AAFXtV-xYeI112.jpg" title="qq.png" alt="wKioL1Urmz_CXFb9AAFXtV-xYeI112.jpg" />
可以看到中規則已經被匹配到:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6B/29/wKiom1Url6mw__NlAAKaIXtSaH0468.jpg" title="QQ20150413181543.png" alt="wKiom1Url6mw__NlAAKaIXtSaH0468.jpg" />
[[email protected] ~]# iptables -D FORWARD 1
刪除規則後可正常登入
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/20/wKioL1UrmFyhibSrAADQewOe3TE645.jpg" title="qq2.png" alt="wKioL1UrmFyhibSrAADQewOe3TE645.jpg" />
本文出自 “在路上” 部落格,請務必保留此出處http://mingxiao.blog.51cto.com/8124243/1631963
Linux下使用l7-filter過濾QQ、迅雷、電驢等