MikroTik Firewall: Üretim Ortamında Mutlaka Olması Gereken 12 Kural ve Otomasyonu
MikroTik firewall üretim ortamı checklist: 12 zorunlu kural, açıklamaları, performans etkileri ve otomasyon scriptleri.
Devamını Oku →
Penetrasyon test raporlarımda en sık gördüğüm zafiyetlerin %70’i, cihaz konfigürasyonunun “default” bırakılmasından kaynaklanır. Müşteri bir MikroTik alır, internete bağlar, “çalışıyor” deyip işine bakar. Üç ay sonra brute-force ile yönetim parolası kırılır, IoT cihazları botnet’e katılır veya routerOS açıkları üzerinden lateral movement başlar. Bu yazıda, bir MikroTik cihazını “fabrika ayarları”ndan “saldırı yüzeyi minimize edilmiş kurumsal düzey güvenlik konfigürasyonu”na taşımanın eksiksiz bir kontrol listesini vereceğim. Her başlıkta hem teorik altyapıyı hem de uygulanacak komutları paylaşacağım. Bu rehberi 1-2 saat içinde uygularsanız, cihazınızın saldırı yüzeyi dramatik biçimde küçülür ve büyük çoğunluk saldırı vektörü kapanır.
Hardening yapmadan önce “saldırı yüzeyi” kavramını netleştirmek gerekir. Bir MikroTik cihazının saldırı yüzeyi şu unsurlardan oluşur:
Bu listeyi mental olarak “ev” gibi düşünün. Ön kapınız ne kadar sağlam olursa olsun, arka pencereniz açıksa hırsız oradan girer. Hardening, her giriş noktasını tek tek kontrol altına almaktır.
Hardening’in birinci kuralı: en güncel stabil RouterOS sürümünde olun. MikroTik, “long-term” ve “stable” diye iki release kanalı sunar. Production ortamları için long-term tercih edilmelidir; daha az sık güncellenir ama daha test edilmiş ve kararlıdır.
/system package update set channel=long-term
/system package update check-for-updates
/system package update install
Güncelleme öncesi mutlaka backup alın:
/system backup save name=pre-upgrade-backup
/export file=pre-upgrade-config
2024 ve 2025’te MikroTik için yayımlanan kritik CVE’lerin neredeyse tümü, sürüm yükseltmesiyle kapatıldı. Eski 6.x serisinde kalan cihazlar (özellikle 6.49 öncesi) ciddi risk altındadır. RouterOS 7.x serisine geçiş, hem güvenlik hem de modern özellikler açısından kritiktir.
MikroTik’in default kullanıcısı “admin” parolasız gelir. Bu durum CVE’lerin yarısının başlangıç noktasıdır.
/user add name=netadmin group=full password="GuvenliBirParola_Min24Karakter!" address=10.0.0.0/24
/user disable admin
İdeal yaklaşım: “admin” kullanıcısını tamamen disable edin (silmek yerine, çünkü silmek bazı edge case’lerde sorun çıkarabilir), kendi unique kullanıcı adınızı oluşturun. Parola politikası:
Kullanıcı oluştururken address=10.0.0.0/24 parametresi, o kullanıcının yalnızca belirli bir IP aralığından bağlanmasına izin verir. Bu, parola compromise edilse bile saldırganın doğru ağdan bağlanmadıkça kullanılamaması anlamına gelir.
MikroTik default olarak Telnet, FTP, WWW (HTTP) gibi şifresiz protokolleri açık tutar. Bunlar 2026’da kabul edilemez.
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set www-ssl disabled=no port=443
set api disabled=yes
set api-ssl disabled=no port=8729
set ssh port=22022
set winbox port=8291
Aktif kalan servisler için yapılması gerekenler:
/user ssh-keys import public-key-file=id_ed25519.pub user=netadmin
/ip ssh set allow-none-crypto=no strong-crypto=yes
Public key import edildikten sonra, parola ile bağlantıyı tamamen disable edebilirsiniz (sadece dikkatli olun, key kaybı sizi cihazdan kilitleyebilir; daima backup access yolu hazır tutun).
RouterOS’ta her servisin “address” parametresi vardır. Bu parametre, servisin sadece belirli IP aralıklarından erişilebilir olmasını sağlar.
/ip service
set ssh address=10.0.0.0/24,185.x.x.0/29
set winbox address=10.0.0.0/24,185.x.x.0/29
set www-ssl address=10.0.0.0/24,185.x.x.0/29
set api-ssl address=10.0.0.0/24
Bu sayede tüm yönetim servisleri sadece tanımlı ağlardan erişilebilir hale gelir. Internet’ten yönetim panelinin bile görünmemesi sağlanır.
Yönetim servislerinin IP kısıtlaması yetmez; firewall filter kuralları ile çift katman koruma sağlamak gerekir.
/ip firewall address-list
add list=admin-trusted address=10.0.0.0/24 comment="Yonetim subnet"
add list=admin-trusted address=185.x.x.0/29 comment="Ofis VPN cikis IP'si"
/ip firewall filter
# State-based hizli accept
add chain=input action=accept connection-state=established,related comment="Established/related"
add chain=input action=drop connection-state=invalid comment="Drop invalid"
# Trusted yonetim
add chain=input action=accept src-address-list=admin-trusted protocol=tcp dst-port=22022,8291,443
comment="Admin SSH/Winbox/HTTPS"
# ICMP rate-limited
add chain=input action=accept protocol=icmp limit=10,20:packet comment="ICMP rate limited"
# Drop digerleri
add chain=input action=drop log=yes log-prefix="INPUT-DROP" comment="Default deny input"
SSH ve Winbox portlarına gelen brute-force denemelerini otomatik bloklamak için meşhur “stage” pattern’i:
/ip firewall filter
add chain=input protocol=tcp dst-port=22022,8291 src-address-list=bf-blacklist action=drop
comment="Drop blacklisted"
add chain=input protocol=tcp dst-port=22022,8291 connection-state=new src-address-list=bf-stage3
action=add-src-to-address-list address-list=bf-blacklist address-list-timeout=1w
add chain=input protocol=tcp dst-port=22022,8291 connection-state=new src-address-list=bf-stage2
action=add-src-to-address-list address-list=bf-stage3 address-list-timeout=1m
add chain=input protocol=tcp dst-port=22022,8291 connection-state=new src-address-list=bf-stage1
action=add-src-to-address-list address-list=bf-stage2 address-list-timeout=1m
add chain=input protocol=tcp dst-port=22022,8291 connection-state=new
action=add-src-to-address-list address-list=bf-stage1 address-list-timeout=1m
Bu kural seti, bir IP’den dakikada 4 üstünde bağlantı denemesi olursa o IP’yi 1 hafta bloklar. Bu kombinasyon, internet’ten gelen brute-force trafiğinin neredeyse tamamını otomatik durdurur.
SNMP, ağ monitoring için kullanılır ancak default community “public” ile son derece tehlikelidir. SNMP v1/v2c, plain-text kimlik bilgisi taşır.
/snmp community
remove [find name=public]
add name=read-monitor security=none addresses=10.0.0.50/32 read-access=yes write-access=no
# Tercihen SNMPv3 kullan
/snmp set enabled=yes contact="[email protected]" location="DC1-Rack5"
Best practice: SNMPv3 kullanın, authentication+encryption (authPriv) modunda. SNMPv1/v2c ancak iç güvenli ağda ve sadece read-only ile kullanılabilir.
RouterOS, default olarak komşu cihaz keşfi (Discovery Protocol) ve bandwidth test server özelliklerini açık tutar. Bunlar bir saldırgana hedef hakkında bilgi verir.
# Discovery kapat (sadece guvenli ic interface'lerde acik birak)
/ip neighbor discovery-settings set discover-interface-list=mgmt-only
# Bandwidth test server'i kapat
/tool bandwidth-server set enabled=no
# Romon kapat (eger kullanmiyorsan)
/tool romon set enabled=no
# MAC server kapat
/tool mac-server set allowed-interface-list=none
/tool mac-server mac-winbox set allowed-interface-list=none
/tool mac-server ping set enabled=no
Doğru zaman, hem güvenlik logları hem de TLS sertifika doğrulaması için kritik. NTP konfigürasyonu:
/system clock set time-zone-name=Europe/Istanbul
/system ntp client set enabled=yes servers=tr.pool.ntp.org,time.google.com
Logging, saldırı tespitinin temelidir. Yerel disk yeterli değildir; mutlaka remote syslog gerekir:
/system logging action
add name=remote-syslog target=remote remote=10.0.0.100 remote-port=514
/system logging
add topics=info action=remote-syslog
add topics=warning action=remote-syslog
add topics=error action=remote-syslog
add topics=firewall action=remote-syslog
add topics=system,account action=remote-syslog
Best practice: log’lar SIEM’e (Splunk, Elastic, Graylog) gönderilmeli ve şu olaylar için alarm tanımlanmalı:
WAN tarafında gelen tüm bilinen-kötü, bogon ve internal range trafiği erken drop edilmelidir. Bunun için raw chain kullanılır:
/ip firewall address-list
add list=bogons address=0.0.0.0/8
add list=bogons address=10.0.0.0/8
add list=bogons address=100.64.0.0/10
add list=bogons address=127.0.0.0/8
add list=bogons address=169.254.0.0/16
add list=bogons address=172.16.0.0/12
add list=bogons address=192.0.0.0/24
add list=bogons address=192.0.2.0/24
add list=bogons address=192.168.0.0/16
add list=bogons address=198.18.0.0/15
add list=bogons address=198.51.100.0/24
add list=bogons address=203.0.113.0/24
add list=bogons address=224.0.0.0/4
add list=bogons address=240.0.0.0/4
/ip firewall raw
add chain=prerouting action=drop in-interface=ether1-wan src-address-list=bogons
comment="Drop bogons from WAN"
IPv6 desteği aktif olduğunda, IPv4 için yaptığınız hardening’i IPv6 için de tekrarlamak gerekir. Tipik bir hata: IPv4 firewall titiz, ancak IPv6 trafiği için hiçbir kural yok. Sonuç olarak cihaz tüm yönetim servisleri IPv6 üzerinden internete açık.
/ipv6 firewall filter
add chain=input action=accept connection-state=established,related
add chain=input action=drop connection-state=invalid
add chain=input action=accept src-address-list=admin-trusted-v6 protocol=tcp dst-port=22022,8291,443
add chain=input action=accept protocol=icmpv6 limit=10,20:packet
add chain=input action=drop log=yes log-prefix="INPUT-V6-DROP"
RouterOS’un DNS server’ı, default olarak public erişime kapalıdır ancak yanlış konfigürasyon DNS amplification saldırılarına aracı olabilir.
/ip dns set allow-remote-requests=no
/ip dns set servers=1.1.1.1,8.8.8.8 use-doh-server="https://cloudflare-dns.com/dns-query" verify-doh-cert=yes
DNS over HTTPS (DoH) kullanmak, DNS sorgularını şifreler ve ISP’nin görmesini engeller. Kritik altyapılarda önerilir.
Cihazın HTTPS yönetim arayüzü ve API SSL servisleri için valid sertifika kullanmak gerekir. Self-signed sertifikalar tarayıcıda uyarı verir ve admin’in “uyarıyı geç” alışkanlığı kazanmasına neden olur.
/certificate
import file=letsencrypt-cert.pem
import file=letsencrypt-key.pem
/ip service set www-ssl certificate=letsencrypt-cert
/ip service set api-ssl certificate=letsencrypt-cert
Let’s Encrypt sertifikalarının 90 günlük geçerliliği vardır; otomatik renewal scripti yazmak best practice’dir.
Cihaz kompromize edildiğinde veya arızalandığında hızla geri dönmek için sistematik backup planı:
/system scheduler
add name=daily-backup interval=1d start-time=03:00 on-event=":do {
/system backup save name=("backup-" . [/system clock get date]);
/export file=("export-" . [/system clock get date]);
/tool fetch upload=yes url="ftp://backup-server/mikrotik/"
src-path=("backup-" . [/system clock get date] . ".backup")
user=backup password=backuppassword;
}"
Backup’lar harici, immutable bir konuma alınmalıdır. Cihaz üzerinde tutulan backup, ransomware durumunda işe yaramaz.
RouterOS 7.x ile birlikte container desteği geldi. Bu güzel bir feature ancak yeni saldırı yüzeyi de açar. Container’ları çalıştırırken:
Scripts da kontrol edilmeli. Tipik script bypass tekniği: bir saldırgan scheduler’a kendi scriptini ekler. Periyodik /system script print ve /system scheduler print ile beklenmedik kayıtlar arayın.
Hardening’i bitirdikten sonra, kendi cihazınıza karşı basit bir penetrasyon testi yapın. Bir Kali VM’de:
# Port scan
nmap -sV -p 1-65535 router-ip
# SSH brute-force test (Hydra ile)
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://router-ip:22022
# Winbox port test
nmap -sV -p 8291 router-ip
# SNMP enumeration
snmpwalk -v2c -c public router-ip
Eğer hardening doğru yapılmışsa:
Kurumsal ortamlarda hardening, sadece teknik bir konu değil compliance gereksinimidir. ISO 27001, PCI-DSS, NIST CSF gibi standartlar şu kontrolleri arar:
MikroTik’in NetXMS, LibreNMS, Zabbix gibi monitoring araçlarıyla entegre edilmesi, bu kontrolleri sürdürülebilir hale getirir.
Hardening tek başına yeterli değildir; saldırı denemelerini görmek için aktif monitoring gerekir. MikroTik üzerinde aşağıdaki metrikler düzenli izlenmelidir:
Bu metriklerin grafiklere dönüştürülmesi için LibreNMS, Zabbix veya Grafana + InfluxDB kombinasyonu önerilir. Anomali tespiti için temel statik eşikler (örneğin “saatlik drop count > 1000 ise alarm”) yeterlidir; ancak ML tabanlı baseline detection daha hassas alarm üretir.
Hardening sadece dış saldırılara karşı değildir. İç tehditler de eşit derecede önemlidir. MikroTik’te tüm yönetim erişimleri “full” grubuyla yapılmamalı; rol bazlı kullanıcı grupları oluşturulmalıdır:
/user group
add name=monitor-only policy=read,test,winbox,api,sniff,!ftp,!password,!policy,!sensitive,!web
add name=netops policy=read,write,policy,winbox,api,test,!ftp,!password,!sensitive,!web
add name=auditor policy=read,winbox,api,!ftp,!password,!policy,!sensitive,!web
/user
add name=monitor1 group=monitor-only password="..." address=10.0.0.50
add name=netops1 group=netops password="..." address=10.0.0.10
add name=audit1 group=auditor password="..." address=10.0.0.60
Bu yapı sayesinde “monitor” rolündeki ekip elemanı sadece read yapar, “netops” değişiklik yapabilir, “auditor” config’leri inceler ama değiştiremez. Privilege creep önlenmiş olur.
Çoğu kural marjinal CPU yükü yaratır. Fark, brute-force atak veya volumetric saldırı altında ortaya çıkar; bu durumda hardening yapılmış cihaz çalışmaya devam ederken yapılmamış cihaz çöker.
Acil olarak: parolayı değiştirin, tüm aktif user session’larını sonlandırın, son 30 günün log’larına bakıp şüpheli aktivite arayın, eğer kompromize belirtisi varsa fabrika reset yapıp temizden başlayın.
Evet. Guest VLAN’ı tamamen yönetim ağından izole edin, IoT cihazlardan ayrı tutun, internete-only erişim verin, bandwidth limit uygulayın.
Temel prensipler aynı. Yenilikler: container hardening, WireGuard VPN ile site-to-site, yeni LDAP entegrasyon seçenekleri. Eski 6.x’tan gelen kuralların büyük çoğunluğu çalışır.
Periyodik penetration test (en az yılda bir), vulnerability scanner kullanımı (Nessus, OpenVAS), config audit araçları (NIPPER) ve manuel review. Ayrıca STIG benzeri MikroTik hardening rehberleri (Tiknetwork, Mansis vb.) ile karşılaştırma yapılabilir.
MikroTik hardening, tek seferlik bir iş değil sürekli bir disiplindir. Bu yazıdaki 20 maddelik kontrol listesi, cihazınızın saldırı yüzeyini %80-90 oranında küçültür ve internetten gelen otomatik saldırıların büyük çoğunluğunu durdurur. Ancak hardening’in gerçek değeri, periyodik audit, log monitoring ve incident response süreçleri ile birleştiğinde ortaya çıkar. Bir cihazı sertleştirmek bir defaya mahsus bir konfigürasyon değildir; sürekli bir güvenlik kültürünün cihaza yansımasıdır. Bu rehberi uyguladıktan sonra cihazınızı kendi başınıza penetration test edin, sonuçlardan öğrenin, ve düzenli olarak (en az 6 ayda bir) bu kontrol listesini tekrar gözden geçirin. Güvenlik, yapılan bir iş değil yaşanan bir süreçtir.
Konuyu daha geniş ele almak için aşağıdaki yazılarımıza da göz atabilirsiniz: TCP Flood Saldırıları: MikroTik 3 Katmanlı Savunma; MikroTik Firewall Mimarisinin Detayları: Chain, Action, Connection-State ve Best Practice; Firewall Nedir? Tarihçesinden Modern Uygulamalarına Kavramsal Rehber; Firewall Türleri Karşılaştırması: Packet Filter, Stateful, Proxy, NGFW ve WAF.
Bu yazıdaki konuları derinleştirmek için aşağıdaki otoriter kaynaklara başvurabilirsiniz:
Mikrotik hardening için gereksiz servisleri kapatın, yönetimi sınırlandırın:
# Kullanılmayan servisleri kapat, yönetimi güven ağına sınırla
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set winbox address=10.0.0.0/24
set ssh address=10.0.0.0/24 port=2200
# Varsayılan admin'i kaldır, SSH key ile yeni yönetici
/user add name=netadmin group=full password="G-uclu-Parola!"
/user ssh-keys import public-key-file=netadmin.pub user=netadmin
/user remove admin
# Neighbor discovery ve MAC-winbox kapat
/ip neighbor discovery-settings set discover-interface-list=none
/tool mac-server set allowed-interface-list=none
Profesyonel sıkılaştırma için Firewall ve Güvenlik Hizmetimize danışın.