Ipp2p dikenal dapat memfilter atau memblok akses p2p yang melewati router kita
disini akan dibahas bagaimana cara menginstallnya di Linux, Fedora Core-6 (2.6.18-1.2798.fc6).
Sebelumnya perlu diketahui ipp2p akan terintegrasi dengan iptables, Langsung saja langkahnya :
Download terlebih dahulu ipp2p-0.8.2.tar.gz dari official website ipp2p, perintahnya:
# cd /usr/local/src
# wget http://www.ipp2p.org/downloads/ipp2p-0.8.2.tar.gz
Seperti diketahui sebelumnya bahwa ipp2p akan terintegrasi ke dalam iptables, maka akan diperlukan source iptables saat mengkompile ipp2p.
Downloadlah dulu source iptables dari netfilter.org, karena secara default iptables pada fedora 6 adalah versi 1.3.5, kita download sourcenya:
# cd /usr/local/src/
# wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.5.tar.bz2
Extract ipp2p dan iptables yang tadi di download :
# cd /usr/local/src
# tar jxfv iptables-1.3.5.tar.bz2
# tar xfvz ipp2p-0.8.2.tar.gz
# cd ipp2p-0.8.2
# vim Makefile
IPTABLES_SRC = $(wildcard /usr/src/iptables-$(IPTVER)) ubah menjadi IPTABLES_SRC = $(wildcard /usr/local/src/iptables-1.3.5) atau IPTABLES_SRC = /usr/local/src/iptables-1.3.5# make
# cp libipt_ipp2p.so /lib/iptables/
# insmod ipt_ipp2p.ko
# depmod -a
Kemudiam untuk tes apakah ipp2p sudah berjalan, ketik :
# iptables -m ipp2p --help
IPP2P v0.8.2 options: --ipp2p Grab all known p2p packets --edk [TCP&UDP] All known eDonkey/eMule/Overnet packets --dc [TCP] All known Direct Connect packets --kazaa [TCP&UDP] All known KaZaA packets --gnu [TCP&UDP] All known Gnutella packets --bit [TCP&UDP] All known BitTorrent packets --apple [TCP] All known AppleJuice packets --winmx [TCP] All known WinMX --soul [TCP] All known SoulSeek --ares [TCP] All known Ares .......... Examples: iptables -A FORWARD -m ipp2p --ipp2p -j MARK --set-mark 0x01 iptables -A FORWARD -p udp -m ipp2p --kazaa --bit -j DROP iptables -A FORWARD -p tcp -m ipp2p --edk --soul -j DROP ......... end help
Bila hasil tes keluar hasil seperti diatas, ipp2p sudah berjalan, dan sobat tinggal membuat rule atau konfigurasinya, contoh untuk blok semua jenis p2p :
# iptables -A FORWARD -m ipp2p --ipp2p -j DROP (blok udp dan tcp)
atau bila ingin secara spesifik
# iptables -A FORWARD -m ipp2p --edk -j DROP
# iptables -A FORWARD -m ipp2p --kazaa -j DROP, dst..
Ipp2p dapat juga digunakan untuk shaping traffic menggunakan connection tracking (CONNMARK), Contoh :
# iptables -A PREROUTING -t mangle -p tcp -m mark ! --mark 0 -j ACCEPT
# iptables -A PREROUTING -t mangle -p tcp -m ipp2p --ipp2p -j MARK --set-mark 1
# iptables -A PREROUTING -t mangle -p tcp -m mark --mark 1 -j CONNMARK --save-mark
Koneksi p2p, baik itu TCP ataupun UDP di marked dengan angka "1".
# tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 1 fw classid 1:11
# tc filter add dev eth1 parent 2:0 protocol ip prio 4 handle 1 fw classid 2:11
Dengan Menggunakan HTB dan filter semua paket akan di marked dengan angka "1" ke dalam class untuk semua device (eth0 & eth1).
Kemudian limit bandwidth untuk class ini, artinya kita telah membatasi koneksi p2p.
Untuk melihat hasilnya setelah kita menambahkan rule ipp2p pada router, ketik :
# watch iptables -nxvL , hasilnya akan seperti :
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 717656 44298322 icmp_packets icmp -- * * 0.0.0.0/0 0.0.0.0/0 116620 14389547 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ipp2p v0.8.2 --ipp2p
Diatas pada baris terakhir terlihat target di DROP oleh ipp2p.
Selamat Mencoba dan terima kasih telah mampir serta membaca tulisan ini, bila mendapatkan kendala tinggalkanlah komentar.

Artikel yang bagus... Namun saya ingin bertanya, memungkinkan ditambah filter untuk IP / Address tertentu tidak?
ReplyDeleteMisalnya, IP tertentu tetap bisa download dengan P2P, sedangkan IP yang lain tidak bisa download dengan P2P.
Thanks atas responnya
Bisa aja, ditambahkan source ip mana yang ingin di lepaskan, atau bisa juga di konfigurasi ip per ip yang mau di drop.
Deletecontoh :
iptables -A FORWARD -s 10.0.0.5/32 -m ipp2p --ipp2p -j ACCPET
iptables -A FORWARD -m ipp2p --ipp2p -j DROP
Penjelasan : baris pertama allow untuk ip 10.0.0.5, baris kedua blok kembali untuk ipp2p
atau ip per ip yang diblok , contoh :
iptables -A FORWARD -s 10.0.0.5/32 -m ipp2p --ipp2p -j DROP
iptables -A FORWARD -s 10.0.0.6/32 -m ipp2p --ipp2p -j DROP
Terima kasih, selamat mencoba ya.