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 :
- Mudah untuk di sesuaikan konfigurasinya sesuai dengan kebutuhan.
- Penggunaan access control lists (ACL) yang dapat digunakan untuk keperluan tertentu.
- Squid (khususnya versi 2.7) dapat “dipersenjatai” dengan url redirector. Pada suatu kondisi, redirector dapat digunakan untuk menangani akses konten dinamik (seperti video Youtube).
- 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…
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
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.
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.
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.
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
untuk proxy bikinin aja nat yg belokin akses ke port 80 lewat proxy. monggo di opreks.
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)
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
*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
sepertinya proxy server nya pake mikrotik juga ya. coba lakukan pemisahan iix dan non-iix disisi mikrotik yg bukan digunakan sebagai proxy.
proxy servernya pakai ubuntu 10.10 64bit mas
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.. ?
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
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 :)
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
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
mas minta alamat emailnya..? mau konsultasi lebih lanjut mengenai external Proxy
monggo ke fazar_at_outlook_dot-com
trims
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
mas fajar , ubuntu server (pake squid) saya gak bisa mengakses yahoo mail dan halaman yahoo.com mohon pencerahan trims… Newbie ni ^_^
halaman yahoo nya jadi amburadul ya? :)
coba deh refresh pattern berikut :
refresh_pattern -i yahoo.com 0 0% 0
!! untested, just give a try !!
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…
mau tanya gan.. untuk setting mikrotik mengunakan proxy external linux server setting mikrotiknya gimana?
baru belajar kang 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