Langsung ke konten utama

Tutorial Failover Mikrotik dan External Proxy

Pendahuluan
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
Keterangan contoh:
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...!\""
Kemudian diujicoba, cabut kabel UTP yang menuju ke external proxy dan lihat rule ip firewall nat untuk Redirect port-nya, apakah sudah disabled atau belum, klo sudah disabled berarti sudah berjalan sesuai harapan.
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
buat script di /sbin/failover-proxy…
pico /sbin/failover-proxy
dan isi script-nya sebagai berikut….
#!/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
#######################################################
kemudian beri permission untuk bisa di jalankan…
 
# 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….
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
untuk menghidupkan kemabli daemon squid/proxy
# service squid start
-----------------------------
Silahkan tutorial ini dengan bebas dipakai dan dikembangkan namun mohon penghargaannya jika tutorial ini akan ditulis kembali ditempat lain semisal di forum, wiki maupun dimanapun… mohon menyebutkan sumbernya dengan memberikan link thread ini.
------------------------------
Akhir kata wassalamualaikum dan semoga bermanfaat.

Komentar

Postingan populer dari blog ini

hacking

How To Create Facebook Phishing Android Application (No Coding Needed) by PicaTesHackZ · Published January 18, 2015 · Updated September 3, 2016 image: https://i0.wp.com/picateshackz.com/wp-content/uploads/2015/01/fb2Bandroid2Bapp.jpg?resize=400%2C376 In this tutorial i’m going to explain how to make an android application with facebook phishing method, so you can get the username and password of each person who login to facebook using this app.  Note: This post is updated with new undetectable phishing files This app is actually looks like real facebook app with real facebook icon so victim can’t find out whether it’s a fake facebook application or not. Sending fake page’s url to victim is not possible now a days ,that method is easily detectable in firefox and google chrome browsers that’s why i’m tested this new method to phishing facebook and it works good. Read my previ...

Tentang Iptables - Drop all allow some Vs. Allow all drop some

Ketemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Kali ini kita berbicara tentang security, berbicara tentang security sudah tentu ini berkaitan dengan firewall. Pada linux atau unix, ada beberapa metode untuk memasang firewall. Sebagian ada yang memakai iptables, sebagian lagi menggunakan ufw. Saya sendiri lebih familiar dengan iptables. Seorang administrator tentunya tidak mau kan server-nya dijebol oleh pihak-pihak yang tidak bertanggung jawab. Jika hal itu terjadi rasanya langit telah runtuh tepat diatas kepala. Dalam hal keamanan linux mempunyai keunggulan jauh lebih baik daripada windows. Seperti kita tau bahwa Linux/Unix selain mempunyai tingkat keamanan yang tinggi, juga mempunyai umur yang lebih panjang daripada windows. Artikel ini akan membahas bagaimana caranya mencegah hal itu terjadi, saya akan menjelaskan beberapa cara menggunakan iptables sebagai firewall kita. Ada beberapa metode yang bisa kita gunakan, " Drop all allow some" atau ...

Kumpulan Perintah -Perintah Dasar di Linux Part 2

bertemu lagi dengan saya di blog Tutorial Linux Untuk Pemula. Pada postingan sebelumnya saya sudah menuliskan banyak perintah-perintah dasar di linux (part 1) . Pada postingan ini saya akan melanjutkan tugas saya berbagi dengan anda, blog ini adalah lanjutan dari postingan saya sebelumnya karena masih banyak perintah-perintah yang harus anda ketahui di linux. Oke langsung saja ya :D [ cat ] Teman kita yang satu ini bernama cat, tapi bukan kucing ya! :D untuk singkatan nya saya juga tidak ta u apa, tapi yan g pasti cat bisa kita gun akan untuk melihat isi file tanpa harus membuka file tersebut. Cara penggunaan : root@apocalypsix:# cat blogging.txt Perintah diatas akan menampilkan isi dari file blogging.txt tanpa harus membukanya. [ tail ] Selanjutnya ada tail , biasanya tail digunakan untuk meng ikuti perkembangan dari sebuah file se cara real t ime. Seperti misalnya pada file access.log milik apache. Jika server anda adalah termasuk server yang sibuk dari transaksi web, log ny...