About This Blog

My Great Web page

12/08/2012

Auto Update Address-List IIX di Router Mikrotik


[How-to] Auto Update Address-List IIX di Router Mikrotik

How to sederhana mengenai bagaimana melakukan auto update address-list IIX di Router mikrotik dengan bantuan sebuah mesin linux yang melakukan download dan upload otomatis, meskipun rada cupu semoga bisa berguna;

Berikut adalah metode sederhana yang saya lakukan untuk melakukan auto update address-list IIX yang saya perlukan dalam melakukan mangling untuk kemudian digunakan oleh queue pada Router yang menggunakan Mikrotik RouterOS.

Untuk proses download dan upload otomatis saya menggunakan sebuah mesin linux yang juga melayani fungsi web server untuk keperluan internal.

Secara garis besar yang dilakukan terbagi ke dalam 4 langkah sebagai berikut;

1. Download otomatis, dengan menggunakan cron dan wget linuxbox mendownload file yang berisikan script address-list iix secara otomatis pada waktu-waktu tertentu, dalam hal ini file yang di download adalah nice.rsc dari
http://ixp.mikrotik.co.id/download/nice.rsc, waktu download adalah setiap hari pada pukul 05.00 pagi. Di RouterOS 3.0rcx ada tool yang berjudul fetch, meskipun saya belum bisa menggunakannya sepertinya ini adalah tool untuk mengambil file otomatis dari web server, sehingga besar kemungkinan proses auto update ini nantinya bisa dilakukan sendiri oleh Mikrotik RouterOS tanpa bantuan dari sebuah mesin linux.

Fullpath ke wget;
Code:
vinson:/# which wget
/usr/bin/wget
Perintah wget;
Code:
/usr/bin/wget -q http://ixp.mikrotik.co.id/download/nice.rsc -O /path/ke/direktori/lokal/nice.rsc
-q untuk mematikan verbose perintah wget
-O untuk menyimpan file yang di download ke dalam direktori tertentu

Masukkan ke dalam crontab;
Code:
#touch croniix.txt
Masukkan perintah cron ke dalam file tersebut dengan menggunakan text editor favorit anda; Sesuaikan /path/ke/direktori/lokal/ dengan full path ke direktori lokal yang anda gunakan.
Code:
0 5 * * * /usr/bin/wget -q http://ixp.mikrotik.co.id/download/nice.rsc -O /path/ke/direktori/lokal/nice.rsc
Masukkan cron tersebut ke dalam crontab;
Code:
# crontab croniix.txt
Pastikan bahwa cron tersebut sudah masuk dan aktif;
Code:
# crontab -l
2. Kemudian lakukan penyesuaikan isi file nice.rsc sesuai dengan kebutuhan kita. Dalam kasus saya adalah mengganti nama address-list=nice menjadi address-list=iix-ip melalui perl dan menghapus baris yang berisi komentar (#) (untuk tujuan penyederhanaan - bukan untuk menghilangkan nama pembuat script yang sudah kita ketahui bersama dibuat oleh Om Valens Riyadi Valens Riyadi @ www.mikrotik.co.id), juga menghapus baris yang berisi perintah /sys note. Hal ini dilakukan dengan menggunakan perintah sed yang disatukan ke dalam sebuah batch file. Sesuaikan nama address-list IIX dengan nama list yang anda gunakan di router anda.

Buat file script yang akan dijalankan untuk melakukan modifikasi
Code:
# touch modifnice.batch
# chmod 0777 modifnice.batch
Masukkan baris berikut ke dalam file script tersebut;
Code:
# Untuk melakukan modifikasi terhadap nice.rsc
 
# menghapus baris 1-10 yang berisikan komentar dan /sys note dari file nice.rsc dan menyimpan hasilnya di dalam file iix-ip.rsc
sed -e '1,10d' /path/ke/direktori/lokal/nice.rsc > /path/ke/direktori/lokal/iix-ip.rsc
 
# merubah address-list=nice menjadi address-list=iix-ip
perl -pi -e "s/nice/iix-ip/g;" /path/ke/direktori/lokal/iix-ip.rsc

3. Mengupload file tersebut ke router-router mikrotik yang ingin kita update secara otomatis address-list IIX nya, terlebih dahulu di masing-masing router kita buat sebuah group yang hanya memiliki previlege untuk melakukan ftp ke router tersebut dan membuat user terkait dengan grup tersebut serta menentukan password aksesnya. Hal ini dilakukan melalui perintah ncftpput.

Tambahkan baris berikut ke dalam batch file yang telah kita buat sebelumnya;
Code:
# mengupload file iix-ip.rsc ke router-router yang kita inginkan
# masukkan ip router, username, dan password
ncftpput -b -u username -p password 117.xxx.xxx.38 / /path/ke/direktori/lokal/iix-ip.rsc
ncftpput -b -u username -p password 117.xxx.xxx.14 / /path/ke/direktori/lokal/iix-ip.rsc
ncftpput -b -u username -p password 117.xxx.xxx.34 / /path/ke/direktori/lokal/iix-ip.rsc
ncftpput -b -u username -p password 10.xxx.xxx.3 / /path/ke/direktori/lokal/iix-ip.rsc
ncftpput -b -u username -p password 117.xxx.xxx.19 / /path/ke/direktori/lokal/iix-ip.rsc
Rubah IP Address, username, dan password sesuai dengan username, pasword dan IP Address router anda, sebaiknya dibuat username terpisah yang hanya memiliki previlege ftp.

Tambahkan file batch ke dalam crontab, melalui baris di croniix.txt
Code:
30 5 * * * /path/ke/direktori/lokal/modifnice.batch
Aktifkan crontab
Code:
#crontab croniix.txt
File batch modifnice.batch akan dijalankan pukul 05:30 setiap hari.
Buat user di Router mikrotik untuk keperluan upload ftp dari mesin linux;

Buat group ftponly
Code:
/ user group
add name="ftponly" policy=ftp,!local,!telnet,!ssh,!reboot,!read,!write,!policy,!test,!winbox,!password,!web 
/ user
add name="username" group=ftponly address=0.0.0.0/0 comment="" disabled=no
Berikan password untuk user "username";

Buka service FTP di setiap router dan pastikan tidak ada rule firewall yang menghalangi koneksi pada port 21
Code:
/ ip service
set ftp port=21 address=0.0.0.0/0 disabled=no
Memastikan bahwa koneksi ftp pada port tersebut bisa dilakukan melalui telnet
Code:
# telnet 117.xxx.xxx.34 21
Trying 117.xxx.xxx.34...
Connected to 117.xxx.xxx.34.
Escape character is '^]'.
220 rt.distrib.dursaw.netsol FTP server (MikroTik 3.0rc13) ready
4. Membuat schedule di masing-masing router mikrotik untuk menjalankan script yang sudah diupload sebelumnya dan menghapus file tersebut setelah script dijalankan dengan menggunakan scheduler.

Buat script untuk melakukan import dan melakukan penghapusan dan kemudian buat system scheduler untuk menjalankan kedua script tersebut dengan jeda waktu 30 menit;
Code:
/ system script 
add name="import-iix-ip" source="/import iix-ip.rsc" policy=ftp,reboot,read,write,policy,test,winbox,password 
add name="rem-iix-ip" source="/file rem iix-ip.rsc" policy=ftp,reboot,read,write,policy,test,winbox,password 
/ system scheduler 
add name="UpdateIIX" on-event=import-iix-ip start-date=jan/13/2008 start-time=06:30:00 interval=1d comment="" disabled=no 
add name="Remove-Addr" on-event=rem-iix-ip start-date=jan/13/2008 start-time=07:00:00 interval=1d comment="" disabled=no
Hal yang perlu diperhatikan adalah sinkronisasi waktu antar server dan router-router terkait apabila kita menginginkan proses autoupdate terjadi tepat pada waktu yang kita inginkan.
Description: Auto Update Address-List IIX di Router Mikrotik Rating: 3.5 Reviewer: Unknown ItemReviewed: Auto Update Address-List IIX di Router Mikrotik

Tidak ada komentar:

Posting Komentar

komentar