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. joe

    mas mau nanya, kalo dari settingan dan konfigurasi diatas saat ini saya sedang trial dengan PC untuk squid servernya pake i3 3,3GHz dan ram 2Gb, os Ubuntu 10.04 64bit dan squid2.7stable7.

    agak aneh karena dengan trial di 1 client untuk browsing beberapa website, ram dari PC servernya langsung full (liat di webmin) dan meskipun di client page yang dibuka langsung ditutup dan webmin di refresh tapi memory ini tetep full. Yang aneh juga di connection di mikrotik connetion ke alamat yang di browsing  tetap established dan timeoutnya tetap countdown normal (padahal page udah ditutup).

    Ada pengalaman seperti ini mas? Kira2 kenapa ya? trims

    • fazar

      coba cek kembali ukuran cache_mem di squid.conf nya berapa mb. alokasikan jangan lebih dari setengah kapasitas fisik ram. squid memang dapat dimaklumi jika menggunakan banyak ram, selama response time dan kecepatan browsing di klien cukup baik dan terimprovisasi. transaksi data yang terjadi tidak secara instan tertutup saat aplikasi ditutup, asal jangan tetap established untuk waktu yang sangat lama. demikian, dan semoga membantu.

  2. saya senang dengan mas fajar, yang mau berbagi pengalaman dengan kami, langsung saja semoga dapat dibantu, saya mempunyai proxy ubuntu 10.10 lusca squid yang terhubung langsung ke interface mikrotik rb450g, dengan ip 192.168.10.254. sudah diseting dengan mangle sehingga pada interface mikrotik untuk proxy akan didapat destination ip dengan ip client hotspot masing2 yang berhubungan dengan modem, yang mau saya tanyakan apakah di mikrotik dapat di limit sehingga akses proxy ke modem dilimit per ip dengan quee tree, selama ini saya limit secara akses nya dengan forward sehingga sangat menyedot bw modem saya, jika berkenan dapat kirim kan jawabanya … terimakasih semoga amal sampean diberkati dengan kemudahan urusan sampean.

    • fazar

      sebelumnya saya ucapkan terima kasih atas comment dan doanya. :)

      cuman satu jawaban untuk kasus seperti ini : tproxy. Dengan tproxy, maka server proxy akan melakukan spoofing ip client, sehingga hanya trafik ip klien yg terlihat dan terlimit. saya blom ada tulis tutorial untuk hal ini, namun sebagai referensi ada thread di FMI tentang hal ini. monggo di cek kesini :

      http://www.forummikrotik.com/general-networking/21391-tproxy-single-interface-ethernet.html

      semoga membantu.

  3. Petra

    mas kalo seetinga MT saya sbb untuk proxynya gimana settingan nya

    dual line game + browsing mode pisah jalur

    ip address print
    Flags: X – disabled, I – invalid, D – dynamic
    # ADDRESS NETWORK BROADCAST INTERFACE
    0 ;;; MODEM A = SANEX
    192.168.11.2/24 192.168.11.0 192.168.11.255 ether1
    1 ;;; MODEM B = TP-LINK
    192.168.12.2/24 192.168.12.0 192.168.12.255 ether2
    2 ;;; LOCAL
    192.168.1.1/24 192.168.1.0 192.168.1.255 ether5
    3 ;;; PROXY
    192.168.90.1/24 192.168.90.0 192.168.90.255 ether4

    ip firewall nat print
    Flags: X – disabled, I – invalid, D – dynamic
    0 ;;; 2 ISP di gabung Otomatis ,,, test coba
    chain=srcnat action=masquerade

    ip firewall mangle print
    Flags: X – disabled, I – invalid, D – dynamic
    0 ;;; Routing Mark GAME DAN BROWSING
    chain=prerouting action=mark-routing new-routing-mark=To-Jalur-Game
    passthrough=yes src-address=192.168.1.0/24 dst-address-list=JALUR-GAME

    ip firewall address print
    Flags: X – disabled, D – dynamic
    # LIST ADDRESS
    0 ;;; Lost Saga
    JALUR-GAME 203.89.147.0/24
    1 ;;; Ayoo Dance & Grand Chase
    JALUR-GAME 122.102.49.0/24
    2 ;;; FIFA ONLINE
    JALUR-GAME 202.158.252.0/24
    3 ;;; Dragon Nest SEA
    JALUR-GAME 203.116.155.0/24
    4 ;;; AION
    JALUR-GAME 103.28.148.0/24
    5 ;;; CS Online
    JALUR-GAME 69.28.145.0/24
    6 ;;; rf
    JALUR-GAME 91.207.5.230
    7 ;;; DragonNest Indo
    JALUR-GAME 49.50.4.0/24
    8 ;;; AIKA PlayPark
    JALUR-GAME 203.1.25.0/24
    9 ;;; Crazy Cart & Idol Street
    JALUR-GAME 202.43.171.0/24
    10 ;;; Cross Fire & Rohan
    JALUR-GAME 202.93.21.0/24
    11 ;;; Point Blank II
    JALUR-GAME 203.89.146.0/24
    12 ;;; Elsword Indonesia
    JALUR-GAME 182.16.248.0/24

    ip route print
    Flags: X – disabled, A – active, D – dynamic,
    C – connect, S – static, r – rip, b – bgp, o – ospf, m – mme,
    B – blackhole, U – unreachable, P – prohibit
    # DST-ADDRESS PREF-SRC GATEWAY DISTANCE
    0 A S ;;; IIX MODEM B -> Browsing 2Mb
    0.0.0.0/0 192.168.12.1 1
    1 X S ;;; PROXY
    0.0.0.0/0 192.168.90.2 1
    2 A S ;;; INT MODEM A -> Game 2Mb
    0.0.0.0/0 192.168.11.1 1
    3 ADC 192.168.1.0/24 192.168.1.1 ether5 0
    4 ADC 192.168.11.0/24 192.168.11.2 ether1 0
    5 ADC 192.168.12.0/24 192.168.12.2 ether2 0
    6 ADC 192.168.90.0/24 192.168.90.1 ether4 0

    • fazar

      untuk proxy bikinin aja nat yg belokin akses ke port 80 lewat proxy. monggo di opreks.

      • petra

        udah saya coba berbagai tutor mas , tapi nggak ada yg berhasil :cry: :cry: apa karena model topologi saya ya

        berikut saya kasi lagi biar enak liatnya

        ip address
        add address=192.168.11.2/24 interface=ether1 comment=”Jalur Browsing” disabled=no
        add address=192.168.12.2/24 interface=ether2 comment=”Jalur Game” disabled=no
        add address=192.168.1.0/24 interface=ether3 disabled=no

        /ip firewall nat
        add chain=srcnat action=masquerade disabled=no

        /ip firewall mangle
        add chain=prerouting src-address=192.168.1.0/24 dst-address-list=Jalur Game action=mark-routing new-routing-mark=Conn-Game disabled=no comment=”Routing Mark Untuk Game”

        /ip route
        add gateway=192.168.11.1 ( ane pakai Speedy 2Mb )
        add gateway=192.168.12.1 routing-mark=Conn-Game ( ane pakai Speedy 2 Mb)

        • uhuk

          itu pake NAT yang di atas jalan kok,, perhatiin, teliti om, web fazar.net ini bagus kok. tutornya bermanfaat dan benar,,

          liat IP ke client sama IP ke proxy, belokin to-port nya ke port proxy agan, , oke, jgn menyerah gan sebelum berhasil wkakwkakwa
          contonh

          ip firewall nat add chain=dstnat action=dst-nat to-addresses=”IP proxy” to-ports=3128 (port proxy nya agan)
          protocol=tcp src-address=!ipproxy agan(inget depannya pake tanda ! baru ip) in-interface=”yang mengarah client”
          dst-port=80,8080,3128

  4. JUNO

    *SETTINGAN NAT PROXY* DI MIKROTIK ( 1 )

    http://pastebin.com/q1WxBMvy

    Seperti ini settingan yg ada di mikrotik saya

    Trimakasih mas fazar sudah respon pesan saya..

    1. kalau untuk Update IP Nice sudah selalu update, dan masalah ini sudah berlangsung cukup lama dan belum menemukan titik cerahnya hingga saat ini,,, (selalu galau jadinya) :???: bingung coba2 tutor sana sini blm juga berhasil.. maklum otak atiknya sama saya yg masih Katrok . hehehee
    Kapan ada waktu bisa bantu saya cek mikrotik dan proxy saya by remote ?
    INVITE PIN BBM saya ya: 22543C97 JUNO
    FB : juno_prakoso@yahoo.co.id

    Thanks Be 4

    • fazar

      sepertinya proxy server nya pake mikrotik juga ya. coba lakukan pemisahan iix dan non-iix disisi mikrotik yg bukan digunakan sebagai proxy.

      • JUNO

        proxy servernya pakai ubuntu 10.10 64bit mas

      • JUNO

        Oppss td saya lupa bilang.. kala saya menggunakan 2 bh mikrotik
        kondisi di tempat saya spert ini :

        RB750 (mikrotik 1)
        eth0 = ISP 1
        Eth1 = ISP 2
        Eth2 = ISP 3
        Eth3 = Proxy ubuntu server eksternal
        eth4 = Local to Mikrotik 2

        Mikrotik 2
        eth0 = From Mikrotik 1
        eth1 = Warnet Browsing
        eth2 = warnet game online
        eth3 = RT/RW
        eth4 = kosong

        tolong di bantu mas bikin rule yg benarnya sprti apa.. ?

  5. JUNO

    hallo mas fazar.
    salam kenal sebelumnya, :grin:
    ada beberapa hal yg ingin saya tanya :

    1) kenapa ya pemisah bandwith int dan IIX di mikrotik saya jika proxy server saya saya aktivkan maka pemisah bandwithnya tidak berjalan dengan normal, alias 80% traffict IIX masuk ke int ?, cara memperbaikinya bgmn ?

    2) bisakah kita menggunakan 2 buah mesin proxy server yg memiliki fungsi cache berbeda.?? misal Proxy 1 untuk ngecache web dan conten2 saja. Proxy 2 untuk ngecache content multimedia seperti, video,musik,aplikas,update game, dan yang sejenisnya? kalau bisa bgmna ya cara setting nya ?

    add my YM : juno_prakoso

    • fazar

      salam kenal untuk mas juno,

      1. pastikan daftar ip nice nya selalu update, kalo perlu bikin script nya update per 6 jam. periksa kembali apakah pengaturan mangle dan lain-lainnya sudah benar.
      2. wah boros mas kalo pake 2 proxy. sebenernya sih bisa aja pake 2 proxy, tapi implementasinya agak sulit. pake 1 aja cukup kok :)

      add fb aja mas.. ane jarang online di ym. goodluck :)

  6. hendra

    mas aku mau nanya.saya pake mikrotik rb 750
    lan 1-192.168.1.2 untuk modem
    lan 2-199.180.1.1 untuk clien
    lan 3-199.180.0.1 untuk proxy external ipcop
    bagaimana seting mikrotiknya supaya proxy externalku bisa aktif dan berjalan lancar.mohon bantuanya .terimakasih

    • fazar

      salam hangat untuk mas hendra,

      untuk ip lan 2 dan 3, saran saya gunakanlah IP address internal sesuai RFC (192.x, 10.x, 172.x), misalnya lan 2 = 192.168.10.1, lan 3 = 192.168.20.1, ipcop = 192.168.20.2. contoh jika menggunakan mangle + route

      /ip route
      add check-gateway=ping distance=1 gateway=192.168.20.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

  7. rendra dhidhin

    mas minta alamat emailnya..? mau konsultasi lebih lanjut mengenai external Proxy

    • fazar

      monggo ke fazar_at_outlook_dot-com
      trims

  8. Aji Derajat Hidayah Tulloh

    Terimakasih kang tutor, membantu sekali, tapi apakah web yang udah di cache ini nantinya udah nggak pakai bw milik internet, dan full 100mbps setelah masuk lokal cache kang???/ terimakasih

  9. Dody

    mas fajar , ubuntu server (pake squid) saya gak bisa mengakses yahoo mail dan halaman yahoo.com mohon pencerahan trims… Newbie ni ^_^

    • fazar

      halaman yahoo nya jadi amburadul ya? :)

      coba deh refresh pattern berikut :

      refresh_pattern -i yahoo.com 0 0% 0

      !! untested, just give a try !!

      • Dody

        thanks berat sebelumnya oia.. Mas fajar ini di paste ke squid ya! ” refresh_pattern -i yahoo.com 0 0% 0 ” maklum masih newbie banget!! hehehe…

  10. rendra dhidhin

    mau tanya gan.. untuk setting mikrotik mengunakan proxy external linux server setting mikrotiknya gimana?
    baru belajar kang fazar

    • fazar

      commentnya saya jadiin satu yah.
      setting disisi mikrotik sudah dijabarkan diatas. agan bisa pake nat atau route, silakan pilih salah satu. kalo masih bingung, silakan kirimkan pertanyaannya via email fazar_at_outlook_dot_com

Leave a Reply

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