歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下利用l7filter封殺迅雷、QQ、MSN

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

日期:2017/2/28 16:49:48   编辑: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有關的網站:

http://l7-filter.sourceforge.net/protocols

http://sourceforge.net/projects/l7-filter/

http://protocolinfo.org/wiki/Main_Page


注意查看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 --->

選中如下兩行:

<M>"layer7" match support

[*] Layer 7 debugging output

如下圖所示:

500)this.width=500;" border=0 twffan="done">

Copyright © Linux教程網 All Rights Reserved