İçeriğe geç
Teknik Orta 12 dk okuma

MikroTik Firewall — Brute Force Koruması ve Production-Ready Kural Seti

RouterOS firewall chain yapısı, aşamalı SSH brute force koruması, address list ile otomatik blacklist, VLAN izolasyonu ve production-ready kural seti. Satır satır config, her kural açıklamalı.

Erdem Özyurt

· Güncellendi:

Özet: RouterOS’ta firewall kuralı yazmak kolay — doğru sırada, doğru chain’de, doğru mantıkla yazmak zor. Bu yazıda aşamalı brute force koruması (3-strike), temel güvenlik kural seti, VLAN izolasyonu ve production-ready konfigürasyon var. Her komut açıklamalı, her kural numaralı.


Problem

Dakikada 200+ SSH bağlantı denemesi, 3 farklı IP, 3 farklı ülke. Botnet. CPU %73’e çıkmış.

Tek IP engellemek çözüm değil — yarın başka bir IP gelir. Davranış bazlı engelleme lazım.


RouterOS Firewall — Chain Yapısı

Her paket RouterOS’a girdiğinde üç chain’den birinden geçer:

ChainNe Kontrol EderÖrnek
inputRouter’a gelen trafikSSH, WinBox, VPN bağlantıları
forwardRouter’dan geçen trafikLAN→internet, VLAN arası
outputRouter’dan çıkan trafikNTP, DNS sorguları

Kurallar yukarıdan aşağıya işlenir. İlk eşleşen uygulanır. Sıra her şey.

Varsayılan politika: accept. Kural yoksa her şey geçer (MikroTik Docs, 2025). Son kural her zaman drop olmalı.

Not: Güvenlik cihazı olarak satılan router, kutudan çıktığında her şeye açık. Varsayılanları değiştirmeden production’a çıkmayın.


Aşamalı Brute Force Koruması — 3 Strike Sistemi

Mantık: İlk deneme → izle. İkinci deneme → uyar. Üçüncü deneme → 10 gün engelle.

Normal bir kullanıcı SSH’a en fazla 1-2 kez yanlış girer. Üçüncü deneme normal değil.

/ip firewall filter

# Blacklist'teki IP'leri düşür — EN ÜSTTE olmalı
add chain=input action=drop src-address-list=ssh-blacklist \
    comment="SSH BF: Drop blacklisted"

# 3. deneme → blacklist (10 gün)
add chain=input action=add-src-to-address-list \
    protocol=tcp dst-port=22 connection-state=new \
    src-address-list=ssh-stage2 \
    address-list=ssh-blacklist address-list-timeout=10d \
    comment="SSH BF: 3rd strike → blacklist"

# 2. deneme → stage2 (1dk pencere)
add chain=input action=add-src-to-address-list \
    protocol=tcp dst-port=22 connection-state=new \
    src-address-list=ssh-stage1 \
    address-list=ssh-stage2 address-list-timeout=1m \
    comment="SSH BF: 2nd strike → stage2"

# 1. deneme → stage1 (1dk pencere)
add chain=input action=add-src-to-address-list \
    protocol=tcp dst-port=22 connection-state=new \
    address-list=ssh-stage1 address-list-timeout=1m \
    comment="SSH BF: 1st strike → stage1"

Kural sırası kritik: drop en üstte, aşamalar 3→2→1 sırasıyla. Ters yazarsanız çalışmaz — ilk eşleşen kural uygulanır, geri kalanı hiç değerlendirilmez.

Sonuç: 15 dakika içinde 3 IP blacklist’e düştü. CPU %73 → %8.


Temel Güvenlik Kural Seti

Her MikroTik router’da olması gereken minimum konfigürasyon:

/ip firewall filter

# ─── ESTABLISHED + RELATED ───
add chain=input action=accept connection-state=established,related \
    comment="01-Input: Accept established"
add chain=forward action=accept connection-state=established,related \
    comment="02-Fwd: Accept established"

# ─── INVALID DROP ───
add chain=input action=drop connection-state=invalid \
    comment="03-Input: Drop invalid"
add chain=forward action=drop connection-state=invalid \
    comment="04-Fwd: Drop invalid"

# ─── ICMP RATE LIMIT ───
add chain=input action=accept protocol=icmp \
    limit=50/5s,10:packet comment="05-Input: ICMP rate-limit"
add chain=input action=drop protocol=icmp \
    comment="06-Input: Drop excess ICMP"

# ─── YÖNETİM ERİŞİMİ — sadece mgmt VLAN ───
add chain=input action=accept src-address=192.168.10.0/24 \
    protocol=tcp dst-port=22,8291,443 \
    comment="08-Input: Management from mgmt VLAN only"

# ─── WAN'DAN YÖNETİM PORTLARINI KAPAT ───
add chain=input action=drop in-interface-list=WAN \
    protocol=tcp dst-port=22,23,8291 \
    comment="09-Input: Block management from WAN"

# ─── VPN (IKEv2) ───
add chain=input action=accept protocol=udp dst-port=500,4500 \
    comment="10-Input: IKEv2"
add chain=input action=accept protocol=ipsec-esp \
    comment="11-Input: IPSec ESP"

# ─── CATCH-ALL DROP ───
add chain=input action=drop comment="99-Input: Drop all"
add chain=forward action=drop comment="99-Fwd: Drop all"

Interface list tanımı:

/interface list
add name=WAN
add name=LAN
/interface list member
add interface=ether1 list=WAN
add interface=bridge-lan list=LAN

Neden bu sıra: Established en üstte çünkü trafiğin çoğu mevcut bağlantılar — hızlıca geçirmek CPU’yu rahatlatır. Invalid hemen sonra çünkü meşru trafik değil. Catch-all en altta çünkü yukarıdaki hiçbir kurala uymayan = istenmeyen trafik.


Address List: Whitelist + Dinamik Blacklist

Brute force koruması kendi IP’nizi de engelleyebilir. Whitelist olmadan uzaktan çalışıyorsanız kendinizi kilitlersiniz.

/ip firewall address-list
add address=203.0.113.10 list=mgmt-whitelist comment="Ofis dışı yönetim"
add address=192.168.10.0/24 list=mgmt-whitelist comment="Mgmt VLAN"

/ip firewall filter
add chain=input action=accept src-address-list=mgmt-whitelist \
    protocol=tcp dst-port=22,8291 \
    comment="00-Input: Whitelist — BF bypass"
# ↑ Bu kural TÜM brute force kurallarından ÖNCE

VLAN İzolasyonu — 3 VLAN’lı KOBİ Senaryosu

Üretim hattı, muhasebe ve misafir WiFi aynı ağda olmamalı. Bir ağ taraması PLC’yi durdurabilir, misafir cihazı iç kaynaklara erişebilir.

Yönetim (VLAN 10), Personel (VLAN 20), Misafir (VLAN 30):

/ip firewall filter

# Her VLAN internete çıkabilir
add chain=forward action=accept in-interface=vlan10 \
    out-interface-list=WAN comment="Fwd: Mgmt → WAN"
add chain=forward action=accept in-interface=vlan20 \
    out-interface-list=WAN comment="Fwd: Staff → WAN"
add chain=forward action=accept in-interface=vlan30 \
    out-interface-list=WAN comment="Fwd: Guest → WAN"

# Misafir tam izole — sadece internet
add chain=forward action=drop in-interface=vlan30 \
    comment="Fwd: Guest isolation"

# Yönetim → Personel erişebilir
add chain=forward action=accept in-interface=vlan10 \
    out-interface=vlan20 comment="Fwd: Mgmt → Staff"

# Personel → Yönetim erişemez
add chain=forward action=drop in-interface=vlan20 \
    out-interface=vlan10 comment="Fwd: Staff → Mgmt block"
VLANİnterneteDiğer VLAN’laraYönetime
10 — Yönetim192.168.10.0/24✅ Hepsine
20 — Personel192.168.20.0/24
30 — Misafir192.168.30.0/24

Loglama — Seçici Logla

Her paketi loglamak CPU yakar. Sadece anlamlı trafiği loglayın:

# Sadece WAN'dan gelen yeni bağlantıları logla
add chain=input action=log log-prefix="[WAN-NEW] " \
    connection-state=new in-interface-list=WAN \
    comment="Log: New WAN connections"

Graylog’a gönderme:

/system logging action
add name=remote target=remote remote=192.168.10.200 \
    remote-port=514 bsd-syslog=yes
/system logging
add action=remote topics=firewall

Log’da dikkat edilecekler:

  • Aynı IP’den yüzlerce deneme → port scan veya brute force
  • dst-port=22,3389,23,445 → yönetim portlarına hedefli saldırı
  • Gece içeriden dışarıya büyük transfer → veri sızdırma belirtisi

Safe Mode — Uzaktan Konfigürasyonda Zorunlu

Uzaktan firewall kuralı yazarken kendinizi kilitleme riski var. Safe Mode bunu önler.

Ctrl+X → Safe Mode aktif
Kuralları yazın.
9 dakika içinde onaylamazsanız → otomatik geri al.

Not: Whitelist olmadan, Safe Mode olmadan uzaktan kural yazarsanız fiziksel erişim gerekir. Console kablo veya MAC-Telnet ile kurtarabilirsiniz — ama cihaz uzaktaysa yola çıkarsınız.


NAT Kuralları

/ip firewall nat

# Masquerade — LAN → WAN çıkışı
add chain=srcnat action=masquerade out-interface-list=WAN

# Port forward — web sunucusu
add chain=dstnat action=dst-nat \
    protocol=tcp dst-port=80,443 in-interface-list=WAN \
    to-addresses=192.168.20.100 to-ports=80,443

# Hairpin NAT — iç ağdan public IP'ye erişim
add chain=srcnat action=masquerade \
    out-interface=bridge-lan dst-address=192.168.20.100

Brute Force vs Rate Limit vs Port Knocking

YöntemGüçlü YönüZayıf YönüNe Zaman
3-Strike (bu yazı)Davranış bazlı, otomatikWhitelist gerekirGenel kullanım
Rate LimitBasit kuralSofistike saldırıyı kaçırırEk katman olarak
Port KnockingPortu gizlerKarmaşık, hata riskiYüksek güvenlik
Fail2Ban (Linux)Log analizi, esnekMikroTik’te yokLinux sunucularda

3-Strike çoğu senaryoda yeterli. Port knocking ekleyecekseniz, önce 3-strike’ın düzgün çalıştığından emin olun.


Uygulama Adımları

  1. Safe Mode açın — Ctrl+X
  2. Mevcut kuralları yedekleyin — /ip firewall filter export file=fw-backup
  3. Whitelist’e kendi IP’nizi ekleyin
  4. Kuralları sırasıyla ekleyin — established üstte, drop altta
  5. Test edin — başka bir ağdan SSH deneyin, blacklist çalışıyor mu?
  6. Safe Mode’u onaylayın — Ctrl+X tekrar

💼 KOBİ perspektifinden firewall kontrol listesi ve hemen uygulanabilir adımlar: SiberKale — Şirket Ağınız Saldırıya Açık mı?


Ekipman: MikroTik hAP ax³ (RouterOS 7.x), Zabbix 6.4, Graylog 5.x

Referanslar: MikroTik RouterOS Firewall Docs, RFC 2827 — BCP 38, SANS SSH Brute Force Analysis, CVE-2023-30799

#mikrotik #firewall #routeros #brute-force #ssh #address-list #vlan #siber-guvenlik
Paylaş: 𝕏 Twitter LinkedIn

Sıkça Sorulan Sorular

MikroTik'te varsayılan firewall politikası nedir?

RouterOS'ta varsayılan politika 'accept' — kural yazılmamışsa her trafik geçer. Son kural olarak drop eklemek zorunlu. RFC 2827 (BCP 38) de giriş filtrelemesini önerir.

Input chain ile forward chain farkı nedir?

Input chain router'ın kendisine gelen trafiği kontrol eder — SSH, WinBox, VPN. Forward chain router üzerinden geçen trafiği kontrol eder — LAN'dan internete çıkış, VLAN arası trafik. Output chain ise router'dan çıkan trafiği (NTP, DNS sorguları) kontrol eder.

Brute force koruması kendi IP'mi engellerse ne yaparım?

Console kablo veya MAC-Telnet ile bağlanıp /ip firewall address-list'ten IP'nizi kaldırın. Daha iyisi: baştan mgmt-whitelist address list'ine kendi IP'nizi ekleyin ve whitelist kuralını brute force kurallarından önce koyun.

Safe Mode nedir ve neden kullanmalıyım?

Ctrl+X ile aktif edilir. Kural değişikliği yaptıktan sonra 9 dakika içinde onaylamazsanız RouterOS otomatik olarak eski duruma döner. Uzaktan konfigürasyonda kendinizi kilitlemekten korur.

Firewall kurallarında sıralama neden önemli?

RouterOS kuralları yukarıdan aşağıya işler — ilk eşleşen kural uygulanır, geri kalanı atlanır. Drop kuralını established kuralından önce koyarsanız meşru trafik de düşer. Sıra her şey.

Erdem Özyurt

IT Danışmanı · ISP Altyapı · Siber Güvenlik · Sakarya

Kablo döşemekten kod yazmaya, ağ tasarımından web geliştirmeye — Layer 1'den Layer 7'ye bütünlük içinde çalışıyorum.

Hakkımda daha fazla →