Konfigurasi iptables untuk transparent proxy dengan server terpisah
January 28th, 2009
Untuk mengkonfigurasikan iptables supaya melakukan redirect
tujuan port 80 ke port server squid yang berbeda IP (server terpisah dengan router), bisa mengacu kepada NAT HOWTO berikut:
Linux 2.4 NAT HOWTO: Destination NAT Onto the Same Network
contohnya, pertama konfigurasikan dulu supaya squid menjadi transparent proxy, kemudian tambahkan rule berikut:
iptables -t nat -A PREROUTING -i vlan0 -p tcp --dport 80 -s ! 192.168.1.253 -j DNAT --to 192.168.1.253:3128
iptables -t nat -A POSTROUTING -o vlan0 -p tcp --dport 3128 -d 192.168.1.253 -s 192.168.1.0/24 -j SNAT --to 192.168.1.254
topologi jaringannya sbb:
subnet 192.168.1.0/24
ip router/firewall 192.168.1.254 (semua client default gateway mengarah kesini)
ip squid/proxy 192.168.1.253 (squid dikonfigurasikan menerima koneksi transparent)
rule iptables diatas akan membelokkan setiap request HTTP dari komputer klien di subnet 192.168.1.0/24 ke port squid (3128) di ip 192.168.1.253, untuk kemudian sebelum mencapai ke server squid, packet akan di NAT lagi menjadi ip 192.168.1.254 (ip router/firewall).
rule kedua mutlak untuk ditambahkan agar paket reply dari server squid dapat kembali ke klien.
Update: untuk kasus diatas, karena server squid berada didalam 1 subnet dengan yang lainnya, maka perlu secara spesifik tidak mengikutkan ip squid untuk menghindari terjadinya looping.
Apabila ip server squid berada dalam subnet yang berbeda, dapat menggunakan:
iptables -t nat -A PREROUTING -i vlan0 -p tcp --dport 80 -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j DNAT --to 192.168.0.253:3128
iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 3128 -d 192.168.0.253 -j SNAT --to 192.168.1.254
diajar said:
boleh spesifik jelasinnya ??
vlan0 = ethernet lan apa wan ??
terimakasih
diajar said:
trus perintah iptables .. itu disimpan dimana ? di router atau di proxy server ?
maaf baru belajar linux
slashdotfx said:
@diajar
maaf, saya lupa menjelaskan, kalau vlan0 ini adalah interface yang menuju ke LAN,
btw, penamaan vlan0 ini karena intreface tersebut merupakan penamaan dari
OpenWRT (distro linux untuk embedded device seperti Linksys WRT56GL yang saya gunakan).
semua skrip tersebut diletakkan di sisi router.
semoga membantu.