`
ithero
  • 浏览: 143617 次
社区版块
存档分类
最新评论

iptables封讯雷

阅读更多

本文转自网络

下载文件
最新内核: 
http://www.kernel.org/pub/linux/kernel/v2.6/
我下载的最新的 linux-2.6.30.tar.bz2 (注意,这个内核layer7没标明测试通过)
查看netfilter-layer7里的readme,2.6.30版本还是untested
附内核支持情况http://l7-filter.sourceforge.net/kernelcompat

iptables:
http://www.netfilter.org/projects/iptables/files/iptables-1.4.4.tar.bz2

netfilter:
http://sourceforge.net/projects/l7-filter/files/
netfilter-layer7-v2.22.tar.gz

l7-protocols:
http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2009-05-28.tar.gz
(这个我在sourceforge.net/projects/l7-filter的目录下没找到,后来在别的地方找的上面的链接)

下载完成后将4个文件全部放在/usr/src目录下(当然,放其它目录也可以)
#tar -jxvf linux-2.6.30.tar.bz2
#tar -jxvf iptables-1.4.4.tar.bz2
#tar -zxvf netfilter-layer7-v2.22.tar.gz
#tar -zxvf L7-protocols-2009-05-28.tar.gz

打内核打l7补丁并升级内核
#cd linux-2.6.30
#patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch
将以前的内核配置参数copy到当前目录下为.config
#cp /boot/config-2.6.18-92.el5     .config

#make menuconfig
选择 Load an Alternate Configuration File
选择 .config

再按以下项目配置 networking support----->networking options---->network packet filtering framework(netfilter)

1 ---->core netfilter configuration
A 将 "Netfilter connection tracking suport (NEW)" 选择编译为模块(M),需选取此项才能看到下面layer7支持的配置。(开始不知道这个,找了半天没看到layer7,晕)
B 将layer7、string、state、time、IPsec、iprange、connlimit……等编译成模块,根据需要看着办
C 将netbios name service protocal support(new)编译成模块,不然后面升级iptables后启动时会出错

2 ----->IP: Netfilter Configuration
A 将 "IPv4 connection tracking support (require for NAT)" 编译成模块。
B 将 "Full NAT" 下的 "MASQUERADE target support" 和 "REDIRECT target support" 编译成模块。

关闭Selinux

vi /etc/sysconfig/selinux
   SELINUX=disabled

#make 这步要很久,等了快1个小时完成
#make modules
#make modules_install
#make install
#reboot
#uname -r
2.6.30

系统起来了,成功了一半,继续

升级iptables并加入layer7补丁

#cd /usr/src/iptables-1.4.4
copy libxt_layer7.c与libxt_layer7.man到iptables目录下
#cp /usr/src/netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/* extensions/
#./configure --prefix=/ --with-ksource=/usr/src/linux-2.6.30
或./configure --with-kernel=/usr/src/linux-2.6.30
#make ; make install
#reboot
#iptables -V
iptables v1.4.4 (已经更新至新版本)

安装Layer7 协议文件

# cd /usr/src/l7-protocols-2009-05-28
# make install
#cd /etc/l7-protocols/protocols
#ls (以下都是l7定义好的模板)
100bao.pat                hotline.pat           shoutcast.pat
aim.pat                   http.pat              sip.pat
aimwebcontent.pat         http-rtsp.pat         skypeout.pat
applejuice.pat            ident.pat             skypetoskype.pat
ares.pat                  imap.pat              smb.pat
armagetron.pat            imesh.pat             smtp.pat
battlefield1942.pat       ipp.pat               snmp.pat
battlefield2142.pat       irc.pat               socks.pat
battlefield2.pat          jabber.pat            soribada.pat
bgp.pat                   kugoo.pat             soulseek.pat
biff.pat                  live365.pat           ssdp.pat
bittorrent.pat            liveforspeed.pat      ssh.pat
chikka.pat                lpd.pat               ssl.pat
cimd.pat                  mohaa.pat             stun.pat
ciscovpn.pat              msn-filetransfer.pat subspace.pat
citrix.pat                msnmessenger.pat      subversion.pat
counterstrike-source.pat mute.pat              teamfortress2.pat
cvs.pat                   napster.pat           teamspeak.pat
dayofdefeat-source.pat    nbns.pat              telnet.pat
dazhihui.pat              ncp.pat               tesla.pat
dhcp.pat                  netbios.pat           tftp.pat
directconnect.pat         nntp.pat              thecircle.pat
dns.pat                   ntp.pat               tonghuashun.pat
doom3.pat                 openft.pat            tor.pat
edonkey.pat               pcanywhere.pat        tsp.pat
fasttrack.pat             poco.pat              unknown.pat
finger.pat                pop3.pat              unset.pat
freenet.pat               pplive.pat            uucp.pat
ftp.pat                   qq.pat                validcertssl.pat
gkrellm.pat               quake1.pat            ventrilo.pat
gnucleuslan.pat           quake-halflife.pat    vnc.pat
gnutella.pat              radmin.pat            whois.pat
goboogy.pat               rdp.pat               worldofwarcraft.pat
gopher.pat                replaytv-ivs.pat      x11.pat
guildwars.pat             rlogin.pat            xboxlive.pat
h323.pat                  rtp.pat               xunlei.pat
halflife2-deathmatch.pat rtsp.pat              yahoo.pat
hddtemp.pat               runesofmagic.pat      zmaap.pat


使用iptables layer-7 filter例子:
# iptables -t mangle -I PREROUTING -m layer7 --l7proto edonkey -j DROP (禁止edonkey)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto bittorrent -j DROP (禁止bt)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto qq -j DROP (禁止QQ通讯)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto msnmessenger -j DROP (禁止edonkey)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto xunlei -j DROP (禁止迅雷)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto kugoo -j DROP (禁止kugoo)
# iptables -t mangle -I PREROUTING -m layer7 --l7proto yahoo -j DROP (禁止Yahoo! Messenger)

注意: layer7屏蔽的信息日志会在终端画面显示,搞得满屏都是,可以通过改变以下参数来关闭终端的显示:
#vim /etc/sysconfig/syslog
KLOGD_OPTIONS="-x -c 3"

#service syslog restart

最后:

如果启动iptables时报ip_conntrack_netbios_ns有错
在/etc/sysconfig/iptables-config
将以下一行注释掉。
IPTABLES_MODULES="ip_conntrack_netbios_ns"
ip_conntrack_netbios_ns是配置netbios穿越NAT用的,一般用不到的。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics