Filter Website dengan Content dan L7 Protocol

Updated on April 12, 2026

Konsep dasar dulu jangan skip bagian ini

Bayangkan router itu seperti satpam di pintu gerbang kantor. Setiap orang (paket data) yang mau keluar-masuk harus lewat satpam itu. Firewall adalah daftar aturan yang satpam pegang: “Kalau ada tamu dari sini mau pergi ke sana, tolak.”

Di MikroTik, aturan-aturan itu disebut rule, dan satpam bekerja dari atas ke bawah. Rule pertama dicek duluan. Kalau cocok, rule di bawahnya tidak dibaca lagi.


Dua cara memblokir website

Ada dua pendekatan. Masing-masing punya cara kerja dan keterbatasan yang berbeda.


Cara 1: Filter dengan Content

Cara kerjanya

Parameter content memerintahkan router untuk membaca isi (payload) paket data. Kalau di dalam paket itu ada teks yang cocok, paket dibuang.

Ini cocok untuk HTTP biasa (port 80). Untuk HTTPS (port 443), cara ini kurang efektif karena isi paket sudah terenkripsi — router tidak bisa “membaca” isinya.

Langkah implementasi (CLI)

Skenario: blokir Facebook untuk semua user LAN (misal subnet 192.168.88.0/24).

Langkah 1 — Masuk ke terminal MikroTik (via WinBox: klik New Terminal, atau SSH).

Langkah 2 — Ketik perintah ini:

ip firewall filter add chain=forward protocol=tcp dst-port=80,443 content=.facebook.com action=drop

Penjelasan setiap parameter:

  • chain=forward → paket yang melewati router (dari LAN ke internet). Bukan input (yang menuju router sendiri).
  • protocol=tcp → HTTP dan HTTPS pakai protokol TCP.
  • dst-port=80,443 → port 80 = HTTP, port 443 = HTTPS.
  • content=.facebook.com → cari teks ini di dalam paket. Pakai titik di depan agar cocok juga dengan subdomain seperti www.facebook.com, m.facebook.com.
  • action=drop → buang paket, jangan diteruskan.

Langkah 3 — Verifikasi rule sudah masuk:

ip firewall filter print

Kamu akan melihat rule tadi muncul di daftar.

Lewat WinBox

  1. Klik menu IP → Firewall → tab Filter Rules → klik tombol “+”
  2. Di tab General: Chain = forward, Protocol = tcp, Dst. Port = 80,443
  3. Di tab Advanced: Content = .facebook.com
  4. Di tab Action: Action = drop
  5. Klik OK

Catatan penting dari sumber

Setelah rule ditambahkan, kadang pemblokiran tidak langsung aktif. Ini karena koneksi ke Facebook yang sudah terbuka sebelumnya (established) masih berjalan. Solusinya: restart router, atau tunggu koneksi lama putus sendiri.


Cara 2: Filter dengan L7 Protocol

Cara kerjanya

L7 Protocol (Layer 7 Protocol) bekerja dengan mencocokkan pola teks menggunakan Regular Expression (RegExp). Router memeriksa 10 paket pertama dari sebuah koneksi dan mencari pola tersebut.

Ini lebih fleksibel dari Content, tapi ada harganya: penggunaan RegExp membutuhkan resource CPU yang lebih tinggi dibanding fitur Firewall lainnya.

Regular Expression itu apa? Ini deretan karakter khusus yang mendefinisikan sebuah pola pencarian. Contoh simpel: pola youtube akan cocok dengan teks apapun yang mengandung kata “youtube”.

Langkah implementasi

Skenario: blokir YouTube untuk semua user LAN.

Langkah 1 — Buat L7 Protocol dulu. Di CLI:

ip firewall layer7-protocol add name=block-youtube regexp="r[0-9]+---[a-z]+-+[a-z0-9-]+\.googlevideo\.com"

Penjelasan regexp ini: pola r[0-9]+---[a-z]+-+[a-z0-9-]+\.googlevideo\.com mencocokkan format subdomain server video YouTube yang berakhiran .googlevideo.com.

Kamu tidak perlu hafal regexp-nya. Yang perlu dipahami adalah: regexp ini mendeskripsikan bentuk alamat server video YouTube, bukan alamatnya satu per satu.

Langkah 2 — Buat Filter Rule yang memakai L7 Protocol tadi:

ip firewall filter add chain=forward layer7-protocol=block-youtube action=drop

Langkah 3 — Verifikasi:

ip firewall filter print

Lewat WinBox

  1. IP → Firewall → tab Layer7 Protocols → klik “+” → isi Name dan Regexp → OK
  2. IP → Firewall → tab Filter Rules → klik “+”
  3. Tab General: Chain = forward, Protocol = tcp, Dst. Port = 80,443
  4. Tab Advanced: Layer7 Protocol = pilih yang tadi dibuat
  5. Tab Action: Action = drop → OK

Masalah posisi rule — ini yang paling sering bikin gagal

Router membaca rule dari atas ke bawah. Kalau rule accept sudah ada di posisi atas dan rule drop ada di bawah, maka paket sudah diterima sebelum sempat dicek oleh rule drop.

Ilustrasi:

Posisi 0: accept semua dari LAN     ← paket cocok di sini, langsung diterima
Posisi 1: drop facebook.com         ← tidak pernah terbaca

Seharusnya:

Posisi 0: drop facebook.com         ← dicek dulu
Posisi 1: accept semua dari LAN     ← baru ini

Untuk memindahkan rule, gunakan perintah:

ip firewall filter move [nomor_rule_sekarang] [nomor_posisi_tujuan]

Contoh: pindahkan rule nomor 2 ke posisi 0:

ip firewall filter move 2 0

Verifikasi dan monitoring

Cek apakah pemblokiran bekerja: Dari komputer client, buka browser dan akses situs yang diblokir. Hasilnya seharusnya timeout atau halaman tidak bisa dibuka.

Cek counter paket yang ter-drop:

ip firewall filter print stats

Output-nya akan menampilkan kolom packets dan bytes untuk setiap rule. Kalau rule drop-mu punya angka yang bertambah saat kamu coba akses situs tersebut, berarti rule bekerja.


Apa yang bisa salah (jebakan umum)

1. Lupa titik di depan nama domaincontent=facebook.com tidak akan cocok dengan www.facebook.com. Pakai content=.facebook.com.

2. Rule drop diletakkan setelah rule accept Ini yang paling sering terjadi. Router sudah “mengizinkan” paket sebelum sempat “memblokir”. Selalu cek urutan dengan ip firewall filter print.

3. L7 tidak memakai chain=forward Kalau chain salah (misalnya input), L7 tidak akan menangkap trafik dari client ke internet.

4. CPU melonjak karena L7 L7 memproses setiap paket. Kalau router kamu sudah sibuk, menambahkan banyak rule L7 bisa membuat router menjadi lambat. Gunakan L7 hanya untuk situs yang memang tidak bisa diblokir dengan Content biasa.

5. Pemblokiran tidak langsung aktif Koneksi yang sudah terjalin (established) tetap berjalan sampai putus. Restart router atau tunggu beberapa menit.


Kuis pemahaman (jawab dulu sebelum lanjut)

  1. Kamu menambahkan rule action=drop content=.tiktok.com, tapi setelah dicoba dari browser TikTok masih bisa dibuka. Kamu cek dengan ip firewall filter print stats dan counter di rule itu tetap 0. Apa kemungkinan penyebabnya?
  2. Apa perbedaan mendasar antara menggunakan content dan layer7-protocol untuk memblokir situs, dan dalam kondisi apa L7 lebih dipilih?
  3. Seorang teman bilang: “Aku sudah tambahkan rule drop YouTube di CLI, tapi aku lupa cek posisinya.” Perintah apa yang harus dijalankan untuk melihat urutan semua rule yang ada?

Next