为 iptables 添加 p2p 控制

以下为环境,所有操作都需要 root 支持。
Ubuntu 7.10
kernel 2.6.22-14-server
iptables 1.3.6
ipp2p 0.8.2

1.下载源文件和补丁
iptables 可以到 http://www.netfilter.org 下载.
ipp2p 可以到 http://www.ipp2p.org  下载.
由于 ipp2p 需要打补丁才能支持 2.6.22 以上的核心
补丁地址 http://www.3gcomet.com/linuxtool/ipp2p-0.8.2-kernel-2.6.22.patch.rar

2.预配置内核模块编译环境和获取核心源文件
apt-get install module-assistant
module-assistant,执行 prepare,下载包括核心源文件在内的一堆东西

3.解压和打补丁
tar xvf iptables-1.3.6.tar.bz2 -C /usr/src/
tar xvf ipp2p-0.8.2.tar.gz -C /usr/src/
cp ipp2p-0.8.2-kernel-2.6.22.patch /usr/src/ipp2p-0.8.2/
cd /usr/src/ipp2p-0.8.2/
如果 kernel 是 2.6.xx 但是不高于2.6.22 的就不需要打补丁,在 ubuntu 7.04 kernel 2.6.15-29-server 的时候就不需要下面的。
patch -p1 < ipp2p-0.8.2-kernel-2.6.22.patch
由于使用 ld 产生的 iptables 的 shared library 会有问题, 改用 gcc 来处理!
vi Makefile
找到 ld -shared -o libipt_ipp2p.so libipt_ipp2p.o
修改为 $(CC) -shared -o libipt_ipp2p.so libipt_ipp2p.o

4.编译
make clean
make

清除原来编译的并重新编译,得到 ipt_ipp2p.ko 和 libipt_ipp2p.so ,复制到对应目录
cp ipt_ipp2p.ko /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/
cp libipt_ipp2p.so /lib/iptables/
depmod -a
depmod -a 表示分析全部可用模块,使新复制进入的模块可以启用

5.查看帮助及使用
iptables -m ipp2p --help
封掉 eDonkey/eMule/Overnet,BitTorrent,KaZaA 的包
iptables -A FORWARD -m ipp2p --edk --bit --kazaa  -j Drop

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据