Topic: 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.

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

Re: Tutorial Failover Mikrotik dan External Proxy

Silahkan memberikan report-nya dan masukkan atas penulisan tersebut agar jika ada bug atau hal2 yg tidak beres bisa diperbaiki secepatnya.

Terima Kasih.

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

3 (edited by wonktegal 23-03-2011 07:43:47)

Re: Tutorial Failover Mikrotik dan External Proxy

PERTAMAX....

ngapunten sebelumnya om opik, langsung saja, ada yg ingin ane tanyakan.
untk di mikrotik pada settinga proxy keterangan pada Maximum Cache Size ada dua pilihan, None sama unlimeted.

http://img220.imageshack.us/img220/4570/gambar25.jpg

yg ingin ane tanyakan, mana yg harus ane pilih .....?

ada pun untk status pc proxy yg ane setting sebagai keteranganya sebagai berikut

http://img101.imageshack.us/img101/64/32928279.jpg

http://img815.imageshack.us/img815/2585/95064386.jpg

kira2 sudah bener lom pada settingan yg sudah ane setting, atau ada yg perlu di edit2 lagi ..?

*) untk Port yg saya pake 3128 yg ingin ane tanyakan lagi, perbedaanya apa antara port 3128 dgn Port 8080 ..?

*) untk spec CPU router yg ane pake
http://img31.imageshack.us/img31/9435/38488049.jpg


tlng kasih ane pencerahan, HELP ME ....!

_____________________________________________________________________________________

--{ Buat kamu yang merasa takut, takutlah pada PENYESALAN }--

Re: Tutorial Failover Mikrotik dan External Proxy

@wonktegal smile

wahhhh... keduluan dehhh smile
pagi2 gini udah didepan monitor aja nih rekan @wonktegal, hebring euy... smile

@opik smile

wahhh... tulisan yg bagus sekali smile terima kasih telah sharing smile

5 (edited by ricky_pamudji 23-03-2011 09:00:47)

Re: Tutorial Failover Mikrotik dan External Proxy

wahh...gagal pertamax nichh...opik semakin lagi dan lagi...NICE dahhh

patut dicoba nich...pantesan malam2 HP ogut bunyi mulu nich...haha

Jabat Erat

http://badge.facebook.com/badge/1354465295.1149.134051821.png
Hardware Consultant - Data Recovery,Diagnostic,Server,Warnet,etc..
Ha..hi..hu..he..ho - Kita bisa karena terbiasa...email : ricky_pamudji@yahoo.com

Re: Tutorial Failover Mikrotik dan External Proxy

@wonktegal

sebelumnya makasih pertamax-nya

hehehe.... proxynya di mikrotik...
lah ini bahas external proxy pak...

@abdi_wae

dicobain dong... big_smile
khan situ yg selalu semangatin... tongue

@ricky_pamudji

ricky_pamudji wrote:

patut dicoba nich...pantesan malam2 HP ogut bunyi mulu nich...haha

makanya ane telat absen war clan PB.... big_smile

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

7 (edited by wonktegal 23-03-2011 12:03:22)

Re: Tutorial Failover Mikrotik dan External Proxy

abdi_wae wrote:

@wonktegal smile

wahhhh... keduluan dehhh smile
pagi2 gini udah didepan monitor aja nih rekan @wonktegal, hebring euy... smile

sebelum menjalankan tugas negara, ane tdk lupa untk absen di KIOS dl.  hihiih...

opikdesign wrote:

@wonktegal

sebelumnya makasih pertamax-nya

hehehe.... proxynya di mikrotik...
lah ini bahas external proxy pak...

hanya untk mengobati rasa kebingungan saya n syukur2 bs dpt ilmu baru big_smile:D:D.....

jadi begini
kebetulan ane sudah beli buku panduan mikrotik, kurang lebih bukunya seperti ini

untk setting proxy yg sudah ane terapkan sesuai petunjuk yg ada di buku itu..
pada Maximum Cache Size ane pilih Nonedan utnk port proxy yg ane pake 3128.

tp begitu ane search di google khususnya masalah setting proxy di mikrotik, kebanyakan di bag Maximum Cache Size memilih unlimeted dan port yg dipilihnya jg menggunakan 8080. tuk...tuk...tuk...tuk...tuk... dari situ ane merasa bingung n bertanya2 ......

untk status proxy yg di pc router ane sudah running

kpd agan2 yg ada di KIOS, tlng kasih ane pencerahan. help meeeeee...

_____________________________________________________________________________________

--{ Buat kamu yang merasa takut, takutlah pada PENYESALAN }--

Re: Tutorial Failover Mikrotik dan External Proxy

@opik_design

tutorial yang bagus sekali mod @opik_design smile, saya masih mengimplementasikan di network saya tentunya sambil dikembangkan.

terima kasih mod @opik_design. ilmunya akan menjadi berkah. smile

Re: Tutorial Failover Mikrotik dan External Proxy

@wonktegal

konfigurasi ideal untuk proxy biasanya 60% dari total ukuran storage

misal anda mempunyai harddisk 100GB, sebaiknya proxy diberi quota untuk menyimpan cache nya sebesar 60G

jika anda memberikan quota unlimited, suatu saat harddisk anda penuh, service daemon proxy anda akan mati karena tidak bisa mengakses disk lokasi cache (disk full)


mengenai port, sebetulnya bebas-bebas saja, namun umumnya dari standard RFC, digunakan port 3128 (http_proxy) dan 8080 (http_alternative)


semoga jelas

Re: Tutorial Failover Mikrotik dan External Proxy

yogii wrote:

@opik_design

tutorial yang bagus sekali mod @opik_design smile, saya masih mengimplementasikan di network saya tentunya sambil dikembangkan.

terima kasih mod @opik_design. ilmunya akan menjadi berkah. smile

kembangkan lagi misal ditambah alert dengan bunyi dari speaker buzz mikrotik atau/dan email ke administrator... big_smile biar administrator yg malas lihat log mikrotik bisa tahu lebih cepat...

ide masih di kepala tapi belum sempat mempraktekan.... big_smile



@wonktegal

pertanyaan sudah dijawab om mod si_faisal...
sorry baru login lagi... big_smile

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

Re: Tutorial Failover Mikrotik dan External Proxy

Assalamu'alaikum sohib-sohib semua, khususnya bang opick dan bang si_faisal... salam kenal...

saya mau nanya, apakah disk cache perlu dibersihkan/dihapus isinya sesekali jika sudah penuh?

terima kasih atas jawabannya....

Re: Tutorial Failover Mikrotik dan External Proxy

Tonohara wrote:

Assalamu'alaikum sohib-sohib semua, khususnya bang opick dan bang si_faisal... salam kenal...

saya mau nanya, apakah disk cache perlu dibersihkan/dihapus isinya sesekali jika sudah penuh?

terima kasih atas jawabannya....

kenapa harus dihapus manual?! dia akan menghapus dengan sendirinya ketika penuh berapa persen sesuai settingannya dan menghapus content yg terlama. jadi jangan kuatir full... big_smile kecuali log-nya bisa di rotate...

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

Re: Tutorial Failover Mikrotik dan External Proxy

owh begitu, maklum nubi bangk opick.... terima kasih bang opick nanti kalo udah jadi ubuntu servernya saya lapor lagi... saya masih ngikutin tutorialnya bang opick nih di thread sebelah tentang ubunt server... terima kasih banyak bang opick

Re: Tutorial Failover Mikrotik dan External Proxy

opikdesign wrote:

kembangkan lagi misal ditambah alert dengan bunyi dari speaker buzz mikrotik atau/dan email ke administrator... big_smile biar administrator yg malas lihat log mikrotik bisa tahu lebih cepat...

ide masih di kepala tapi belum sempat mempraktekan.... big_smile

hehe mantap mod @opik_design, sebelumnya saya sudah curiga dengan adanya fitur sms di ROS, tapi bagaimana implementasinya belum terfikirkan smile.

Re: Tutorial Failover Mikrotik dan External Proxy

yogii wrote:

...adanya fitur sms di ROS...

fiture kayak gini yg dibutuhkan...
tapi fiture sms ini apakah sms by mobile-phone?!

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

Re: Tutorial Failover Mikrotik dan External Proxy

opikdesign wrote:
yogii wrote:

...adanya fitur sms di ROS...

fiture kayak gini yg dibutuhkan...
tapi fiture sms ini apakah sms by mobile-phone?!

@opik_design

pengennya sms dengan kartu seluler mod @opik_design, tapi lihat-lihat wikinya mikrotik seperti apa sms yang dimaksud ROS saya masih sangat bingung.

mungkin menurut saya solusinya dengan OS pihak ke 2 yaitu jedela sebagai network checker dan menggunakan sms gateway. hehe

Re: Tutorial Failover Mikrotik dan External Proxy

Wah tambah mantap aja nih proxy, ijin sedot ya mas skln mau tak coba dl...
Thx berat atas tuturialnya mas.

Re: Tutorial Failover Mikrotik dan External Proxy

Black_PC wrote:

Wah tambah mantap aja nih proxy, ijin sedot ya mas skln mau tak coba dl...
Thx berat atas tuturialnya mas.

klo ada bug/error tolong report disini yah...

thanks

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

Re: Tutorial Failover Mikrotik dan External Proxy

Makasih bang Opic, saya sudah berhasil ......mantabs nih trit...:-bd
Bisa tidur tenang sekarang. malam malam gak perlu bangun untuk uprek uprek proxy external yang sering ngadat di malam hari

untuk report nya masih dalam proses ya bang

sekali lagi terima kasih bang opic....
nilai 10 untuk bang opic.

Re: Tutorial Failover Mikrotik dan External Proxy

ajisoko wrote:

sekali lagi terima kasih bang opic....
nilai 10 untuk bang opic.

terima kasih cendolnya...

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

21 (edited by logicpoto 11-04-2011 23:06:18)

Re: Tutorial Failover Mikrotik dan External Proxy

opikdesign wrote:

kenapa harus dihapus manual?! dia akan menghapus dengan sendirinya ketika penuh berapa persen sesuai settingannya dan menghapus content yg terlama. jadi jangan kuatir full... big_smile kecuali log-nya bisa di rotate...

bang opik, saya pemula banget, blank tapi nekat usaha RT RWnet... karena blank, instalasi squid di ubuntu saya pasrahkan ke jasa instal squid. Nah menurut si pemasang, kalo squid nya sudah penuh harus dihapus secara manual... yang jadi masalah, kan sayang proxy 80GB sudah banyak isi nya harus terhapus... nah settingan di squid/ubuntu nya gimana ya supaya

opikdesign wrote:

akan menghapus dengan sendirinya ketika penuh berapa persen sesuai settingannya dan menghapus content yg terlama. jadi jangan kuatir full... big_smile kecuali log-nya bisa di rotate...

RT RW net Margasari Kab. Tegal

22 (edited by Tonohara 12-04-2011 18:04:45)

Re: Tutorial Failover Mikrotik dan External Proxy

Bang opick, mohon perkenan bantuannya... berikut adalah ip address mikrotik diwarnet saya, saat ini sudah berjalan, saya ingin menambahkan proxy server cuma saya kesulitan untuk menambahkan ip address di mikrotiknya, mohon bantuan... sebelumnya saya ucapkan terima kasih.

#   ADDRESS            NETWORK         BROADCAST       INTERFACE              
 0   192.168.0.1/32     192.168.1.1     192.168.1.255   to_modem               
 1   192.168.0.1/24     192.168.0.1     192.168.1.255   to_local               
 2 D 110.***.**.**/32   128.**.**.*    0.0.0.0         pppoe-speedy1

Re: Tutorial Failover Mikrotik dan External Proxy

opikdesign wrote:

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.

Bang Opik,maaf mau nanya lagi nih..sy sudah berhasil menggunakan mikrotik+proxy eksternal, nah yang jadi masalah buat saya sekarang adalah,di access log yang terdata cuma dari satu ip,yaitu ip dr mikrotiknya, nah kira2 bisa gak yah supaya yang terdata di access log di proxy per ip yang memang akses...?

Re: Tutorial Failover Mikrotik dan External Proxy

agusnur wrote:

Bang Opik,maaf mau nanya lagi nih..sy sudah berhasil menggunakan mikrotik+proxy eksternal, nah yang jadi masalah buat saya sekarang adalah,di access log yang terdata cuma dari satu ip,yaitu ip dr mikrotiknya, nah kira2 bisa gak yah supaya yang terdata di access log di proxy per ip yang memang akses...?

apa ini koq di quote semuanya?! tongue

access.log hanya muncul 1 ip saja?
topology-nya pasti seperti ini yah...


modem --------- server proxy -------- mikrotik --------- client


klo posisi mikrotik tidak bridge melainkan NAT/Router,
pasti hanya kebaca IP Mikrotik aja yg muncul...

coba di rubah topology-nya seperti ini...


modem --------- mikrotik --------- client
                             |
                             |
                      server proxy



HTH

Facebook OPiKdesign
http://badge.facebook.com/badge/100000147194199.279.411965916.png
* IT Consultant * Networking Specialist for Internet Cafe/HotSpot/SOHO * Maintenance * Graphic & Web Design, 3D Modeling & 2D/3D Animation * Hosting & Domain * email to: th@opikdesign.com

25 (edited by yogii 13-04-2011 00:24:21)

Re: Tutorial Failover Mikrotik dan External Proxy

opikdesign wrote:
/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...!\""

lapor pak opik, di bagian ini set [find comment=\"\Redirect_Proxy_Warnet\"], bagaimana kalau diganti dengan set nomor_item, agar lebih mudah. smile