免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ShadowStar
打印 上一主题 下一主题

[网络管理] IPP2P模块修改版,最新0.99.16 [复制链接]

论坛徽章:
0
431 [报告]
发表于 2008-04-03 10:01 |只看该作者
系统linuxAS 4
[root@SMB src]# iptables -V
iptables v1.2.11

[root@SMB src]# uname -r
2.6.9-22.ELsmp

安装ipp2p-0.8能成功安装,但不能屏蔽BT、讯雷。
最新版本ipp2p-0.99.16以及9以上版本都报如下错误。
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:6:45: net/netfilter/nf_conntrack_core.h: 没有那个文件或目录
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c: In function `match':
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:815: error: storage size of 'ctinfo' isn't known
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:836: warning: implicit declaration of function `nf_ct_get'
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:836: warning: assignment makes pointer from integer without a cast
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:841: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:841: error: `IP_CT_DIR_ORIGINAL' undeclared (first use in this function)
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:841: error: (Each undeclared identifier is reported only once
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:841: error: for each function it appears in.)
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:841: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:841: error: `IP_CT_DIR_REPLY' undeclared (first use in this function)
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:842: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:844: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:845: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:847: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:847: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:847: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:878: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:900: error: dereferencing pointer to incomplete type
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:815: warning: unused variable `ctinfo'
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c: In function `init':
/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.c:962: warning: implicit declaration of function `need_conntrack'
make[2]: *** [/usr/local/src/ipp2p-0.99.16/ipt_ipp2p.o] 错误 1
make[1]: *** [_module_/usr/local/src/ipp2p-0.99.16] 错误 2
make[1]: Leaving directory `/usr/src/kernels/2.6.9-22.EL-smp-i686'
make: *** [ipt_ipp2p.ko] 错误 2
是不是2.6.9内核不支持的缘故呢??

论坛徽章:
0
432 [报告]
发表于 2008-04-07 11:44 |只看该作者
是怎么打patch的呢? 是不是0.99.16里的那个.diff文件,这个怎么打到内核里? 打了后还要重新编译内核吗? 对于1.4.0的iptables 也能用的是吧?内核是2.6.24...

论坛徽章:
0
433 [报告]
发表于 2008-04-08 19:40 |只看该作者
我使用ipp2p v0.99.14 , iptables v1.3.5, 内核2.6.14.7,已经可以用了
但不能在nat表中使用,是为什么呢,在mangle和filter都可以使用

论坛徽章:
0
434 [报告]
发表于 2008-04-09 16:56 |只看该作者
3QLZ

我使用的是ipp2p v0.99.15,内核为2.6.18,iptables v1.3.6
现在已经可以使用了

但是迅雷或BT都是连单点都不能下载了
如果我想设置为单点能下载,该如何呢??

我的实验rule:
iptables -A FORWARD -m ipp2p --ipp2p -j DROP
iptables -A FORWARD -m ipp2p --xunlei -j DROP

论坛徽章:
0
435 [报告]
发表于 2008-04-12 04:39 |只看该作者

回复 #1 ShadowStar 的帖子

关于emule加密的探测,楼主参考下http://www.panabit.com/document/panabit_white2.html很快就能做到了;加油。pf楼主的代码研读和分析能力。
Panabit采用“基于节点的有状态识别技术”可以避免上述问题。
一个典型的P2P是由许多节点构成的,每个节点都是一个服务器,这个节点可以同时为其它节点提供服务。基于节点的有状态识别技术的基本思想是从节点双方的通信过程中寻找特征数据,这些特征数据不限于某条特定的连接,如果特征匹配,那么系统将记录该节点,而不是某条连接。一旦该接点被识别出来,那么后续同该节点通信的数据无须重新验证,因此极大的提高了系统的性能。P2P应用中,客户端既是客户,又是服务器,在某端口上监听为其他客户提供服务,根据这一特性,将IP+服务端口在内存中定义一个二元组,称之为节点。
Panabit在基于节点的有状态识别技术的基础上向智能方面进一步发展,该技术可以从多条连接中自动根据某种统计规律来识别某些特征不明显或者被加密了的通信协议(如SkyPe),在保证性能的同时,提高了系统识别的准确性。这种技术针对P2P应用尤其有效。
此外,Panabit针对第4代P2P应用软件的变化,采用独有主动探测和服务伪装技术保证对P2P识别的准确性。Panabit采用独有的服务探测引擎可以识别第四代P2P应用,如emule 0.47c。服务伪装, 对于迅雷这样综合了P2P和HTTP,FTP等传输协议的应用,Panabit开发了独有的服务伪装引擎。
从技术角度看,P2P应用有如下几个特点:
(1)一个P2P节点(客户端程序,比如BitComet)通常与成百上千个客户端连接,因此节点之间的连接数目巨大。假如一个节点有200条连接,那么10000个节点就有可能达到200万条连接,保守估计也会有100万条连接,如此大的连接数将使设备不堪负担。
(2)不像Web浏览这样的HTTP协议,HTTP连接一般持续的时间比较短,而P2P主要目的是用来共享大的文件,需要传送大量的数据,因此P2P客户端之间的连接一般持续的时间比较长,这就意味着系统的资源很长时间不能得到释放,因此大大增加系统被DOS(Deny Of Service,拒绝攻击)的机会。
针对上述特点,Panabit通过学习的方式,采用连接识别和节点识别相结合的方式,大大减少了连接数,这样可以用较少的资源监控更大的P2P应用网络,同时提高了系统的效率。

[ 本帖最后由 hjc0759 于 2008-4-12 04:43 编辑 ]

论坛徽章:
0
436 [报告]
发表于 2008-04-15 22:31 |只看该作者

成功编译并使用中,但state模块不能使用,请教LZ!

我用的是centos 5.1  (本人新手,刚学习iptables两周,LZ请勿见笑)
内核版本是 2.6.18-53.el5
iptables的版本是1.3.5

以下是我安装的包

kernel-2.6.18-53.el5.src.rpm
l7-protocols-2008-02-20.tar.gz
netfilter-layer7-v2.17.tar.gz
ipp2p-0.99.15.tar.gz
iptables-1.3.5.tar.bz2
***patch-o-matic-ng-20080411.tar.bz2***  (此包我并没有安装,因为不需要TIME之类的模块,不知道因为这个是不是埋下了祸根)


我编译的时候是这样

make menuconfig     NF下的各个选项和模块选好后
make modules_prepare
make M=net/ipv4/netfilter

把模块cp 到   /lib/modules/2.6.18-53.el5/kernel/net/ipv4/netfilter/
chmod +x  /lib/modules/2.6.18-53.el5/kernel/net/ipv4/netfilter/*.ko
depmod -a

重新编译内核中的相关模块后,基本功能正常·~但是使用
模块连接跟踪时
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables: Unknown error 4294967295
提示错误啊 ··其他模块都可以啊· ·就state不能用~~很是郁闷·请教LZ达人!!

dmesg  后,显示如下:

Netfilter messages via NETLINK v0.30.
ip_conntrack version 2.4 (2047 buckets, 16376 max) - 240 bytes per conntrack
IPP2P v0.99.15 loading
hda: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hda: drive_cmd: error=0x04 { DriveStatusError }
ide: failed opcode was: 0xb0
eth1: no IPv6 routers present
eth0: no IPv6 routers present
eth0: link down
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0: Promiscuous mode enabled.
device eth0 entered promiscuous mode
device eth0 left promiscuous mode
eth1: Promiscuous mode enabled.
device eth1 entered promiscuous mode
device eth1 left promiscuous mode
eth0: Promiscuous mode enabled.
device eth0 entered promiscuous mode
device eth0 left promiscuous mode
xt_state: disagrees about version of symbol ip_conntrack_untracked
xt_state: Unknown symbol ip_conntrack_untracked

以下是我的脚本:

tc qdisc dev eth0 root 2>/dev/null
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 8000kbit burst 10k
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.1.0/24 flowid 1:1
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A FORWARD -p tcp -m ipp2p  --edk --kazaa --gnu --bit --apple --soul --xunlei --pp -j DROP
/sbin/iptables -A FORWARD -p udp -m ipp2p  --edk --kazaa --gnu --bit --apple --soul --xunlei --pp -j DROP
/sbin/iptables -A FORWARD -p tcp -m ipp2p --xunlei -j DROP
/sbin/iptables -A FORWARD -p udp -m ipp2p --xunlei -j DROP
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -p udp -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -p icmp -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -m limit --limit 500/s -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j DROP
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE

论坛徽章:
0
437 [报告]
发表于 2008-04-15 23:01 |只看该作者
不错,在VM下试了试,有效果。谢谢楼主,

论坛徽章:
0
438 [报告]
发表于 2008-04-22 17:28 |只看该作者
请教一下ShadowStar 前辈
我系统是FC6,2.6.21.2

编译成功,也正确拷贝到/lib/iptables下
但是加载的时候出现:

insmod:error inserting 'ipt_ipp2p.ko': -1 Invalid module format

不知是什么原因呢  我用的是ipp2p-0.99.14,先谢了

论坛徽章:
0
439 [报告]
发表于 2008-04-22 18:40 |只看该作者
补充一下 我的iptablesv1.3.7
gcc 4.1.1
恳请帮忙解决insmod:error inserting 'ipt_ipp2p.ko': -1 Invalid module format

论坛徽章:
0
440 [报告]
发表于 2008-04-24 14:47 |只看该作者
原帖由 mafiaguy 于 2008-4-22 17:28 发表
请教一下ShadowStar 前辈
我系统是FC6,2.6.21.2

编译成功,也正确拷贝到/lib/iptables下
但是加载的时候出现:

insmod:error inserting 'ipt_ipp2p.ko': -1 Invalid module format

不知是什么原因呢 ...


不知道你的ipt_ipp2p.ko有没有复制到kernel的模块目录下,复制后还需要执行一下depmod -a
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP