Saturday, June 19, 2010

Mengetahui Client Menggunakan Ext. Proxy dan Membloknya

Beberapa hari yang lalu seorang pelanggan di warnet menggunakan proxy eksternal dengan IP 125.160.17.33 port 8080 pada web browsernya sehingga pembatasan yang saya lakukan di proxy server warnet ter-bypass olehnya. Parahnya proxy eksternal tersebut memberikan bandwith yang lebih besar dari pada proxy warnet, sehingga pelanggan lain mengalami kelambatan koneksi.

Memang, proxy dapat dengan ampuh membatasi koneksi dari client, namun proxy jugalah yang dapat menghilangkan pembatasan tersebut.
Bagaimana saya mengetahuinya? Inilah yang akan saya jelaskan dalam artikel ini, berikut bagaimana mengatasinya (blocking koneksi ke proxy eksternal).
Masuklah ke IPCop via browser, kemudian masuk ke menu Status >> Connection

Menu connection IPCop menyajikan kepada kita setiap koneksi paket yang terjadi antara jaringan lokal dengan jaringan luar (internet) yang disajikan secara berurutan mulai dari original source IP:port – Original Dest. IP:Port – Expected Source IP:port – Expected Dest. IP:Port
Koneksi tersebut dilengkapi pula dengan warna yang berbeda yang menunjukkan node atau mesin yang dilalui koneksi tersebut. Warna hijau adalah LAN atau komputer client, Merah adalah internet atau server tujuan di internet, kuning merupakan mesin DMZ, Biru adalah komputer client yang konek via wifi, hitam adalah proxy IPCop sendiri, serta terakhir ungu yang mewakili koneksi VPN.
Sebuah koneksi http yang normal dari jaringan lokal (via kabel biasa) ke internet, oleh IPCop pada kolom connection ditampilkan sbb:
  1. Original source IP:port akan ditampilkan sebagai LAN dengan warna hijau.
  2. Original Dest. IP:Port merupakan tujuannya yang asli di Internet beserta port, sehingga berwarna merah. Kolom ini sebenarnya hanyalah pernyataan tentang tujuan paket saja bukan mewakili mesin yang dilaluinya.
  3. Expected Source IP:port seharusnya adalah proxy IPCop sendiri, karena setiap request dari client (LAN) pada port 80 ke internet (koneksi http biasaya memakai port ini) akan melewati proxy IPCOP. Sehingga kolom ini seharusnya berwarna hitam.
  4. Expected Dest. IP:port merupakan client lokal tujuan (setelah dari internet) akan ditampilkan kembali sebagai LAN dengan warna hijau. Kenapa kok langsung ke LAN? Bukan IPCop atau hitam? warna hitam dalam hal ini menunjukkan proxy-nya IPCop bukan IPCop secara umum, karena koneksi dari internet tersebut telah dianggap aman sehingga ia tidak melewati proxy IPCop. Kira-kira begitu (CMIIW).
Sehingga urutan warna yang benar pada koneksi http yang normal adalah HIJAU-MERAH-HITAM-HIJAU sebagaimana gambar berikut.

Nah, jika pelanggan menggunakan proxy eksternal seperti pada kasus yang saya alami di atas, koneksi http-nya akan berurutan (dalam warna: hijau-merah-merah-hitam) seperti gambar berikut:

Dari gambar diatas kita dapat melihat bahwa koneksi dari sebuah client LAN dengan IP 192.168.2.103 (berwarna hijau pada kolom pertama) menuju ke internet ber-IP 125.160.17.33 pada port 8080 (kolom kedua merah) dilakukan secara langsung ke IP dan port tujuan(kolom ketiga berwarna merah). Mestinya ia harus melalui proxy IPCop kita (sehingga kolom ketiga mestinya berwarna hitam). Kemudian ketika paket datang kembali ia malah menuju IPCop (kolom keempat hitam), karena IPCop “merasa tidak mengenali” paket tersebut sehingga perlu ia tahu.
Saya juga dapat mengetahui bahwa koneksi seperti yang ditunjukkan pada gambar diatas adalah koneksi http yang mem-bypass proxy IPCop dari pemakaian port-nya yang 8080, dimana port 8080 adalah port yang jamak digunakan oleh proxy.
Nah jika kita menemui urutan koneksi HIJAU-MERAH-MERAH-HITAM seperti di atas, kita boleh curiga bahwa client tersebut mem-bypass proxy kita dengan memakai proxy lain.
Namun yang perlu diingat, bukan berarti semua koneksi dengan urutan warna seperti di atas adalah koneksi http yang mencurangi proxy kita. Seperti koneksi yang ditunjukkan oleh 2 gambar berikut;

Bagaimana saya tahu bahwa koneksi tersebut tidak memakai proxy eksternal?
Ada tiga penjelasan;
  1. IP LAN tersebut adalah IP komputer yang saya gunakan, dan pasti sedang tidak pake proxy eksternal, hehehe
  2. Port tujuan 5050 digunakan oleh Yahoo messenger (artinya koneksi chatting bukan http)
  3. IP tujuan 69.147.84.126 setelah di cek di www.domainwhitepages.com memastikan bahwa IP tersebut milik yahoo.
Terus bagaimana dengan koneksi berikut?

Yang ini kita cukup lihat dari port tujuan 443, dimana port 443 digunakan untuk koneksi secure http (https) bukan http. (selanjutnya untuk daftar port lain bisa dibaca disini).
Oke sekarang kita sudah dapat mengetahui client mana yang memakai proxy eksternal, terus bagaimana cara mem-bloknya?
Untuk itu kita setidaknya membutuhkan 2 data yaitu IP proxy eksternal dan port yang dipakai. Pada kasus saya diatas, saya sudah mendapatkan IP proxy yang dimaksud (125.160.17.33) dan juga port-nya (8080). Sekarang saatnya kita blok via iptables
1. Masuk ke IPCOP pake putty
2. Ketikkan iptables -I FORWARD -p tcp -d 125.160.17.33 –dport 8080 -j REJECT
3. Selesai sudah, huft!
Rule ini tidak akan disimpan oleh Iptables . Artinya, setiap kali IPCop reboot, perintah tersebut hilang, sehingga kita musti mengetikkannya kembali jika dibutuhkan. Agar tersimpan permanen, simpan rule tadi di file /etc/rc.d/rc.firewall.local. caranya;
1. Login ke IPCop via winscp
2. Buka file rc.firewall.local di /etc/rc.d
3. Tepat di bawah baris ## add your ‘start’ rules here tambahkan rule
iptables -I FORWARD -p tcp -d 125.160.17.33 –dport 8080 -j REJECT
4. Simpan dan tutup
5. Untuk proxy dan port lain yang ditemukan, silahkan tambahkan dibawah rule pertama, cukup ganti IP dan port-nya.
Semoga membantu

Ref : mengetahui-client-yang-menggunakan-eksternal-proxy-pada-ipcop-dan-mem-blok-nya

1 comment:

  1. Tutorial ini pakai IPCop versi berapa ya? soalnya saya pakai versi 2.1.1 tampilannya tidak seperti di atas.
    Oke, cara me-REJECT ip dan port tujuan in sya'a Allah akan saya coba
    Anyway Thank you.

    ReplyDelete