February 22, 2012

Install Ipp2p Menggunakan Fedora Linux

ipp2p
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 -j CONNMARK --restore-mark
# 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.

2 comments:

  1. Artikel yang bagus... Namun saya ingin bertanya, memungkinkan ditambah filter untuk IP / Address tertentu tidak?

    Misalnya, IP tertentu tetap bisa download dengan P2P, sedangkan IP yang lain tidak bisa download dengan P2P.

    Thanks atas responnya

    ReplyDelete
    Replies
    1. Bisa aja, ditambahkan source ip mana yang ingin di lepaskan, atau bisa juga di konfigurasi ip per ip yang mau di drop.
      contoh :
      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.

      Delete