Perbedaan redirect to proxy memakai dst-nat dan mark-routing

Mungkin selama ini anda tidak pernah menyadari traffic sebuah server yang mengirimkan data atas permintaan ip klien jika menggunakan dst-nat to proxy itu server akan mengirim ke ip proxy bukan langsung ke ip klien yang telah melakukan permintaan tadi

Jadi kita akan mengalami kesulitan jika ingin membuat rule bypass/limit untuk ip server (port 80) yang dari luar yang telah masuk ke ip proxy

Contohnya ip klien 192.168.100.124 mengirim permintaan ke ip server 119.2.24.66:80 (server4.asixfiles.com) jika memakai dst-nat maka permintaan 119.2.24.66:80 ini akan di mapping ke ip proxy (contohnya 192.168.1.10:8080) sesuai NAT redirect pada mikrotik :

/ip firewall nat
add action=dst-nat chain=dstnat comment="" disabled=no dst-port=80 protocol=
    tcp src-address=192.168.100.0/24 to-addresses=192.168.1.10 to-ports=8080

Secara otomatis ip server 119.2.24.66:80 (server4.asixfiles.com) mengirimkan data kepada ip proxynya bukan ke klien langsung karena yang melakukan permintaan adalah ip proxy bukan ip klien dan ip klien baru menerima data dari ip server melalui ip proxynya

dstnat

Jadi kesimpulannya kita tidak bisa memisahkan ip server ini karena telah masuk ke ip proxy, seandainya kita mau melakukan bypass/limitter server tertentu yang dari port 80 akan mengalami kesulitan.

Dan disinilah kelebihan jika memakai redirect to proxy memakai mark-routing, sebab ip klien bukan lagi di mapping melainkan dikirim langsung ke ip server melalui GATEWAY. jadi systemnya adalah original id’s seolah-olah tidak memakai proxy/mapping untuk permintaan dari ip klien.

Contohnya ip klien melakukan permintaan ke server dan langsung dikirim oleh router melalui GATEWAY dan GATEWAY ini meneruskan ip klien tadi ke ip server baru ip server mengirimkan data atas permintaan ip klien.
Jadi kita mempunyai 2 GATEWAY dalam satu router dong?
Benar.. kita punya 2 GATEWAY satu untuk ke internet dan satu lagi ke proxy sebagai transparent proxynya dan itu dilakukan melalui mark-routing di mikrotik.

contoh mark-routingnya:

/ip firewall mangle
add action=mark-routing chain=prerouting comment="To Proxy (Expert ONLY!)" 
    disabled=no dst-port=80 new-routing-mark=proxy passthrough=yes protocol=
    tcp src-address=192.168.100.0/24

dan untuk route-nya

/ip route
add comment="" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.10 
    routing-mark=proxy scope=30 target-scope=10

Dan hasilnya seperti pada gambar di bawah ini:

mark-routing

Anda bisa melihat sendiri khan interface PROXY mengirimkan data langsung dari ip server ke ip klien πŸ˜€

Permasalahannya bukan sampai disini saja, anda harus mengubah server proxy anda menjadi sebuah GATEWAY biar bisa melakukan forward ke internet dan ke klien (LAN). Dan untuk mesin FreeBSD dan Linux anda harus melakukan beberapa hal seperti berikut:

FreeBSD
tambahkan gateway_enable=”YES” pada “/etc/rc.conf” artinya diubah sebagai gateway
dan bikin autoexec untuk redirect to proxy pada “/etc/rc.local” (kalau tidak ada anda dapat create file baru) dan tambahan command berikut:
ipfw add 100 fwd 192.168.1.10,8080 tcp from any to any 80 recv em0
atau bisa juga membuat bin/.sh pada “/usr/local/etc/rc.d/”
jangan lupa sesuikan ip dan em0 sesuai network anda.
terakhir recompile kernel FreeBSD anda dengan menambahkan
“options IPFIREWALL_FORWARD”
“options IPFIREWALL_DEFAULT_TO_ACCEPT” # ini opsi untuk jaga-jaga kalau macet saja biar tidak ada yg ke blokir karena server ini bukan untuk IP PUBLIK

Linux
tentunya harus di install dulu paket ip-tables (silahkan google cara installnya sesuai distro anda)
untuk enable forward edit/tambahkan value net.ipv4.ip_forward = 1 pada “/etc/sysctl.conf”
masquerade menggunakan ip-tables via terminal

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

redirect port menggunakan ip-tables

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

eth0 dan port 8080 sesuaikan dengan network anda.
lalu save dan restart ip-tablesnya
service iptables save
service iptables restart
atau silahkan mencari referensi sendiri sesuai distro masing-masing πŸ™‚

Selamat mencoba!

diantaranya yang sudah sukses mencoba di FMI
Forummikrotik
wiki.warneter.net

dan inilah cuplikan bw management yang simple gk pake ribet kalau di lihat juga gak bikin mumet πŸ˜€
klik untuk memperbesar gambar

bw management by reges

28 thoughts on “Perbedaan redirect to proxy memakai dst-nat dan mark-routing

    • silahkan dicek ulang dengan teliti, baru anda saja yg bilang log gk masuk πŸ™‚
      klo tidak masuk berarti belum di redirect ke squidnya untuk mesin proxynya

  1. terimakasih om.. pantes aja akses ke proxy ane kdang ikut kelimit trus
    nah sialnya pas ane m,asukin

    iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080

    kluar error bad argument 80

    itu salah nya apa ya om..
    mohon dibantu πŸ™‚

    • iya maaf ternyata salah copas perintah redirectnya coba pake yg ini
      iptables -t nat -A PREROUTING -p tcp -–dport 80 -j REDIRECT -–to-port 8080

    • salam mbah Reges

      wis tak jajal asile muanteB (aturan B/W mikrotik) berjalan sesuai petunjuk ‘e mbah

      trus anu mbah… matur suwun yo… iki tak kirimi dungo mugo2 rejekine mbah reges luancar amiin …..

    • kayaknya anda gk paham deh
      jd mohon maaf saya tidak bisa menjawab,silahkan belajar lagi topologi ip traffic

  2. om mastah ketika rule anda saya pake, ada sebagian yg tidak jalan dari upload nya, atau mungkin dari nat nya saya yg salah dengan topologi mikrotik sejajar dengan proxy…apabila saya test dengan speedtest ping nya membengkak…maaf mastah udah tak coba utak-atik masih mudeng…hehehe…kadang game lag,kadang browser diam sesaat..ato topologinya harus berubah…..mohon petunjuk mastah saya hanya memakai 1 line aja…

    • topologi ini gk ada hubunganya dengan game lag atau browser diem
      silahkan belajar lagi dengan banyak membaca artikel mikrotik dan trial error sendiri nanti juga akan paham.

  3. misi misi gan…
    maaf gan kalo nanya nya berat2…
    apakah ini bisa dipakai untuk yang 2 line alias loadbalancing….?

    mohon bantuan nya gan…..

  4. Permisi gan saya mw nanya,
    saya dah ngikutin tutorial di atas, tp client saya yang mengaksess port 80 (http) ke block smua… tp klo access port 443 (https) g ke block itu gmn solusinya

    Tulisan Ke Blocknya di Browser clientnya GINI

    The connection was reset

    The connection to the server was reset while the page was loading.

    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer’s network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

Leave a comment