Cara menangkap IP YouTube dan Facebook di Mikrotik Dengan menggunakan Script

0
336
Address Lists Mikrotik

Anda dapat menangkap semua IP YouTube dan Facebook pada setiap router Mikrotik, menyimpannya dalam dua daftar alamat tujuan atau address list yang dapat digunakan untuk segala jenis penyaringan atau mangle, apakah itu packet, rute atau mangle. Dst Address juga dapat digunakan untuk memprioritaskan lalu lintas dalam kualitas layanan (QoS).

Karena ada banyak blok subnet yang digunakan oleh YouTube dan Facebook, dan subnet terus berubah, kita harus menemukan cara untuk mengotomatiskan proses yang akan terus memberikan informasi kepada router Mikrotik tentang perubahan tersebut. Selanjutnya, dua script sederhana diperlukan untuk menangkap semua IP YouTube dan Facebook. Script ini dapat dimodifikasi untuk menangkap semua IP yang terkait dengan situs web lainnya. Setiap script akan diberikan penjadwal sistem yang akan berjalan pada interval untuk memastikan bahwa dst address yang berisi IP yang terkait dengan situs web tertentu selalu diperbarui.

Agar solusi berfungsi sebagaimana mestinya, pengguna harus dipaksa untuk menggunakan alamat IP pada antarmuka LAN dari router Mikrotik sebagai alamat DNS pilihan mereka. Untuk mencapai hal ini, router Mikrotik harus diberi alamat DNS dengan allow remote request diaktifkan. Setelah itu, aturan NAT firewall aturan juga harus dikonfigurasi untuk memaksa semua permintaan DNS dari LAN ke router Mikrotik.

Script untuk menangkap IP YouTube dan Facebook

Script untuk IP Youtube

Script ini akan menangkap semua IP yang terkait dengan Youtube. Lihat script di bawah ini.


# Tested with Mikrotik 6.42.7
:local LISTNAME “youtube”

# Nama situs web yang akan ditambahkan ke address list
:local TARGET1 “youtube.com”

:local TARGET2 “googlevideo.com”

# ketika situs dikunjungi untuk pertama kalinya menambahkan ip situs ke address list jika tidak terdaftar
:if ( [/ip firewall address-list find where list=$LISTNAME] = “”) do={

:log warning “No address list for $TARGET1 and $TARGET2 found ! creating and adding resolved entry for 1st time usage … gate”
:resolve $TARGET1
:resolve $TARGET2
/ip firewall address-list add list=$LISTNAME
} else={
:log warning “Previous List for $LISTNAME found ! moving forward and checking if DNS entries can be added in it …”
}

# Periksa entri DNS untuk nama situs web yang cocok
:foreach i in=[/ip dns cache all find where (name~”$TARGET1″ || name~”$TARGET2″) (type=”A”) ] do={

# Dapatkan Alamat IP dari nama-nama untuk ditahan di buffer sementara
:local Buffer [/ip dns cache get $i address];
delay delay-time=10ms

# Periksa apakah entri sudah ada di daftar alamat, jika tidak tambahkan
:if ( [/ip firewall address-list find where address=$Buffer] = “”) do={

# Ambil nama DNS untuk entri
:local sitednsname [/ip dns cache get $i name] ;

# Menampilkan nama LOG window
:log info (“added entry: $sitednsname $Buffer”);
# Tambahkan alamat IP dan nama sitename ke address list
/ip firewall address-list add address=$Buffer list=$LISTNAME comment=$sitednsname;
}
}

Script untuk IP Facebook

Script ini akan menangkap semua IP yang terkait dengan Facebook. Lihat script di bawah ini.

# Script untuk menambahkan alamat IP Facebook ke address list
# Tested with Mikrotik 6.42.7
:local LISTNAME “facebook”

# Nama situs web yang akan ditambahkan ke address list
:local TARGET1 “facebook.com”
:local TARGET2 “fbcd.net”

# ketika situs dikunjungi untuk pertama kalinya menambahkan ip situs ke daftar alamat jika tidak terdaftar di address list
:if ( [/ip firewall address-list find where list=$LISTNAME] = “”) do={
:log warning “No address list for $TARGET1 and $TARGET2 found ! creating and adding resolved entry for 1st time usage … gate”
:resolve $TARGET1
:resolve $TARGET2
/ip firewall address-list add list=$LISTNAME
} else={
:log warning “Previous List for $LISTNAME found ! moving forward and checking if DNS entries can be added in it …”
}

# Periksa entri DNS untuk nama situs web yang cocok
:foreach i in=[/ip dns cache all find where (name~”$TARGET1″ || name~”$TARGET2″) && (type=”A”) ] do={

# Dapatkan Alamat IP dari nama-nama untuk ditahan di buffer sementara
:local Buffer [/ip dns cache get $i address];
delay delay-time=10ms

# Periksa apakah entri sudah ada di daftar alamat, jika tidak tambahkan
:if ( [/ip firewall address-list find where address=$Buffer] = “”) do={

# Ambil nama DNS untuk entri
:local sitednsname [/ip dns cache get $i name] ;

# Menampilkan nama di LOG window
:log info (“added entry: $sitednsname $Buffer”);

# Tambahkan alamat IP dan nama sitename ke address list
/ip firewall address-list add address=$Buffer list=$LISTNAME comment=$sitednsname;
}
} 

Konfigurasi system scheduler

Langkah selanjutnya adalah mengkonfigurasi penjadwal sistem (system scheduler) untuk menjalankan script pada interval; sebagai contoh setiap 30 detik. Lihat perintah di bawah ini.


/sys scheduler add
name=facebook on-event=facebook interval=30s start-date=sep/09/2018 start-time=startup
name=youtube on-event=youtube interval=30s start-date=sep/09/2018 start-time=startup

Verifikasi

Untuk memverifikasi ini, saya akan memeriksa cache DNS di router Mikrotik, untuk melihat apakah itu menyelesaikan. Kemudian saya akan memeriksa apakah daftar alamat tujuan saya untuk YouTube dan Facebook mengandung IP apa pun. Pertama, lihat cache DNS di bawah ini.

DNS Cache

Address-lists

 

Leave a Reply