Tutorial ini diperuntukan mesin Mikrotik dengan External Proxy, yang akan dibahas disini adalah bagaimana Mikrotik bisa menonaktifkan perintah redirect port yang dibelokkan ke external proxy ketika mesin server mati atau terputus dengan server atau service port proxy dalam kondisi mati secara tiba-tiba tetapi kondisi mesin masih menyala, dan bagaimana Mikrotik bisa kembali mengaktifkan redirect port ke external proxy ketika terhubung kembali dengan server atau port proxy tersedia kembali. Dengan cara:
1. Mikrotik selalu melakukan ping ke IP server external proxy, jika terputus maka Mikrotik akan menonaktifkan perintah redirect port dan sebaliknya.
2. Disini tidak akan tergantung dengan situs-situs diluar agar kondisinya bisa digaransi, melainkan dari server external proxy akan memantau port proxy-nya sendiri setiap berapa detik sekali, setiap kondisi port proxy mengalami kegagalan maka server akan mengirimkan perintah ke Mikrotik melalui SSH agar Mikrotik menonaktifkan perintah redirect port dan kondisi sebaliknya pula.
Tujuannya adalah ketika tiba-tiba server external proxy dalam kondisi mati sendiri dan daemon proxy down sendiri karena ada sesuatu yang faild maka dari sisi client masih tetapi bisa browsing tanpa memakai external proxy tanpa campur tangan administratornya karena yang bersangkutan sedang tertidur dan keperluan lainnya.
Tutorial ini hanya contoh, silahkan disesuaikan kondisi masing-masing, maka itu sebelumnya saya memberi contoh topology yang saya pakai…
either3 ----------- AP RT/RW NET )))))) ((((((( CLIENT WIFI | either0 | either2 MODEM BRIDGE ----------- MIKROTIK ------SWITCH ----- CLIENT WARNET | either1 | | eth0 EXTERNAL PROXY
IP either1: 192.168.3.254, nama interfaces: to_proxy
IP either2: 192.168.1.254, nama interfaces: to_warnet
IP either3: 192.168.2.245, nama interfaces: to_wifi
IP eth0 external proxy: 192.168.3.253
Disini saya anggap bahwa server proxy sudah diinstall dan berjalan dengan baik, begitu juga kondisi dial modem maupun Mikrotik sudah bisa berjalan tanpa external proxy.
Langkah Pertama
Buat Rule di Mirkotik untuk Redirect port 80/HTTP dan 3128/PROXY dari wifi maupun warnet diarahkan ke external proxy 192.168.3.253 port 3128
/ip firewall mangle add action=add-src-to-address-list address-list="wifi hot-spot" \ address-list-timeout=1m chain=prerouting \ comment="User online list adding from HotSpot" disabled=no \ in-interface=to_wifi src-address=192.168.2.0/24 \ src-address-type=!local add action=add-src-to-address-list address-list="warnet" \ address-list-timeout=1m chain=prerouting \ comment="User online list adding from Warnet" disabled=no \ in-interface=to_warnet src-address=192.168.1.0/24 \ src-address-type=!local /ip firewall nat add action=dst-nat chain=dstnat comment="Redirect_Proxy_Warnet" \ disabled=no dst-port=80,3128 in-interface=to_warnet \ protocol=tcp src-address-list=warnet \ to-addresses=192.168.3.253 to-ports=3128 add action=dst-nat chain=dstnat comment="Redirect_Proxy_WiFi" \ disabled=no dst-port=80,3128 in-interface=to_wifi \ protocol=tcp src-address-list="wifi hot-spot" \ to-addresses=192.168.3.253 to-ports=3128
Langkah Kedua
Buat script di Mikrotik yang bertujuan selalu mengontrol koneksi dari mikrotik ke external proxy, bila terjadi koneksi terputus akan menonaktifkan redirect dan sebaliknya, dalam interval 1 detik sekali melakukan ping dengan batasan latency maksimal 20ms.
/tool netwatch add comment="" disabled=no down-script="/ip firewall nat set [find comment=\"\ Redirect_Proxy_Warnet\"] disabled=yes\r\ \n/ip firewall nat set [find comment=\"Redirect_Proxy_WiFi\"] disabled=yes\r\ \n:log error \"External Server is DOWN...!\"" host=192.168.3.253 \ interval=1s timeout=20ms up-script="/ip firewall nat set [find comment=\"Redirect_Proxy_Warnet\"] disabled=no\r\ \n/ip firewall nat set [find comment=\"Redirect_Proxy_WiFi\"] disabled=no\r\ \n:log error \"External Server is UP...!\""
Dan sebaliknya colokan kembali kabel UTP-nya, seharusnya otomatios akan enable.
Langkah Ketiga
Buat account user di Mikrotik missal dengan nama proxy tanpa password dan beri allow hanya bisa dipakai dari host ber-IP interfaces server external proxy untuk keamanan.
/user add address=192.168.3.253/32 comment="" disabled=no group=full name=proxy
Langkah Keempat
Buat script di linux (external proxy) tetapi install dahulu repository NMAP karena akan menghandalkan tools tersebut untuk deteksi port proxy.
install NMAP….
# apt-get install nmap
# pico /sbin/failover-proxy
#!/bin/bash ####################################################### # DIBUAT OLEH OPiKdesign EMAIL th@opikdesign.com # DIDEDIKASIKAN UNTUK KOMUNITAS INDONESIA OPENSOURCE ####################################################### ####################################################### # VARIABLE...... # SILAHKAN DISESUAIKAN ####################################################### #User Mikrotik tanpa password user="proxy" #IP Mikrotik yang terhubung ke proxy ip_mt="192.168.3.254" #Comment redirect sesuaikan seperti rule di Mikrotik > ip > firewall > nat comment_nat_wifi="Redirect_Proxy_WiFi" comment_nat_warnet="Redirect_Proxy_Warnet" #Port Proxy port=3128 #Interval berapa detik sekali INTERVAL=1 ####################################################### # MULAI BARIS INI...... # JANGAN MERUBAH SCRIPT JIKA TIDAK AHLI ####################################################### # VARIABLE FILE TEMP TEMP="/root/failover.status" # VARIABLE CONNECT SSH KE MIKROTIK connect_ssh="ssh $user@$ip_mt" # VARIABLE PERINTAH REDIRECT ENABLE/DISABLE KE MIKROTIK redirect_dis_wifi='/ip firewall nat set [find comment="'$comment_nat_wifi'"] disabled=yes' redirect_ena_wifi='/ip firewall nat set [find comment="'$comment_nat_wifi'"] disabled=no' redirect_dis_warnet='/ip firewall nat set [find comment="'$comment_nat_warnet'"] disabled=yes' redirect_ena_warnet='/ip firewall nat set [find comment="'$comment_nat_warnet'"] disabled=no' # VARIABLE PENGIRIMAN PESAN LOG KE MIKROTIK log_down='/log error message="Proxy Server is DOWN...!"' log_up='/log error message="Proxy Server is UP...!"' # PENGECEKAN AWAL: PORT PROXY DAN PENGATURAN KE MIKROTIK nmap localhost | grep $port > /dev/null 2>&1 TEST_SQUID=$? if [ $TEST_SQUID -ne 0 ]; then $connect_ssh $redirect_dis_wifi $connect_ssh $redirect_dis_warnet $connect_ssh $log_down echo "disable" > $TEMP else $connect_ssh $redirect_ena_wifi $connect_ssh $redirect_ena_warnet $connect_ssh $log_up echo "enable" > $TEMP fi # PENGECEKAN SECARA CONTINUE: PORT PROXY DAN PENGATURAN KE MIKROTIK while : ; do nmap localhost | grep $port > /dev/null 2>&1 TEST_SQUID=$? if [ $TEST_SQUID -ne 0 ]; then cat $TEMP | grep enable > /dev/null 2>&1 STATUS=$? if [ $STATUS -ne 1 ]; then $connect_ssh $redirect_dis_wifi $connect_ssh $redirect_dis_warnet $connect_ssh $log_down echo "disable" > $TEMP fi else cat $TEMP | grep disable > /dev/null 2>&1 STATUS=$? if [ $STATUS -ne 1 ]; then $connect_ssh $redirect_ena_wifi $connect_ssh $redirect_ena_warnet $connect_ssh $log_up echo "enable" > $TEMP fi fi sleep $INTERVAL done ####################################################### # AKHIR SCRIPT #######################################################
# chmod +x /sbin/failover-proxy
Langkah Kelima
Agar setiap kali si server external proxy booting/restart selalu dipanggil dan berjalan sebagai daemon maka tambahkan baris perintah dibawah ini di dalam file /etc/rc.local….
# pico /etc/rc.local
nohup /sbin/failover-proxy &
Langkah Keenam (terakhir)
Reboot server external proxy-nya, kemudian uji coba dengan memantau Mikrotik ip firewall nat, coba daemon squid-nya matikan dan seharusnya rule redirect di Mikrotik otomatis disable dan di log pasti ada pesan tanda merah… dan sebaliknya hidupkan kembali daemon squid-nya, seharusnya rule redirect di Mikrotik akan aktif kembali dan ada pesan di log-nya.
untuk mematikan daemon squid/proxy
# service squid stop
# service squid start
Sumber : www.statusbooks.com/profile/KhaLikIdris
0 komentar:
Posting Komentar
Berikut adalah beberapa aturan untuk memberikan komentar di blog ini :
1. Semua komentar kecuali spam dipersilahkan.
2. Anda dipersilahkan jika ingin membuat permintaan dan pertanyaan.
3. Jangan gunakan nama-nama seperti Admin, Penulis, Operator, atau yang lainnya untuk memberikan komentar karena akan membuat orang lain salah paham.
4. Tinggalkan Alamat Email/Url Blog Anda, jika Anda memberi komentar sebagai "Anonymous"
"Terima kasih banyak telah berkomentar"