Bagi pengguna Proxy external yang digabungkan dengan router mikrotik, pasti sudah paham dan sangat membutuhkan yang namanya Disable NAT jika mesin proxy mati atau shutdown. Kita bisa menggunakan tool Netwatch yang tersedia di mikrotik untuk memantau konektifitas antara proxy dan mikrotik, dimana Netwatch akan melakukan ping dan jika terjadi timeout maka mikrotik akan melakukan disable NAT yang meredirect trafik HTTP ke proxy. Namun, bagaimana jika yang tidak berjalan hanya program squid-nya saja, sedangkan mesin proxy tetap menyala dan tetap “reply” saat di ping? Maka mikrotik tetap menganggap proxy “UP” dan NAT redirect ke proxy akan tetap hidup yang akan menyebabkan client tidak bisa browsing.
Script ini berfungsi untuk memantau squid dalam mesin proxy, dan jika squid tersebut STOP atau FAILED maka dia akan melakukan login ke router mikrotik untuk mendisable NAT yang me-redirect ke proxy dan sebaliknya jika squid berjalan maka akan meng-enable NAT redirect ke proxy.
Disini saya menggunakan Ubuntu server sebagai proxy eksternal, gak bertanggung jawab untuk distro lain atau OS lain..
IP Mikrotik to proxy : 192.168.3.254
IP eksternal Proxy : 192.168.3.253
dengan menggunakan terminal atau winbox buat dulu user baru dengan nama proxy, tanpa menggunakan password dan akses full.
/user add address=192.168.3.253/32 comment="" disabled=no group=full name=proxy
disisi ubuntu,
pertama login ke server proxy dari terminal (pake putty jg bisa)
pertama install paket nmap
apt-get install nmap
langkah kedua, buat script failovernya :
pico /sbin/failover-proxy
Paste code berikut :
#!/bin/bash
#######################################################
# DIBUAT OLEH OPiKdesign EMAIL [email protected]
# 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"
#port SSH Mikrotik
portssh="221"
#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 -p $portssh $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 info 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
#######################################################
pada script diatas, pada bagian connect ssh ke mikrotik saya rubah sedikit dari aslinya untuk menambahkan port ssh. karena saya menggunakan port ssh yg tidak standart. Bagi agan2 yang merubah port ssh di > ip > services silahkan sesuaikan portnya.
selanjutnya ubah permission dari script tersebut biar bisa di eksekusi :
chmod +x /sbin/failover-proxy
biar script langsung jalan saat server reboot tambahkan bari berikut pada file /etc/rc.local diatas baris exit 0
nohup /sbin/failover-proxy &
selanjutnya, silahkan reboot server proxynya, setelah itu lakukan pengetesan dengan mematikan service squid di ubuntu dan lihat apakah fungsi NAT di mikrotik berhasil di disable atau nggak.
mematikan service squid :
service squid stop
cek NAT di mikrotik apakah berhasil di disable.
menghidupkan kembali service squid
service squid start
cek kembali di mikrotik apakah NAT bisa di enable kembali.
Sumber : Postingan pribadi di KasKus dari modifikasi script mbah opikdesign
failover proksi itu apa?