CentOS で Winny/Share の検知

CentOS で Winny/Share の検知をできないか、2日ほどいじくってました。

Vyatta で P2P 帯域制御装置を作ろう
のパッチソースを元にカーネルソース解析してましたが、ベースとなる、ipp2p が結構古いようで(というか放置状態?)、派生バージョンもチョコチョコ。
0.8.2-pomng をベースにしているようでした。

l7-filterも併用したかったので、Linuxのカーネルソースをチョコチョコ改造調整。何とか動きました。QoSとかFirewallとかで使えそうです。
今回、physdev を使っているので、bridge環境下で使えます。うーん、理想的。

●こんな感じで、捕獲できました。
Aug 22 02:00:39 xxxxxxxx kernel: QoS003-Winny : IN=br0 OUT=br0 PHYSIN=eth0 PHYSOUT=eth1 SRC=aaa.bbb.ccc.ddd DST=eee.fff.ggg.hhh LEN=40 TOS=0x00 PREC=0x00 TTL=51 ID=10026 DF PROTO=TCP SPT=aaaa DPT=aaaa WINDOW=16542 RES=0x00 ACK FIN URGP=0
Aug 22 02:00:39 xxxxxxxx kernel: QoS005-Share : IN=br0 OUT=br0 PHYSIN=eth0 PHYSOUT=eth1 SRC=aaa.bbb.ccc.ddd DST=eee.fff.ggg.hhh LEN=40 TOS=0x00 PREC=0x00 TTL=114 ID=39902 DF PROTO=TCP SPT=bbbb DPT=bbbb WINDOW=32768 RES=0x00 ACK FIN URGP=0

●iptablesはこんな感じ。(一部です)。
Chain FORWARD (policy ACCEPT)
target prot opt source destination
LOG all -- anywhere anywhere PHYSDEV match --physdev-in eth0 ipp2p v0.8.2-pomng --winny limit: avg 10/min burst 30 LOG level debug prefix `QoS003-Winny : '
MARK all -- anywhere anywhere PHYSDEV match --physdev-in eth0 ipp2p v0.8.2-pomng --winny MARK set 0x3
ACCEPT all -- anywhere anywhere mark match 0x3

LOG all -- anywhere anywhere PHYSDEV match --physdev-in eth0 ipp2p v0.8.2-pomng --share limit: avg 10/min burst 30 LOG level debug prefix `QoS005-Share : '
MARK all -- anywhere anywhere PHYSDEV match --physdev-in eth0 ipp2p v0.8.2-pomng --share MARK set 0x5
ACCEPT all -- anywhere anywhere mark match 0x5

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)