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 :

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…

Incoming search:
proxy external mikrotik, setting proxy mikrotik, blokir https di mikrotik fajarnet, membelokan semua browsing k proxy mikrotik

You may also like:

Incoming search:

Incoming search:
proxy external mikrotik, setting proxy mikrotik, blokir https di mikrotik fajarnet, membelokan semua browsing k proxy mikrotik


168 Comments

  • Mas..mau..tanya..
    saya..nyoba..redirect port 80..pakai..mangle..kok belum berhasilnya..lou di lihat lognya pkai..tail -f /var/log/squid/access.log…gak..jalan. Tapi lou pakai NAT..berhasil..
    Ini..konfigurasi miktorik saya
    A. (modem) ether 1 –>192.168.2.2
    (modemnya) 192.168.2.1
    B (proxy) ether 3 –>192.168.3.1
    (proxy-nya) 192.168.3.5
    C. (local)ether 4 –>192.168.1.1
    Dial-up modem lewat mikrotik..
    jadi gatawaynya ipnya dari modem..nya..
    mohon..bantuanny

    • apakah sudah dibuatkan route ke 192.168.3.1 untuk semua koneksi http yg di mangle sebelumnya? kalo memang mangle agak merepotkan untuk mas, silakan gunakan nat saja. :)

      • haha..ini aja..dulu bang…Q mau tanya..lou untuk menyimpan log cache proxy untuk defaultnya kan di../var/log/squid/ lou..mau mindah..di /cache1…gimana caranya ya..biar lebih..optimal..hitnya

        • cache_log /cache1/cache.log
          cache_store_log /cache1/store.log
          access_log /cache1/access.log

          kalo squid nya udah berjalan stabil, log bisa di matikan agar squid fokus hanya menangani caching (tidak melakukan logging)

          cache_log /dev/null
          cache_store_log none
          access_log none

  • mau tanya om …
    topologi ane sama persis kayak digambar ( proxy 1 eth) …
    mikrotik : eth 1 : 192.168.1.1 ( menuju ke switch/client )
    mikrotik : eth 5 : ip public ISP
    mikrotik : eth 4 : 192.168.2.1 ( menuju ke proxy )

    Proxy Ubuntu 2.7x-lusca 1 eth
    proxy : eth0 : 192.168.2.2

    setelah kanan kiri … ya lumayan lah udah HIT walaupun belum optimal itu jadi PR ane sementara ini, tapi yang ane mau tanya :
    1. ketika client 192.168.1.100 rekuest misal detik.com … dilarikan ke proxy … dan bila tidak ada maka proxy kembali ke mikrotik dengan membawa tugas ke detik.com tapi menggunakan ip 192.168.2.2 :(
    nah permasalahannya disini … ketika 192.168.2.2 masuk ke mikrotik… limiter tidak bekerja karena tidak ada .. kalau dimasukin … bingung karena itu hanya 1 ip ..
    pertanyaannya : adakah cara supaya ip yang masuk ke mikrotik adalah ip client 192.168.1.100 ? kalau ada… maukah om bos memberikan panduannya ?
    ane udah baca tutz soal tcp outgoing tapi ga nemu2 cara nya biar bekerja … :(
    cuma tehnik nya aja udah dipasang di squid.conf spt ini ( kurang lebih
    192.168.1.100 — di ubah jadi — 192.168.2.100
    sehingga masuk ke mikrotik nya adalah 192.168.2.ipbelakangclient … jadi mangle nya bisa di tambahkan ) tapi nyari2 ga nemu2

    mohon solusi nya
    baik itu tcp outgoing maupun ip client di “kembalikan lagi” ke mikrotik

    salam
    dan semoga dapat balasannya dari Nya

    • nah, ini kendala umum yang terjadi kalo proxy tidak menggunakan tproxy.

      klien (192.168.1.1) -> proxy (192.168.2.2) -> mikrotik + internet

      akses http yang terbaca di mikrotik adalah dari ip proxy, bukan dari ip klien. sehingga pembatasan bandwidth hanya ditujukan untuk ip proxy. jika menggunakan tproxy, maka akan menjadi seperti ini.

      klien (192.168.1.1) -> tproxy (spoof ip klien -> 192.168.1.1) -> mikrotik + internet

      maka yang terbaca di mikrotik adalah ip dari klien – bukan dari proxy. oleh karena itu, silakan implementasikan tproxy :

      http://code.google.com/p/tempat-sampah/source/browse/Rule.TPROXY

      • ga perlu patch kernel ? cukup yang di situ aja ? ( belum bisa implementasi M/B server ubuntu nya opname hahaha )

        note :
        172.16.1.2/32 <— milik proxy apa milik client ?

        • nggak per patch kernel mas coz kernel modern udah support tproxy. baca aja tutor nya pelan2, saya rasa penjelasan mas syaifudin di tempat-sampah udah cukup detail

          • root@ubuntu:/home/mirza# squid -k reconfigure
            FATAL: Bungled squid.conf line 2: http_port 3129 “tproxy”
            Squid Cache (Version 2.7.STABLE9): Terminated abnormally.

            kok ga bisa yah :(
            ane ganti 172.16.1.2 itu jadi 192.168.2.2

          • hmm.. sepertinya squidnya nggak di build dgn opsi –enable-linux-tproxy, jadi nggak support tproxy. kalo demikian squidnya mesti di build dan di instal ulanh dengan tproxy. coba periksa dengan mengetikkan squid -v

          • root@ubuntu:/home/mirza# squid -v
            Squid Cache: Version 2.7.STABLE9
            configure options: ‘–prefix=/usr’ ‘–exec_prefix=/usr’ ‘–bindir=/usr/sbin’ ‘–sbindir=/usr/sbin’ ‘–libexecdir=/usr/lib/squid’ ‘–sysconfdir=/etc/squid’ ‘–localstatedir=/var/spool/squid’ ‘–datadir=/usr/share/squid’ ‘–enable-http-gzip’ ‘–enable-async-io=24′ ‘–with-aufs-threads=24′ ‘–with-pthreads’ ‘–enable-storeio=aufs’ ‘–enable-linux-netfilter’ ‘–enable-arp-acl’ ‘–enable-epoll’ ‘–enable-removal-policies=heap’ ‘–with-aio’ ‘–with-dl’ ‘–enable-snmp’ ‘–enable-delay-pools’ ‘–enable-htcp’ ‘–enable-cache-digests’ ‘–disable-unlinkd’ ‘–enable-large-cache-files’ ‘–with-large-files’ ‘–enable-err-languages=English’ ‘–enable-default-err-language=English’ ‘–with-maxfd=65536′

            cara kompile nya gimana :(

          • dengan kondisi ini, squid udah di compile dan di build dengan benar. :)

  • maz boleh minta squid.conf $ store.pl terbaru?? trims sebelumnya

  • sekalian dong maz.. squid.conf, nya

    • monggo di google.. hehehe. atau search di blog ini dengan kata kunci squid.conf

  • mas fazar, itu di ipfire benar alamatnya /etc/rc.local? atau /etc/sysconfig/rc.local ?

    • kalo di ipfire nggak usah nambahin rules diatas, karena rules iptables akan di generate secara otomatis oleh sistem jika opsi enable on green / blue diaktifkan pada web interface. demikian. :)

      • tengkyu mas fazar, satu lagi pertanyaannya ya. saya pake ipfire core 73. dan install squid 2.7stable9. namun kenapa advanceproxy via web seolah tidak berfungsi ya, url filteringnya pun tidak berjalan (tidak bisa ngeblok porn, meskipun porn sudah saya centang), sepertinya settingan squid dikendalikan dari /etc/squid/squid.conf saja.
        apakah memang seperti itu? atau ada kesalahan pada kasus saya ini, (kenapa advproxy web seolah tidak berfungsi)

  • mas beda sekenario 1 dan 2 apa ya mas

    • skenario 1 menggunakan nat, dimana ip mikrotik yg akan mewakili koneksi ke proxy.
      skenario 2 menggunakan mangle, dimana ip klien akan di belokkan langsung ke proxy.
      demikian :)

  • Mas..tanya cara limit download extense dengan motode 2 punya mas fajar gimana?

  • slamat malam mas,

    saya mau tanya gmn cara merubah ip address di interface ipfire.
    thanks

    • halo mas phiruz,
      untuk mengganti ip address di ipfire, silakan login lewat ssh, kemudian ketikkan “setup” (tanpa tanda kutip) dan tekan enter. silakan pilih menu networking, dan ubah ip disana. :)

  • assalamualaikum mas,… saya nyoba make cara yang per tama mas, di access.log berhasil lewat trafik tapi hanya mengunakan ip gateway proxy atau ip mikrotik nya mas… gimana ya mas , mohon pencerahan nya mas

    • agar yg masuk ke squid ip client, maka mesin proxy harus di set sebagai gateway (menggunakan mangle dan route).

Leave a comment

Current day month ye@r *