İçeriği atlamak için "Enter"'a basın

[ÇÖZÜM] MikroTik Brute Force ve Port Scanner Saldırıları Nasıl Engellenir ?

Giriş

Brute Force (Kaba kuvvet) saldırıları MikroTik Router’ınız üzerindeki SSH, Telnet, Winbox servislerini veya yapmış olduğunuz port yönlendirme kurallarına ait cihazlarınızı ele geçirmek adına yapılan Kullanıcı adı / Şifre tahmini üzerine kurulu bir saldırı yöntemidir, Basit veya kolay tahmin edilebilir şifre kombinasyonlarının kullanıldığı yapılar hızlıca ele geçirilebilirken, güçlü şifreleme ile korunan sistemlerde, saldırganın gönderdiği birden fazla giriş isteğinin oluşturduğu çok sayıda trafik, Router’inizin sistem kaynaklarının aşırı düzeyde kullanılmasına sebep olarak yerel ağ ve internet deneyiminizin olumsuz yönde etkilenmesine sebep olmaktadır.

Yazımızın devamında paylaştığımız güvenlik duvarı kuralları, Her ilgili port ve protokol için dinamik adres listeleri oluşturarak; SSH, Telnet ve Winbox portlarına gelecek Brute Force saldırıları ile internet veya yerel ağ üzerinden gelecek port taramalarını engelleyecek.

Kod yapımızda Brute Force saldırıları SSH, telnet ve Winbox kurallarının her biri için ayrı ayrı olacak biçimde bir adet ‘’Jump’’ kuralı, bağlantı talep sıklığını kontrol eden Seviye1, Seviye2, Seviye3 Takip listesi adımı ve Kara Liste kuralı ile dört farklı Aşamadan geçerek engellenir.

Tasarlanan yapı bu sayede, gelen bağlantı taleplerine 3 defalığına hatalı istek talebi gönderme hakkı tanır, 3 başarısız denemeden sonra talebin geldiği kaynak 30 gün boyunca engellenecek biçimde kara listeye eklenerek engellenir.

Çalışma Mantığı

Örneğin; yeni bir Winbox (TCP 8291) bağlantı isteğinde bu ilgili güvenlik kuralları eklendikten sonra aşağıdaki sıralamaya göre kontrol ve koruma işlemi gerçekleştirecektir.

  • Yeni Winbox bağlantı isteği, ‘’(Winbox) Kara liste’’ isimli liste ile karşılaştırılıyor, bağlantı isteğinde bulunan ip adresi kara liste içerisinde bulunmuyorsa, ‘’Jump’’ kuralı yardımı ile bir sonraki adıma geçiyor. Bu sıralamada IP adresi kara listede yer alsaydı bağlantı isteği kara liste kuralı tarafından sonlandırılmış olacaktı.
  • ‘’Jump’’ kuralı, bağlantı isteğini ‘’(Winbox) Kara liste Zinciri’’ne göndererek gelen bağlantının 3 farklı seviye tarafından kontrol edilmesini sağlar.
  • Bağlantı dinamik olarak oluşturulan ‘’(Winbox) Seviye-3 Takip Listesi’’ isimli liste ile karşılaştırılıyor, bağlantının IP adresi listede bulunmuyorsa bir sonraki kontrol adımına geçilir. Eğer IP adresi listede bulunsaydı; Talebin geldiği IP adresi 30 gün boyunca engellenecek biçimde ‘’(Winbox) Kara liste’’ isimli kara listeye eklenecekti.
  • Bağlantı dinamik olarak oluşturulan ‘’(Winbox) Seviye-2 Takip Listesi’’ isimli liste ile karşılaştırılıyor, Bağlantının IP adresi listede bulunmuyorsa bir sonraki kontrol adımına geçilir. Eğer IP adresi listede bulunsaydı; IP adresi bağlantı talep sıklığının takibi için 1 dakika boyunca geçerli olacak biçimde ‘’(Winbox) Seviye-3 Takip Listesi’’ isimli kara listeye eklenecekti.
  • Bağlantı dinamik olarak oluşturulan ‘’(Winbox) Seviye-1 Takip Listesi’’ isimli liste ile karşılaştırılıyor, Bağlantının IP adresi listede bulunmuyorsa bir sonraki kontrol adımına geçilir. Eğer IP adresi listede bulunsaydı; IP adresi bağlantı talep sıklığının takibi için 1 dakika boyunca geçerli olacak süre boyunca ‘’(Winbox) Seviye-2 Takip Listesi’’ isimli kara listeye eklenecekti.
  • Gelen bağlantı, talep sıklığı kontrolü için dinamik olarak oluşturulan ‘’(Winbox) Seviye-1 Takip Listesi’’ içerisine 1 dakikalığına eklenir.

NOT:  Dökümanımızdaki kodlar sisteminizde internet girişi arayüz adı veya kullanılan port numaraları ile uyumlu olmayabilir. sorunsuz bir uygulama için kodları öncelikle bir not defterine kopyalayın, ve tüm kurallarda yer alan “in-interface=” ve “dst-port=” kısımlarında yazan alanların kendi sisteminizle uyumlu olmasını sağlayın. Örneğin “in-interface=WAN” yerine,”in-interface=modem1″ gibi.

SSH Portu İçin brute Force Koruma Kuralları

/ip firewall address-list
add list="(SSH) Kara Liste" comment="(SSH) Kara Liste"

/ip firewall filter
add action=drop chain=input in-interface=WAN comment="(SSH) Kara Liste icerisindeki herkesi engeller." log=yes log-prefix="KL_(SSH) Kara Liste" src-address-list="(SSH) Kara Liste"
add action=jump chain=input in-interface=WAN comment="(SSH) Kara Liste Zinciri Atlama Kurali." dst-port=22 jump-target="(SSH) Kara Liste Zinciri" protocol=tcp
add in-interface=WAN action=add-src-to-address-list address-list="(SSH) Kara Liste" address-list-timeout=4w2d chain="(SSH) Kara Liste Zinciri" comment="Tekrar eden girisimleri (SSH) Seviye-3 Takip Listesinden (SSH) Kara Liste icerisine tasir." connection-state=new log=yes log-prefix="SSH) Kara Listeye Eklendi" src-address-list="(SSH) Seviye-3 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(SSH) Seviye-3 Takip Listesi" address-list-timeout=1m chain="(SSH) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (SSH) Seviye-3 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-3(SSH) Takip Listesine eklendi" src-address-list="(SSH) Seviye-2 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(SSH) Seviye-2 Takip Listesi" address-list-timeout=1m chain="(SSH) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (SSH) Seviye-2 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-2(SSH) Takip Listesine eklendi" src-address-list="(SSH) Seviye-1 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(SSH) Seviye-1 Takip Listesi" address-list-timeout=1m chain="(SSH) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (SSH) Seviye-1 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-1(SSH) Takip Listesine eklendi"
add action=return chain="(SSH) Kara Liste Zinciri" comment="(SSH) Kara Liste Zincirinden donenler."

Telnet Portu İçin brute Force Koruma Kuralları

/ip firewall address-list
add list="(Telnet) Kara Liste" comment="(Telnet) Kara Liste"

/ip firewall filter
add action=drop chain=input in-interface=WAN comment="(Telnet) Kara Liste icerisindeki herkesi engeller." log=yes log-prefix="KL_(Telnet) Kara Liste" src-address-list="(Telnet) Kara Liste"
add action=jump chain=input in-interface=WAN comment="(Telnet) Kara Liste Zinciri Atlama Kurali." dst-port=23 jump-target="(Telnet) Kara Liste Zinciri" protocol=tcp
add in-interface=WAN action=add-src-to-address-list address-list="(Telnet) Kara Liste" address-list-timeout=4w2d chain="(Telnet) Kara Liste Zinciri" comment="Tekrar eden girisimleri (Telnet) Seviye-3 Takip Listesinden (Telnet) Kara Liste icerisine tasir." connection-state=new log=yes log-prefix="Telnet) Kara Listeye Eklendi" src-address-list="(Telnet) Seviye-3 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(Telnet) Seviye-3 Takip Listesi" address-list-timeout=1m chain="(Telnet) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (Telnet) Seviye-3 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-3(Telnet) Takip Listesine eklendi" src-address-list="(Telnet) Seviye-2 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(Telnet) Seviye-2 Takip Listesi" address-list-timeout=1m chain="(Telnet) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (Telnet) Seviye-2 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-2(Telnet) Takip Listesine eklendi" src-address-list="(Telnet) Seviye-1 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(Telnet) Seviye-1 Takip Listesi" address-list-timeout=1m chain="(Telnet) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (Telnet) Seviye-1 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-1(Telnet) Takip Listesine eklendi"
add action=return chain="(Telnet) Kara Liste Zinciri" comment="(Telnet) Kara Liste Zincirinden donenler."

Winbox Portu İçin brute Force Koruma Kuralları

/ip firewall address-list
add list="(Winbox) Kara Liste" comment="(Winbox) Kara Liste"

/ip firewall filter
add action=drop chain=input in-interface=WAN comment="(Winbox) Kara Liste icerisindeki herkesi engeller." log=yes log-prefix="KL_(Winbox) Kara Liste" src-address-list="(Winbox) Kara Liste"
add action=jump chain=input in-interface=WAN comment="(Winbox) Kara Liste Zinciri Atlama Kurali." dst-port=8291 jump-target="(Winbox) Kara Liste Zinciri" protocol=tcp
add in-interface=WAN action=add-src-to-address-list address-list="(Winbox) Kara Liste" address-list-timeout=4w2d chain="(Winbox) Kara Liste Zinciri" comment="Tekrar eden girisimleri (Winbox) Seviye-3 Takip Listesinden (Winbox) Kara Liste icerisine tasir." connection-state=new log=yes log-prefix="Winbox) Kara Listeye Eklendi" src-address-list="(Winbox) Seviye-3 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(Winbox) Seviye-3 Takip Listesi" address-list-timeout=1m chain="(Winbox) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (Winbox) Seviye-3 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-3(Winbox) Takip Listesine eklendi" src-address-list="(Winbox) Seviye-2 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(Winbox) Seviye-2 Takip Listesi" address-list-timeout=1m chain="(Winbox) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (Winbox) Seviye-2 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-2(Winbox) Takip Listesine eklendi" src-address-list="(Winbox) Seviye-1 Takip Listesi"
add in-interface=WAN action=add-src-to-address-list address-list="(Winbox) Seviye-1 Takip Listesi" address-list-timeout=1m chain="(Winbox) Kara Liste Zinciri" comment="Tekrar eden girisimleri 1 dakikaliginia (Winbox) Seviye-1 Takip Listesi icerisine ekler." connection-state=new log=yes log-prefix="Seviye-1(Winbox) Takip Listesine eklendi"
add action=return chain="(Winbox) Kara Liste Zinciri" comment="(Winbox) Kara Liste Zincirinden donenler."

Port Scanner Engelleme Kuralları

/ip firewall address-list
add list="(Port Scanner WAN) Kara Liste" comment="(Port Scanner WAN) Kara Liste"

/ip firewall filter
add action=drop chain=input in-interface=WAN comment="(Port Scanner WAN) Kara Liste icerisindeki herkesi engelle." log=yes log-prefix="KL_(Port Scanner WAN) Kara Liste" src-address-list="(Port Scanner WAN) Kara Liste"
add action=drop chain=forward in-interface=WAN comment="(Port Scanner WAN) Kara Liste icerisindeki herkesi engelle." log=yes log-prefix="KL_(Port Scanner WAN) Kara Liste" src-address-list="(Port Scanner WAN) Kara Liste"
add in-interface=WAN action=add-src-to-address-list address-list="(Port Scanner WAN) Kara Liste" address-list-timeout=4w2d chain=input comment="TCP portlarını tarayan IP adreslerini (Port Scanner WAN) Kara Liste icerisine ekler ve 30 gun boyunca engeller" log=yes log-prefix="(Port Scanner WAN) Kara Listeye Eklendi" protocol=tcp psd=21,3s,3,1