Setting IPtables Redirect Paket HTTP ke proxy di mesin lain

Bookmark and Share
Artikel dari blog sebelah Linuxku.com, sebagai pencerahan pemecahan masalah di Lab komputerku. Semoga bermanfaat.

 


Saya baru-baru ini mengalami suatu kasus yang cukup membuat saya harus sedikit memutar otak. Gara-garanya seperti ini, seperti yang kalian tahu kalau kita mempunyai sebuah proxy server dan menginginkan agar seluruh client yang browsing ke internet harus melewati proxy server terlebih dahulu adalah dengan mengetikkan perintah berikut ini :

# iptables -t nat -A PREROUTING -j REDIRECT -p tcp --dport 80 --to-ports 3128

Cara diatas itu memang selalu berhasil apabila topologinya adalah seperti ini :


internet-----router+proxy----client


Nah, bagaimana jika topologinya adalah sebagai berikut ? :


internet-----(eth2)router(eth0)----(172.16.20.0/24)client
(eth1:192.168.20.1)
|
|
(192.168.20.2)
proxy

Tentunya jika kita masih menggunakan perintah Iptables yang pertama tadi, tidak akan ada efeknya. Karena disitu diperintahkan agar seluruh akses ke port 80 akan dialihkan langsung ke port 3128. Padahal di router tidak ada port 3128, karena port 3128 milik proxy berada di mesin yang lain, yaitu di pc server. Nah, solusinya bagaimana? Caranya adalah sebagai berikut :

# iptables -A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -p tcp -d 192.168.20.2 --dport 3128 -j ACCEPT
# iptables -t nat -A PREROUTING -p tcp -s 172.16.20.0/24 --dport 80 -j DNAT --to 192.168.20.2:3128
# iptables -t nat -A POSTROUTING -p tcp -d 192.168.20.2 --dport 3128 -j MASQUERADE
# iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE


Sekarang coba tes, seluruh aliran data yang menuju port 80 pasti akan dialihkan terlebih dahulu menuju PC Server baru diarahkan kembali ke internet.

Semoga bermanfaat :)

{ 0 komentar... Views All / Send Comment! }

Posting Komentar