Pengaturan Proxy Eksternal Dengan Mikrotik

Mikrotik routerboard memiliki built-in proxy didalamnya, namun memiliki kendala yakni keterbatasan kapasitas penyimpanan. Oleh karena itu, kebanyakan administrator jaringan yang menggunakan mikrotik akan menggunakan proxy eksternal untuk mengatasi kendala ini.

Program atau daemon yang paling banyak digunakan untuk proxy eksternal adalah squid atau turunannya (lusca). Ada beberapa keuntungan dalam penggunaan squid proxy eksternal antara lain :

  1. Mudah untuk di sesuaikan konfigurasinya sesuai dengan kebutuhan.
  2. Penggunaan access control lists (ACL) yang dapat digunakan untuk keperluan tertentu.
  3. Squid (khususnya versi 2.7) dapat “dipersenjatai” dengan url redirector. Pada suatu kondisi, redirector dapat digunakan untuk menangani akses konten dinamik (seperti video Youtube).
  4. Kapasitas penyimpanan yang lebih besar karena pada umumnya komputer menggunakan harddisk sebagai media penyimpanan.

Dalam posting ini, saya akan sedikit menjabarkan integrasi proxy eksternal dengan mikrotik menggunakan pengaturan NAT atau mangle dengan diagram jaringan seperti gambar berikut ini :

ext proxy mikrotik

Keterangan :

  • IP address mikrotik menuju proxy : 192.168.90.1
  • IP address proxy menuju mikrotik : 192.168.90.2
  • IP address klien-klien : 192.168.1.0/24

Skenario pertama : menggunakan NAT.

Kita dapat menggunakan NAT untuk “membelokkan” akses browsing klien (port 80/HTTP) menuju IP dan port proxy eksternal. Monggo di copas script berikut ini :

/ip firewall address-list
add address=192.168.90.0/24 list=ip-proxy
/ip firewall nat
add action=dst-nat chain=dstnat comment="transparent proxy" dst-port=80 protocol=tcp src-address-list=!ip-proxy to-addresses=192.168.90.2 to-ports=3128

Keterangan :

Terlebih dahulu kita mendeskripsikan kelas IP address yang digunakan untuk komunikasi antara mikrotik – proxy.

/ip firewall address-list
add address=192.168.90.0/24 list=ip-proxy

Kemudian, akses browsing klien (HTTP port 80) kita belokkan menuju proxy eksternal port 3128

/ip firewall nat
add action=dst-nat chain=dstnat comment=”transparent proxy” dst-port=80 protocol=tcp src-address-list=!ip-proxy to-addresses=192.168.90.2 to-ports=3128

Skenario kedua : menggunakan mangle.

Saya secara pribadi menyukai penggunaan skenario kedua ini. Berikut script nya :

/ip route
add check-gateway=ping distance=1 gateway=192.168.90.2 routing-mark=to-ext-proxy
/ip firewall mangle
add action=mark-routing chain=prerouting comment="mark routing to proxy" dst-port=80 new-routing-mark=to-ext-proxy protocol=tcp src-address=192.168.1.0/24

Keterangan :

Sebelumnya, tambahkan route menuju proxy eksternal untuk routing yang akan kita tandai di mangle.

/ip route
add check-gateway=ping distance=1 gateway=192.168.90.2 routing-mark=to-ext-proxy

Setelah itu, akses browsing klien kita tandai dengan routing mark pada mangle, sehingga semua akses browsing akan “bermuara” langsung ke proxy eksternal sebagaimana telah kita tentukan sebelumnya pada route.

/ip firewall mangle
add action=mark-routing chain=prerouting comment=”mark routing to proxy” dst-port=80 new-routing-mark=to-ext-proxy protocol=tcp src-address=192.168.1.0/24

Catatan :

Jangan lupa menambahkan pengaturan pada proxy eksternal agar akses klien dapat berjalan dengan baik antara lain menentukan default gateway proxy dan mengizinkan akses port 3128 pada iptables. Simpan baris-baris berikut ini kedalam file /etc/rc.local :

route add default gateway 192.168.90.1
iptables -A PREROUTING -t nat -j REDIRECT -p tcp -s 192.168.1.0/24 -d 0/0 --dport 80 --to-ports 3128
iptables -A INPUT -p tcp -s 0.0.0.0/0 -d 192.168.90.2 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.90.2 --sport 3128 -d 0.0.0.0/0 -m state --state ESTABLISHED -j ACCEPT

Semoga bermanfaat…

191 Comments

  1. muzakkir

    mas ada cd tutorial yang mas jual nga yang biasa buat saya pelajari untuk instal ampe konfigurasi web proxy ubuntunya.,,, ane mau belajar… klw ada dijual ane mau beli buat belajar terimakasih wassalam

    • fazar

      Wss.wr.wb, untuk cd panduan setup proxy saya nggak ada bikin sih. Di internet banyak kok panduan setup proxy dalam bentuk ebook atau artikel. InsyaAllah kalo sempat nanti saya coba bikinkan ebook setup proxy untuk ubuntu yg lengkap, dari proses install sampe running.

  2. arsyad

    mas,,,mikrotik saya sudah pke proxy,,selama ini aman untuk warnet dan game online,
    ad 1 port yg nganggur,,saya buat untuk hotspot,,
    kenapa client dari hotspot tidak bisa hit ke proxy??
    tolong bantu mas,,

    • fazar

      klien yg dari hotspot juga harus dipaksa lewat proxy agar browsing nya bisa tercache. silakan tambahkan rule baru di nat nya yg memaksa browsing lewat proxy (dst-nat atau sejenisnya)

      • arsyad

        klu itu saya bingung,,,cos saya terima dari jasa setting.
        setelah saya coba²,user hotspot yg default/admin,,bisa hit ke proxy,,tp user lain yg sudah pke profil lain(dh dilimit),tdk bisa hit ke proxy.
        kira² kesalahan saya dimana y??mohon pencerahannya

        • fazar

          coba nat kelas ip klien hotspot nya ke proxy.. misalnya klien pake ip 192.168.2.0/24 dan proxy 192.168.1.254

          /ip firewall nat
          add action=dst-nat chain=dstnat comment=”transparent proxy - hotspot” dst-port=80 protocol=tcp to-addresses=192.168.1.254 to-ports=3128

  3. ari

    proxy sejajar dengan client saya coba ini :

    /ip firewall address-list
    add address=192.168.10.254 list=ip-proxy
    /ip firewall nat
    add action=dst-nat chain=dstnat comment=”transparent_proxy” dst-port=80 protocol=tcp src-address-list=!ip-proxy to-addresses=192.168.10.254 to-ports=3128
    /ip firewall nat
    add chain=scrnat out-interface=LAN src-address=192.168.10.0/24 protocol=tcp action=src-nat to-addresses=192.168.10.3 to-ports=0-65535

    tapi kok gak berhasil
    config mikrotik saya begini

    1 ;;; ALL OUT
    chain=srcnat action=masquerade out-interface=PUBLIC

    2 chain=dstnat action=redirect to-ports=3129 protocol=tcp
    src-address-list=!admin in-interface=LAN dst-port=80

    lusca berjalan normal kalau set proxy pada browser
    apanya yang salah ya?
    thanks

    • fazar

      Coba dstnat yg me redirect ke port 3129 di nonaktifkan dulu.

    • ari

      sudah bisa nih salah di srcnat yang tadinya scrnat hehehe

      disini nih
      “add chain=scrnat out-interface=LAN src-address=192.168.10.0/24 protocol=tcp action=src-nat to-addresses=192.168.10.3 to-ports=0-65535”

      ow iya sama satu lagi yang ke hit di access.log itu IP mikrotiknya ya bukan IP clientnya?

      thanks a lot

      • fazar

        yg nongol ip mikrotik atau ip klien yg menentukan adalah setting nat atau route nya (tergantung setting mana yg dipake), coba utak atik lagi.. caiiyoo! :)

  4. chitoz

    Gan,..ane mau nanya neh
    ane lg buat kaya topologi di atas,.cuman pake Centos 6.3 buat proxy squidnya

    Nat di Mikrotik
    chain=dstnat action=dst-nat to-addresses=192.168.10.10 to-ports=3128 protocol=tcp src-address=192.168.10.0/24 dst-port=80

    di Squidnya udah ane edit
    visible_hostname router
    #port squid
    # Squid normally listens to port 3128
    http_port 3128 transparent
    acl LAN src 192.168.2.0/24
    http_access allow LAN

    #vi /etc/rc.local
    iptables –table nat -A PREROUTING -s 192.168.2.0/24 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 3128

    Hasilnya ketika buat browsing server not found

    Mohon bantuannya,.thanks

    • fazar

      Saya balik nanya nih karena bnyk faktor yg bikin kasus kayak agan.

      Apakah klien bisa browsing normal tanpa proxy?
      Apakah dari squid sudah bisa ping dan melakukan dns lookup dengan benar?
      Apakah ipv4 forwardingnya udah di aktifkan disisi centos?
      Apakah setting dns dan gateway kliennya udah bener?

  5. bejonet

    Mas Fazar,
    Bisa minta konfigurasi accelerator untuk cache game yang sudah ada ? mo saya coba ngoprek pake ubuntu server, saya udah berhasil menyimpan cache youtube. Saya mo coba trial cache game yg tidak hit ke database (entah NGINX, PHP ato yg lain) trims

  6. Bejonet

    Mas Fazar,
    Saya mo nanya, gimana cara menyimpan cache game yang disimpan di nginx atau PHP.
    Sebab ada beberapa game online udah habis dipatching kalo dibuka lagi tidak ngehit, maka saya punya pemikiran patch game disimpan dalam database seperti halnya youtube. Saya lihat seperti di IP COP ada, cuman ini mo saya praktekkan di Ubuntu Server, Thx

    • fazar

      Squid khususnya yg versi 2.7 atau turunannya memang bisa fleksibel untuk disandingkan dengan rewriter (php, perl, ruby, dsb) dan memaksa object yg dicache disimpan terpisah kedalam direktori lain yg kemudian dapat diproses kembali oleh webserver (apache, nginx, dsb).

      Untuk di ipcop atau sejenisnya (ipfire dan smoothwall) cache game dapat dilakukan menggunakan update accelerator. yg diperlukan hnya mengedit konfigurasinya agar matching dengan url-url patch game. Rasanya cukup susah memporting update accelerator ke ubuntu, kecuali masbro punya teknik dan pendekatan lain.

      Nah, khusus untuk update accelerator, ane mungkin bisa bantu… yg ane perlukan adalah daftar url dan ekstensi file patch game. Url dan ekstensi ini bisa dilihat di squid access.log.

      Kalo kombinasi nginx/apache + ruby + squid + ubuntu, terus terang ane masih blank. Kemaren sempat baca2 dan jujur ane tertarik dgn implementasi ruby karena codingnya tampak lebih sederhana, tapi blum sempat ujicoba langsung.

      Monggo add facebook ane di facebook.com/symbio agar kita bisa berdiskusi lebih lanjut. Thanks.

  7. adi

    dari ispnya si udah pake proxy, nah saya pengin pake proxy sendiri…gt gan…mhn bantuannya, td saya udah coba yang skenario 1, tapi gagal…

  8. adi

    ether0=isp 192.168.10.35
    ether1=proxy 192.168.1.1
    ether2=hotspot 192.168.80.1
    ether3=office 10.50.4.1
    ether4=lab 10.50.5.1

    biar ether2-4 lewat proxy, scripnya gmn gan..? maklum pemula

  9. gundulku

    ane mau tanya lagi gan
    di port 4 RB450G terhubung dengan RB433AH untuk hotspot menggunakan usermanager
    apakah usermanager di RB433 bisa di remote jarak jauh?

    • fazar

      So pasti bisa, coba baca2 tutorialnya di mikrotik wiki.

  10. ads

    mas mao nanya donk :
    1. kalo pas update game seperti xshot : proxy en mikrotik udah terinstall bagus, dan sudah tercache.. tapi kenapa yah saya, anak2 yang maen game jadi ngelag ? padahal saya melihat di mikrotiknya tidak terlalu besar output ke internetnya.. tapi jadi ngelag.. xshotnya juga sudah tercache cumen pas nge setiap kali patch pasti jadi ngelag..
    2. kalo proxy hit seperti yang diatas itu kan queue simple.. nah kalo untuk treenya mas ??? apa perlu dilimit ?? gunanya untuk apa ya ?? apa biar dia tidak ngelag ?? atau kadang jadi rto ?

    • fazar

      nah, kalo kasusnya gitu, coba limit proxy hit nya dikisaran 20 – 30 Mb/s, jangan lebih dari itu agar load di reouterboard tidak melonjak. solusi lain, gunakan routerboard yg lebih mumpuni/spek tinggi. kalo udah taro rule di simple queue, ndak perlu lagi dibikinin rule di queue tree.

Leave a Reply

Your email address will not be published. Required fields are marked *