11选5爱彩乐山西|快三爱彩乐官网
當前位置: 主頁 > Linux安裝教程 > 軟件安裝 >

Linux下利用l7filter封殺迅雷、QQ、MSN

時間:2019-04-06 11:00來源:網絡整理 作者:Linux先生 舉報 點擊:
中國軟件網

CentOS 5.2-----------------------------------------------------最穩定的linux服務器

Linux-2.6.19.tar.gz ------------------------------------------2.6.19內核

iptables-1.4.1.1.tar.gz--------------------------------------iptables主程序

netfilter-layer7-v2.21.tar.gz------------------------------l7filter主程序

l7-protocols-2008-12-18.tar.gz--------------------------l7filter的封禁protocol腳本

與l7filter有關的網站:

注意查看netfilter-layer7-v2.21.tar.gz中的README文件,以便確定內核版本。

iptables-1.4-for-kernel-2.6.20forward-layer7-[l7-filter version].patch

forward表示支持內核版本為2.6.20或更新的版本。

iptables-1.3-for-kernel-pre2.6.20-layer7-[l7-filter version].patch

pre表示支持內核版本為2.6.20之前的內核老版本,包括2.4

我們選擇

內核補丁為:kernel-2.6.25-2.6.28-layer7-2.21.patch

Iptables的補丁為:iptables-1.4.1.1-for-kernel-2.6.20forward

內核版本選擇為:linux-2.6.27

Iptables選擇為:iptables-1.4.1.1.tar

1. 為內核及iptables打l7filter補丁

1.1安裝gcc

安裝CentOS5.2時采用自定義軟件,然后選中“based”并取消其它全部選定,進行基本安裝。安裝完成進入系統,首先安裝GCC。

# rpm -ivhU kernel-headers-2.6.18-92.el5.i386.rpm

# rpm -ivhU glibc-headers-2.5-24.i386.rpm

# rpm -ivhU glibc-devel-2.5-24.i386.rpm

# rpm -ivhU libgomp-4.1.2-42.el5.i386.rpm

# rpm -ivhU cpp-4.1.2-42.el5.i386.rpm

# rpm -ivhU gcc-4.1.2-42.el5.i386.rpm

查看一下GCC版本:

# gcc -v

gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)

再查看當前內核版本:

# uname -r

2.6.19-default

還需要安裝如下RPM包,這個包是在#make menuconfig 時必需的,否則報錯:

# rpm -ivhU ncurses-devel-5.5-24.20060715.i386.rpm

1.2 給內核打補丁

先將l7filter解壓:

# tar zxvf netfilter-layer7-v2.21.tar.gz

再給內核打l7filter補丁:

# tar zxvf linux-2.6.27.tar.gz

# cd linux-2.6.27

# patch -p1 < ../netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch

還需要修改如下文件,否則編譯時出錯:

# vi scripts/kconfig/mconf.c

將static struct menu *current_menu;這一行注釋掉,

并添加struct menu *current_menu;如下:

//static struct menu *current_menu;

struct menu *current_menu;

把以前的配置文件拷貝到當前內核目錄,以繼承原有配置:

# cp /boot/config-2.6.18-92.el5 ./.config

# make mrproper @@@刪除不必要的文件和目錄,初次編譯內核不需要

# make clean @@@刪除不必要的模塊和文件

# make menuconfig @@@基于文本選單的配置界面,字符終端下推薦使用

選擇相應的配置時,有三種選擇,它們分別代表的含義如下:

Y--將該功能編譯進內核

N--不將該功能編譯進內核

M--將該功能編譯成可以在需要時動態插入到內核中的模塊

Networking support --->Networking options--->Network packet filtering framework (Netfilter) --->Core Netfilter Configuration --->

選中如下兩行:

"layer7" match support

[*] Layer 7 debugging output

如下圖所示:

Linux下利用l7filter封殺迅雷、QQ、MSN

然后保存退出內核配置模式。

# make dep @@@鏈接程序代碼和函數庫

# make bzImage @@@開始編譯系統內核,此步大約需要25分鐘

# make modules @@@開始編譯外掛模塊,此步大約需要1個小時

# make modules_install @@@安裝編譯完成的模塊

# make install @@@將剛才編譯完成的內核安裝到系統里面

編譯內核完成后,用新內核啟動,然后進入系統

看一下當前系統內核:

# uname -r

2.6.27

1.3 安裝iptables

下面給iptables打l7filter補丁,并編譯、安裝:

# tar jxvf iptables-1.4.1.1.tar.bz2

# cd iptables-1.4.1.1

# ln -s /home/l7filter/linux-2.6.27 /usr/src/linux

#cp netfilter-layer7-v2.21/iptables-1.4.1.1-for-kernel-2.6.20forward/libxt_layer7.* iptables-1.4.1.1/extensions/

# ./configure --with-ksource=/usr/src/linux/

#make

#make install

查看一下iptables的版本信息:

# iptables -v

iptables v1.4.1.1: no command specified

Try `iptables -h' or 'iptables --help' for more information.

好了,現在我們已經完成了內核和iptables對l7filter的支持工作,下面開始設置。

1.4安裝l7-filter協議文件:

# tar zxvf l7-protocols-2008-12-18.tar.gz

# cd l7-protocols-2008-12-18

# make install @@@進行安裝,只是拷貝了一些文件到/etc目錄

mkdir -p /etc/l7-protocols

cp -R * /etc/l7-protocols

2.利用l7filter來封禁迅雷、qq、msn….

首先我們查看一下l7filter支持的封禁列表:

# ls /etc/l7-protocols/protocols/

100bao.pat gkrellm.pat ncp.pat ssdp.pat

aim.pat gnucleuslan.pat netbios.pat ssh.pat

aimwebcontent.pat gnutella.pat nntp.pat ssl.pat

applejuice.pat goboogy.pat ntp.pat stun.pat

ares.pat gopher.pat openft.pat subspace.pat

armagetron.pat guildwars.pat pcanywhere.pat subversion.pat

battlefield1942.pat h323.pat poco.pat teamfortress2.pat

battlefield2142.pat halflife2-deathmatch.pat pop3.pat teamspeak.pat

battlefield2.pat hddtemp.pat pplive.pat telnet.pat

bgp.pat hotline.pat qq.pat tesla.pat

biff.pat http.pat quake1.pat tftp.pat

bittorrent.pat http-rtsp.pat quake-halflife.pat thecircle.pat

chikka.pat ident.pat radmin.pat tor.pat

cimd.pat imap.pat rdp.pat tsp.pat

ciscovpn.pat imesh.pat replaytv-ivs.pat unknown.pat

citrix.pat ipp.pat rlogin.pat unset.pat

counterstrike-source.pat irc.pat rtp.pat uucp.pat

cvs.pat jabber.pat rtsp.pat validcertssl.pat

dayofdefeat-source.pat kugoo.pat shoutcast.pat ventrilo.pat

dhcp.pat live365.pat sip.pat vnc.pat

directconnect.pat liveforspeed.pat skypeout.pat whois.pat

dns.pat lpd.pat skypetoskype.pat worldofwarcraft.pat

doom3.pat mohaa.pat smb.pat x11.pat

edonkey.pat msn-filetransfer.pat smtp.pat xboxlive.pat

fasttrack.pat msnmessenger.pat snmp.pat xunlei.pat

finger.pat mute.pat socks.pat yahoo.pat

freenet.pat napster.pat soribada.pat zmaap.pat

ftp.pat nbns.pat soulseek.pat

我們可以看到,l7filter支持的封禁協議相當豐富,并且支持都很好。

# iptables -t mangle -I POSTROUTING -m layer7 --l7proto msnmessenger -j DROP

# iptables -t mangle -I POSTROUTING -m layer7 --l7proto qq -j DROP

# iptables -t mangle -I POSTROUTING -m layer7 --l7proto xunlei -j DROP

#iptables -t mangle -I PREROUTING -m layer7 --l7proto edonkey -j DROP

#iptables -t mangle -I PREROUTING -m layer7 --l7proto bittorrent -j DROP

上面命令將msn、qq、迅雷、電驢、BT進行了封禁。

其中紅色部分就在我們用命令# ls /etc/l7-protocols/protocols/所看到的列表中。

啟動IP轉發,使客戶端可以通過pppoe服務器訪問外網

# echo 1 > /proc/sys/net/ipv4/ip_forward

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 0/0

下面我們進行測試(l7filter服務器作為企業網絡的網關,這里IP為192.168.1.251):

Linux下利用l7filter封殺迅雷、QQ、MSN

查看當前封禁情況:

# iptables -t mangle -L POSTROUTING -v

Chain POSTROUTING (policy ACCEPT 386 packets, 41321 bytes)

pkts bytes target prot opt in out source destination

0 0 DROP all -- any any anywhere anywhere LAYER7 l7proto aim

0 0 DROP all -- any any anywhere anywhere LAYER7 l7proto bittorrent

0 0 DROP all -- any any anywhere anywhere LAYER7 l7proto edonkey

0 0 DROP all -- any any anywhere anywhere LAYER7 l7proto xunlei

0 0 DROP all -- any any anywhere anywhere LAYER7 l7proto qq

0 0 DROP all -- any any anywhere anywhere LAYER7 l7proto msnmessenger

Qq和msn的連接失敗信息:

Linux下利用l7filter封殺迅雷、QQ、MSN

Linux下利用l7filter封殺迅雷、QQ、MSN

系統log信息

Linux下利用l7filter封殺迅雷、QQ、MSN

L7filter的處理圖示:

Linux下利用l7filter封殺迅雷、QQ、MSN

<!--[if !vml]-->

<!--[endif]-->

其它的封禁情形不再一一演示,l7filter是個功能相當強大的七層網管,值得深入研究。

推薦內容
11选5爱彩乐山西