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…

About Fajar R. 297 Articles
Seseorang yang antusias terhadap dunia internet, IT, networking dan komputer. Tipikal introvert tapi suka berorganisasi dan adventuring ke tempat-tempat baru.

29 Komentar

  1. Gan ane mau tanya
    Ether1 : modem
    Ether2 : Local
    Ether3 : Proxy
    Ether4 : RB433AH

    yang ingin ane tanyakan
    gimana caranya agar RB433AH itu bisa NgeHIT PROXY?
    mohon bantuannya gan

    • pertama disisi proxy tambahkan dalam squid.conf baris berikut ini :

      zph_mode tos
      zph_local 0x30

      kemudian disisi mikrotik, tambahkan mangle untuk mengenali tos/qos dari squid tadi :

      /ip firewall mangle
      add action=mark-packet chain=postrouting comment="ToS/QoS Proxy" dscp=12 new-packet-mark=packet-hits passthrough=no

      trus, di simple queue tambahkan rule berikut agar hit proxy jadi loss (ndak loss sih.. disini ane contohkan 40 Mb agar RB nggak terbebani).

      /queue simple
      add comment="PROXY HIT" interface=localnet max-limit=40M/40M name="Cache HIT" packet-marks=packet-hits priority=1

      atur agar rule tersebut berada di posisi paling atas. that’s it! your proxy and mikrotik is ready to rocks! :)

      catatan : zph pada contoh ini hanya berlaku untuk squid 2.7 atau lusca. tidak dapat jalan di squid 3.x

      • Terima kasih gan
        mantap berhasil

        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?

  2. sebelumnya sy ucapkan “sukses untuk mas fazar…..”

    mas fazar sy mau tanya, klo pc proxy punya hdd ada dua, itu gimana cara membagi/mempartisinya? kebetulan sy punya pc hdd nya ada dua.

    sebelumnya sy ucapkan terimakasi….

    • silakan create partition dulu untuk harddisk yang kedua misalnya dipartisi dengan mount point /cache2, kemudian tambahkan konfigurasi cache_dir /cache2

  3. mas fazar, aku baru mempelajari IPfire. mau tanya:
    1. untuk membuat partisi cache di IPFire bagaimana?
    2. kalaupun menggunakan hardisk kedua untuk konfigurasinya bagaimana?
    3. apakah IPFire bisa di install addons webmin?
    Terimakasih mas fazar, aku masih belajar.

    • untuk pertanyaan 1 dan 2, bisa dilakukan dengan fasilitas ExtraHD di web interface, tinggal pasang harddisk kedua, kemudian partisi dan mount dengan menggunakan ExtraHD. Partisi cache defaultnya di /var/log/cache, namun bisa disesuaikan dengan keinginan kita dengan memodifikasi file /srv/web/ipfire/cgi-bin/proxy.cgi

      if ($proxysettings{'CACHE_SIZE'} ne '0')
      {
      print FILE "cache_dir aufs /var/log/cache $proxysettings{'CACHE_SIZE'} $proxysettings{'L1_DIRS'} 256\n\n";
      }

      menjadi

      if ($proxysettings{'CACHE_SIZE'} ne '0')
      {
      print FILE "cache_dir aufs /partisi/cache/yang/baru $proxysettings{'CACHE_SIZE'} $proxysettings{'L1_DIRS'} 256\n\n";
      }

      perhatikan! ganti /partisi/cache/yang/baru dengan partisi cache yg masbro tentukan sendiri.

      untuk webmin, sepenuhnya belum diujicoba dan tidak diketahui kompatibilitasnya dengan IPFire. bukankah IPFire sudah punya web interface yg mumpuni untuk urusan konfigurasi server? :)

      selamat mengoprek, silakan koreksi ane kalo ada kesalahan karena ane juga masih belajar. sukses selalu buat masbro.

  4. Mas fazar.mau nanya nih
    aku baru nyoba buat server proxy
    dengan ip gateway mikrotik 192.168.88.1
    ip client 192.168.88.0/24
    ip proxy 192.168.88.254
    port proxy 3128
    pake Lusca.
    proxy sudah jalan dan mencache cukup baik pada video,tapi masalahnya
    musti di pakaikan secara manual lewat browser / lan setting di setiap client
    aku coba tutorial NAT dan routing yang di atas lewat mikrotik RB750 malah jadi putus dan tidak dapat browsing
    mohon pencerahannya :D

    aku baru belajar jaringan dan mikrotik :D

    • proxy sejajar klien ya.. coba gunakan nat berikut (untested! sesuaikan out-interface nya.. )

      /ip firewall address-list
      add address=192.168.88.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.88.254 to-ports=3128
      /ip firewall nat
      chain=srcnat out-interface=ToSwitch src-address=192.168.88.0/24 protocol=tcp action=src-nat to-addresses=192.168.88.1 to-ports=0-65535

      kemudian pastikan proxy nya udah transparent

      http_port 3128 transparent

      semoga membantu.. dan silakan dikoreksi kalo ane salah.

  5. mas, kalo nat-nya untuk hotspot gimana?, misal
    ether1 = 192.168.1.1 = modem
    ether2 = 192.168.2.2 = lan
    ether3 = 192.168.3.2 = proxy
    ether4 = 192.168.4.1 = hotspot
    ether5 = 192.168.5.1 = ga dipake

    • tambahkan aja nat buat redirect http request dari hotspot. misalnya ip proxy 192.168.3.1 (sekelas ether3) dan port proxy 3128.

      /ip firewall mangle
      add action=dst-nat chain=dstnat comment="hotspot to ext. proxy" dst-port=80 \
      protocol=tcp src-address=192.168.4.0/24 to-addresses=192.168.3.1 to-ports=3128

      • mas fazar, thanks infonya. mau tanya lagi nih. kalo Routerboard yang bagus untuk jaringan point to multi point pake RB seri berapa( untuk station n client) 3 buah client. dan di tiap client menghandle 25 komputer????, apakah sanggup dg bandwith 2 MB menhandle 75 komp + 25 Komp (hotspot) dg komp proxy core i3 ram 8 giga???

        • untuk yg seperti ini ane saranin yg RB nya gigabit, prosesor yg rada gede, dan memori yg lumayan (khususnya RB yg dipakai sebagai gateway utama). minimal seperti RB450G.. kalo ada budget beli yg lebih dari itu. untuk yg handle klien (25 pc) pake RB750 biasa ane rasa cukup (dan harganya murah meriah.. ditempat ane RB750 pernah dipake ampe 60 klien).

          bandwidth 2 mb untuk 100 pc (75+25) untuk zaman sekarang sepertinya nya tidak mencukupi apalagi kalo dipake untuk aktivitas berat (kirim email via SMTP, upload file, browsing, dsb) tapi kalo untuk aktivitas ringan (chatting di YM, dll) masih mencukupi kok.

          komputer proxy i3 dan ram 8gb sudah sangat mencukupi, usahakan untuk cache dibuat partisi terpisah dengan harddisk yg berbeda. semoga bermanfaat. :)

          • Mas fazar, nanya lagi nih..,
            1. saya punya kendala untuk mengcompile jenis procesor core i3, karena di Safe Cflags/Intel cpu info core i3 nggak ada, ketika menggunakan Safe Cflags/Intel core i5 malah jadi error. terus untuk core i3 Safe Cflags/Intel harus seperti apa ya mas???
            2. Idealnya Hardisk 500 Giga sata untuk membuat pembagian partisinya bagaimana mas??
            3. terus kalo hardisk SSD yang 120 Giga pembagian yang ideal atau yang bagusnya seperti apa mas???
            4. apakah mas fazar sudah mencoba ClearOS 6.3 dijadikan komputer Proxy server untuk dijadikan mesin produksi?, kalo sudah pernah performanya bagaimana?
            Mohon sarannya mas dan terimakasih telah berbagi dan tidak bosan menjawab pertanyaan dari saya yang masih belajar mengenal jaringan n linux.

          • CFLAGS=”-march=core2 -O2 -pipe -fomit-frame-pointer”

            untuk partisi biasanya disesuaikan selera. contoh aja : / 5 gb, /home 10 gb, /swap 512 mb, sisanya bisa aja dibikin /cache kalo mau dipake buat proxy dgn harddisk tunggal.

            wah… SSD, sedap! partisinya tetap sesuai selera. kalo mau dibikin proxy, partisi /cache nya taroh aja di SSD sedangkan untuk OS ditaroh di harddisk lain (skenario 1 hd, 1 SSD). response time yg kecil di SSD jadi keuntungan tersendiri jika dijadikan partisi penyimpanan cache. sesuaikan juga besaran cache nya dengan ukuran memori fisik agar kinerjanya maksimal.

            ane pernah nyoba ClearOS tapi bukan versi 6.3. menurut ane pribadi, fiturnya bloated (banyak yg nggak kepake dan banyak menggunakan resource) dan kurang efisien jika menjalankan proxy. ini menurut ane pribadi lho.. tapi ada juga yg suka pake clearos karena kemudahannya untuk digunakan khususnya untuk yg baru belajar linux. squid idealnya berjalan di sistem yang ramping agar bisa memiliki kinerja maksimum dan agresif, contohnya linux server (centos, ubuntu server, dsb), keluarga bsd (openbsd, freebsd), atau jika memang terpaksa menggunakan konfigurasi via browser, gunakan distro firewall dengan advanced proxy (seperti IPCop, Smoothwall. PFSense, atau IPFire – khusus untuk IPFire ada posting ane yg berkenaan dengan distro firewall yg satu ini).

            demikian sedikit masukan dari saya. semoga bermanfaat… insyaAllah ane ndak bosen menjawab pertanyaan dari masbro. sukses selalu buat mas.. :)

  6. kalau boleh tau apa kelebihan yg kedua dibanding yang pertama karena saya selama ini selalu Skenario pertama : menggunakan NAT. trims

    • dengan menggunakan routing kita bisa menentukan arah koneksi browsing secara lebih spesifik. dengan nat sebenarnya juga tidak masalah, namun saya menggunakan alternatif lain (pakai routing) untuk menghindari terjadinya nat looping.

      semoga bermanfaat. :)

    • dalam lingkungan saya berikut IP address yg digunakan :
      ether1 = 192.168.1.1 = lan
      ether2 = 192.168.2.2 = modem 1
      ether3 = 192.168.3.2 = modem 2
      ether4 = 192.168.80.1 = nggak dipake
      ether5 = 192.168.90.1 = proxy

      • mas kalau yng topologi 2 speedy itu. untuk Nat nya sendiri gimna ya settinganya..

        cuma saya pake proxynya sejajar dengan client.
        ip modem 1 :192.168.2.1/24
        ip modem 2 :192.168.3.1/24
        LAN :192.168.1.0/24
        PROXY :192.168.1.100

        Nah untuk nat nya sendiri gimana ya mas? mohon masukkanya..thks.

        • ditempat ane cuman pake 1 line. jadi ane ndak ada clue nih untuk yg multi line. semoga ada yg bersedia menambahkan pengaturan untuk multi line :(

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*