Chinaunix首页 | 论坛 | 博客
  • 博客访问: 641523
  • 博文数量: 110
  • 博客积分: 3808
  • 博客等级: 中校
  • 技术积分: 1930
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-15 14:32
个人简介

声的伟大!

文章分类

全部博文(110)

文章存档

2014年(1)

2013年(2)

2012年(12)

2011年(81)

2010年(14)

分类: LINUX

2011-02-20 00:02:54

源码包编译 Linux 下iptables+l7 实现七层结构。
当前系统linux内核2.6.18
所需源码包:linux-2.6.28.10.tar.gz, netfilter-layer7-v2.22.tar.gz, iptables-1.4.6.tar.gz, l7-protocols-2009-05-28.tar.gz
#
首先tar zxvf linux-2.6.28.10.tar.gz -C /usr/src
tar zxvf netfilter-layer7-v2.22.tar.gz -C /usr/src
ln -sv /usr/src/linux-2.6.28.10 linux
切换到cd /usr/src/linux
patch -p1 < ../patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch

cp /boot/config-2.6.18-164.el5 ./.config (到当前目录下来)
make menuconfig
将如下选项选中
Networking support → Networking Options →Network packet filtering framework →Code Netfilter Configuration
  Netfilter connection tracking support
  “layer7” match support
  “string” match support
  “time”  match support
  “iprange”  match support
  “connlimit”  match support
  “state”  match support
  “conntrack”  connection  match support
  “mac”  address  match support
   "multiport" Multiple port match support
Networking support → Networking Options →Network packet filtering framework → IP: Netfilter Configuration
IPv4 connection tracking support (required for NAT)
   Full NAT
     MASQUERADE target support                                                                                 
      NETMAP target support                                                                             
      REDIRECT target support

接下来编译内核:
make (需要等待一段时间)
make modules_install
make install
编译完成后编辑/boot/grub/grub.conf 配置文件将默认启动的内核设为编译好的新内核。
重启restart(init 6)
 
重启完成后接下来编译iptables,首先cp /etc/init.d/iptables ./
rpm -e iptables iptables-ipv6 【ipstate】 --nodeps
tar jxvf iptables-1.4.6.tar.bz2 -C /usr/src
cd /usr/src/iptables-1.4.6/
cp ../netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.* ./extensions/
./configure --prefix=/usr --with-ksource=/usr/src/linux   【--with-ksource=PATH     Path to kernel source directory】
make
make install
 
接下来编译l7
tar zxvf l7-protocols-2009-05-28.tar.gz
cd l7-protocols-2009-05-28/
make install
一切准备就绪,mv iptables /etc/init.d/ 【值得注意的是iptables配置文件中需要修改一下路径】【/usr/sbin/iptables】

servers iptables start
接下来就可以定义iptables规则
例:iptables -A INPUT -s 192.168.0.0/24 -m layer7 --l7proto qq -j REJECT
 
 
下面是L7-filter以协议进行过滤的例子
 
(1)阻止MSN的数据通信
iptables -m mangle -A POSTROUTING -m layer7 --l7-proto msnmessenger -j DROP
 
(2)阻止MSN的数据通信,除了IP地址为192.168.0.100的主机。

iptables -t mangle -A POSTROUTING -s 192.168.0.100 -m layer7 --l7proto msnmessenger -j ACCEPT
iptables -t mangle -A POSTROUTING -d 192.168.0.100 -m layer7 --l7proto msnmessenger -j ACCEPT

iptables -t mangle -A POSTROUTING -m layer7 --l7proto msnmessenger -j DROP

(3)阻止MSN的文件传输的数据通信。

iptables -t mangle -A POSTROUTING -m layer7 --l7proto msn-filetransfer -j DROP

(4)阻止QQ的数据通信

iptables -t mangle -A POSTROUTING -m layer7 --l7proto qq -j DROP

(5)阻止CS的数据通信。

iptables -t mangle -A POSTROUTING -m layer7 --l7proto counterstrike -j DROP

(6)阻止BitForrent的数据通信(由于有些BT软件可以将通信加密,所以该方式并不能完全阻止BitTorrent的通信)。

iptables -A OUTPUT -m layer7 --l7proto bittorrent -j DROP

(7)阻止电驴的数据通信。

iptables -A OUTPUT -m layer7 --l7proto edonkey -j DROP

(8)阻止socks代理。

iptables -t mangle -A POSTROUTING -m layer7 --l7proto socks -j DROP

(9)阻止包含EXE文件的数据通信。

iptables -t mangle -A POSTROUTING -m layer7 --l7proto exe -j DROP

阅读(1706) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~