MikroTik Firewall Filter Configuration
📋 Overview
Konfigurasi firewall MikroTik yang dirancang untuk mengamankan jaringan dengan server web publik. Konfigurasi ini menerapkan prinsip "default deny" dan stateful filtering dengan multiple layer protection.
🔧 Raw Firewall Rules dari MikroTik
0 ;;; Allow Syslog Out chain=output action=accept protocol=udp dst-port=514
1 ;;; Allow Established/Related chain=input action=accept connection-state=established,related
2 ;;; Drop Invalid chain=input action=drop connection-state=invalid
3 ;;; Allow ICMP LAN chain=input action=accept protocol=icmp in-interface-list=LAN
4 ;;; Allow MGMT Whitelist chain=input action=accept src-address-list=white-list
5 ;;; Allow WireGuard MGMT chain=input action=accept in-interface=idcloud
6 ;;; Allow WireGuard MGMT chain=input action=accept in-interface=BizNet log=no log-prefix=""
7 ;;; Allow PPPoE Discovery chain=input action=accept in-interface=vlan100
8 ;;; Drop Port Scanners chain=input action=drop protocol=tcp psd=21,3s,3,1
9 ;;; Drop SSH BruteForce chain=input action=drop protocol=tcp src-address-list=ssh_blacklist dst-port=22
10 ;;; Detect SSH BruteForce chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=!white-list address-list=ssh_blacklist address-list-timeout=1d dst-port=22
11 ;;; Allow Port Public chain=input action=accept protocol=tcp dst-port=8292,8980 log=no log-prefix=""
12 ;;; Drop Access from WAN chain=input action=drop in-interface-list=WAN
13 ;;; Drop All Other INPUT chain=input action=drop
14 ;;; Allow Established/Related chain=forward action=accept connection-state=established,related
15 ;;; Drop Invalid chain=forward action=drop connection-state=invalid
16 ;;; Allow WAN to WebServer chain=forward action=accept protocol=tcp in-interface-list=WAN dst-port=80,443,8980
17 ;;; Rate Limit Web Server (DDoS Protection) chain=forward action=drop connection-limit=100,32 protocol=tcp in-interface-list=WAN dst-port=80,443,8980 log=no log-prefix=""
18 ;;; Block Bad Bots chain=forward action=drop protocol=tcp src-address-list=bad-bots in-interface-list=WAN dst-port=80,443,8980 log=no log-prefix=""
19 ;;; Allow Whitelist chain=forward action=accept src-address-list=white-list
20 ;;; Allow PPPoE Clients chain=forward action=accept in-interface=vlan100
21 ;;; Allow Streaming Routed to ISP2 chain=forward action=accept routing-mark=to-ISP2
22 ;;; Drop Non-Whitelist from WAN chain=forward action=drop src-address-list=!white-list in-interface-list=WAN
23 ;;; Block Direct DNS UDP to WAN chain=forward action=drop protocol=udp out-interface-list=WAN dst-port=53
24 ;;; Block Direct DNS TCP to WAN chain=forward action=drop protocol=tcp out-interface-list=WAN dst-port=53
25 ;;; Drop Port Scanners Forward chain=forward action=drop protocol=tcp psd=21,3s,3,1
26 ;;; Drop All Other FORWARD chain=forward action=drop
Analisis dan Alur Firewall MikroTik
Dokumen ini memberikan penjelasan mendalam mengenai serangkaian aturan firewall MikroTik dan bagaimana aturan-aturan tersebut bekerja sama untuk mengamankan jaringan.
Konsep Dasar
Firewall MikroTik memproses paket data berdasarkan tiga chain (rantai) utama:
- INPUT: Mengatur lalu lintas yang ditujukan langsung ke router MikroTik itu sendiri (misalnya, akses ke Winbox, SSH, atau DNS resolver router).
- FORWARD: Mengatur lalu lintas yang melewati router, dari satu interface ke interface lain (misalnya, dari jaringan LAN ke Internet, atau antar-VLAN).
- OUTPUT: Mengatur lalu lintas yang berasal dari router itu sendiri (misalnya, router mengirim log ke server syslog).
Aturan diproses secara berurutan dari atas ke bawah (berdasarkan nomor urut 0, 1, 2, dst.). Ketika sebuah paket cocok dengan kriteria suatu aturan, tindakan (action) yang ditentukan akan diambil (misalnya, accept atau drop), dan pemrosesan paket di chain tersebut berhenti, kecuali tindakan tertentu seperti passthrough atau log digunakan.
Penjelasan Detail Aturan
Berikut adalah rincian dari setiap aturan firewall yang dikonfigurasi:
Chain OUTPUT
Rule 0: Allow Syslog Out
- Fungsi: Mengizinkan router mengirimkan pesan log sistem ke server syslog eksternal.
- Kriteria: Paket berasal dari router (
chain=output), menggunakan protokol UDP, dengan tujuan port 514. - Tindakan: Terima (
accept).
Chain INPUT (Lalu Lintas ke Router)
Alur INPUT ini dirancang untuk melindungi router dari akses yang tidak sah sambil mengizinkan layanan penting.
-
Rule 1: Allow Established/Related
- Fungsi: Mengizinkan lalu lintas balik untuk koneksi yang sudah diinisiasi oleh router atau koneksi yang terkait dengannya. Ini sangat penting untuk fungsi normal jaringan (stateful firewall).
- Kriteria: Status koneksi adalah
establishedataurelated. - Tindakan: Terima (
accept).
-
Rule 2: Drop Invalid
- Fungsi: Membuang paket yang tidak valid atau rusak, yang sering kali merupakan indikasi serangan atau masalah jaringan.
- Kriteria: Status koneksi adalah
invalid. - Tindakan: Buang (
drop).
-
Rule 3: Allow ICMP LAN
- Fungsi: Mengizinkan protokol ICMP (seperti ping) ke router hanya dari jaringan lokal (LAN). Ini berguna untuk pemecahan masalah internal.
- Kriteria: Protokol ICMP, berasal dari interface yang ada di dalam daftar
LAN. - Tindakan: Terima (
accept).
-
Rule 4: Allow MGMT Whitelist
- Fungsi: Mengizinkan akses manajemen penuh ke router hanya untuk alamat IP yang terdaftar dalam
white-list. Ini adalah lapisan keamanan utama untuk admin. - Kriteria: Alamat IP sumber cocok dengan entri di
address-listbernamawhite-list. - Tindakan: Terima (
accept).
- Fungsi: Mengizinkan akses manajemen penuh ke router hanya untuk alamat IP yang terdaftar dalam
-
Rule 5 & 6: Allow WireGuard MGMT
- Fungsi: Mengizinkan akses ke router melalui koneksi VPN WireGuard tertentu (
idclouddanBizNet). Ini menyediakan jalur aman tambahan untuk manajemen jarak jauh. - Kriteria: Paket masuk melalui interface WireGuard
idcloudatauBizNet. - Tindakan: Terima (
accept).
- Fungsi: Mengizinkan akses ke router melalui koneksi VPN WireGuard tertentu (
-
Rule 7: Allow PPPoE Discovery
- Fungsi: Mengizinkan protokol penemuan PPPoE pada VLAN tertentu (
vlan100). Ini diperlukan jika router bertindak sebagai server PPPoE atau klien pada interface tersebut. - Kriteria: Paket masuk melalui interface
vlan100. - Tindakan: Terima (
accept).
- Fungsi: Mengizinkan protokol penemuan PPPoE pada VLAN tertentu (
-
Rule 8: Drop Port Scanners
- Fungsi: Mendeteksi dan memblokir upaya pemindaian port (port scanning) menggunakan fitur PSD (Port Scan Detection) MikroTik.
- Kriteria: Paket TCP yang cocok dengan pola pemindaian port (bobot 21, interval 3s, threshold 3, bobot low port 1).
- Tindakan: Buang (
drop).
-
Rule 9 & 10: Perlindungan SSH Brute-Force
- Rule 9 (Drop): Memblokir akses SSH (port 22) dari alamat IP yang sudah masuk daftar hitam (
ssh_blacklist). - Rule 10 (Detect): Mendeteksi upaya login SSH baru yang berulang dari IP yang bukan whitelist. Jika terdeteksi, IP tersebut ditambahkan ke
ssh_blacklistselama 1 hari. - Alur: Paket SSH baru pertama kali melewati Rule 9 (belum diblokir), kemudian diperiksa oleh Rule 10. Jika dianggap serangan, IP penyerang masuk daftar hitam. Paket berikutnya dari IP tersebut akan langsung diblokir oleh Rule 9.
- Rule 9 (Drop): Memblokir akses SSH (port 22) dari alamat IP yang sudah masuk daftar hitam (
-
Rule 11: Allow Port Public
- Fungsi: Membuka akses ke layanan spesifik pada port 8292 dan 8980 di router.
- Kriteria: Protokol TCP dengan port tujuan 8292 atau 8980.
- Tindakan: Terima (
accept).
-
Rule 12: Drop Access from WAN
- Fungsi: Memblokir semua upaya akses langsung ke router yang berasal dari interface WAN (Internet), kecuali yang sudah diizinkan secara eksplisit sebelumnya. Ini adalah aturan keamanan yang sangat penting.
- Kriteria: Paket masuk dari interface yang ada di dalam daftar
WAN. - Tindakan: Buang (
drop).
-
Rule 13: Drop All Other INPUT (Implicit Deny)
- Fungsi: Aturan "tangkap-semua" terakhir. Jika sebuah paket ditujukan ke router dan tidak cocok dengan aturan 1-12 di atas, paket tersebut akan dibuang. Ini menerapkan prinsip keamanan "tolak semua kecuali yang diizinkan secara eksplisit".
- Tindakan: Buang (
drop).
Chain FORWARD (Lalu Lintas Melewati Router)
Alur FORWARD ini mengatur lalu lintas dari jaringan lokal ke Internet, akses ke server yang di-publish, dan lalu lintas antar-jaringan lainnya.
-
Rule 14: Allow Established/Related
- Fungsi: Mengizinkan lalu lintas balik untuk koneksi yang sudah diinisiasi dari jaringan lokal ke Internet atau koneksi terkait lainnya.
- Kriteria: Status koneksi
establishedataurelated. - Tindakan: Terima (
accept).
-
Rule 15: Drop Invalid
- Fungsi: Membuang paket yang tidak valid yang mencoba melewati router.
- Kriteria: Status koneksi
invalid. - Tindakan: Buang (
drop).
-
Rule 16: Allow WAN to WebServer
- Fungsi: Mengizinkan akses dari Internet (WAN) ke server internal (port forwarding/DNAT) pada port web standar (80, 443) dan port khusus 8980.
- Kriteria: Protokol TCP, dari interface list
WAN, tujuan port 80, 443, atau 8980. - Tindakan: Terima (
accept).
-
Rule 17: Rate Limit Web Server (DDoS Protection)
- Fungsi: Melindungi web server dari serangan DoS/DDoS sederhana dengan membatasi jumlah koneksi simultan dari satu IP publik.
- Kriteria: Protokol TCP, dari
WAN, ke port 80, 443, 8980, dan jumlah koneksi melebihi 100 (dengan netmask 32, artinya per satu IP). - Tindakan: Buang (
drop).
-
Rule 18: Block Bad Bots
- Fungsi: Memblokir akses ke web server dari alamat IP yang dikenal sebagai bot jahat atau sumber serangan.
- Kriteria: Protokol TCP, dari
WAN, IP sumber ada diaddress-listbad-bots, tujuan port 80, 443, 8980. - Tindakan: Buang (
drop).
-
Rule 19: Allow Whitelist
- Fungsi: Mengizinkan lalu lintas melewati router dari alamat IP yang terpercaya (
white-list). - Kriteria: IP sumber ada di
address-listwhite-list. - Tindakan: Terima (
accept).
- Fungsi: Mengizinkan lalu lintas melewati router dari alamat IP yang terpercaya (
-
Rule 20: Allow PPPoE Clients
- Fungsi: Mengizinkan lalu lintas dari klien yang terhubung melalui interface PPPoE (
vlan100) untuk mengakses Internet atau jaringan lain. - Kriteria: Paket masuk dari interface
vlan100. - Tindakan: Terima (
accept).
- Fungsi: Mengizinkan lalu lintas dari klien yang terhubung melalui interface PPPoE (
-
Rule 21: Allow Streaming Routed to ISP2
- Fungsi: Mengizinkan lalu lintas yang telah ditandai dengan routing mark
to-ISP2(mungkin untuk lalu lintas streaming tertentu) untuk diteruskan, kemungkinan melalui gateway ISP kedua. Ini berhubungan dengan konfigurasi Mangle dan Routing. - Kriteria: Memiliki
routing-markto-ISP2. - Tindakan: Terima (
accept).
- Fungsi: Mengizinkan lalu lintas yang telah ditandai dengan routing mark
-
Rule 22: Drop Non-Whitelist from WAN
- Fungsi: Memblokir semua lalu lintas dari WAN yang mencoba melewati router, KECUALI jika IP sumbernya ada di
white-list. Ini adalah aturan yang sangat ketat dan mungkin perlu ditinjau kembali tergantung pada kebutuhan jaringan (misalnya, apakah klien LAN diizinkan mengakses Internet secara bebas?). Catatan: Aturan ini, jika dikombinasikan dengan Rule 26, secara efektif memblokir semua akses Internet untuk klien LAN yang tidak di-whitelist, kecuali untuk lalu lintas yang diizinkan secara eksplisit di aturan sebelumnya (seperti Rule 14 untuk established connection).
- Fungsi: Memblokir semua lalu lintas dari WAN yang mencoba melewati router, KECUALI jika IP sumbernya ada di
-
Rule 23 & 24: Block Direct DNS to WAN
- Fungsi: Memblokir klien lokal agar tidak menggunakan server DNS eksternal secara langsung (misalnya, Google DNS 8.8.8.8). Ini memaksa klien untuk menggunakan server DNS router (jika dikonfigurasi sebagai caching resolver) atau server DNS internal yang ditunjuk. Ini bagus untuk keamanan dan pemfilteran DNS.
- Kriteria: Protokol UDP/TCP, tujuan port 53, keluar melalui interface list
WAN. - Tindakan: Buang (
drop).
-
Rule 25: Drop Port Scanners Forward
- Fungsi: Mendeteksi dan memblokir upaya pemindaian port yang mencoba melewati router (misalnya, dari satu host LAN ke host LAN di subnet lain, atau dari host LAN yang terinfeksi ke Internet).
- Kriteria: Sama seperti Rule 8, tetapi diterapkan di chain FORWARD.
- Tindakan: Buang (
drop).
-
Rule 26: Drop All Other FORWARD (Implicit Deny)
- Fungsi: Aturan "tangkap-semua" terakhir untuk chain FORWARD. Semua lalu lintas yang mencoba melewati router dan tidak diizinkan oleh aturan 14-25 akan diblokir.
- Tindakan: Buang (
drop).
Ringkasan Alur (Flow)
Secara umum, alur pemrosesan paket dalam konfigurasi ini adalah sebagai berikut:
-
Paket Masuk: Router menentukan apakah paket ditujukan untuk dirinya sendiri (INPUT) atau untuk tujuan lain (FORWARD).
-
Prioritas Keamanan: Baik pada chain INPUT maupun FORWARD, aturan pertama selalu memprioritaskan koneksi yang sah (
established,related) dan membuang paket yang rusak (invalid). -
Izin Khusus: Selanjutnya, akses diberikan berdasarkan kriteria yang sangat spesifik dan terpercaya:
- Whitelist IP manajemen.
- Interface VPN manajemen yang aman.
- Interface lokal/LAN (dengan batasan tertentu seperti hanya ICMP ke router).
- Akses ke layanan publik yang sengaja dibuka (seperti Web Server di FORWARD atau port publik tertentu di INPUT).
-
Perlindungan Aktif: Di tengah-tengah, terdapat aturan perlindungan aktif untuk mendeteksi dan memblokir serangan:
- Deteksi Port Scanner.
- Perlindungan Brute-Force SSH.
- Rate Limiting untuk perlindungan DDoS sederhana.
- Pemblokiran IP jahat (bad bots).
-
Pembatasan & Kontrol: Aturan selanjutnya membatasi lalu lintas yang tidak diinginkan:
- Memblokir akses manajemen dari WAN.
- Memaksa penggunaan DNS internal dengan memblokir DNS langsung ke WAN.
-
Implicit Deny (Tolak Semua): Aturan terakhir di setiap chain (
Drop All Other...) memastikan bahwa apa pun yang tidak secara eksplisit diizinkan akan ditolak. Ini adalah fondasi dari firewall yang aman.
Catatan: Konfigurasi ini sangat ketat, terutama di chain FORWARD. Pastikan bahwa aturan NAT (Masquerade) sudah dikonfigurasi dengan benar dan bahwa aturan firewall ini tidak secara tidak sengaja memblokir akses Internet yang sah untuk klien LAN Anda, kecuali itu memang tujuan yang diinginkan.