Sanal Sunucularda Port Scanning Nasıl Tespit Edilir?

Port scanning, bir sunucunun hangi servislerinin dış dünyaya açık olduğunu analiz etmek için yapılan keşif faaliyetidir. Saldırgan önce açık portları belirler, ardından bu bilgilere göre saldırı planını şekillendirir. Bu nedenle port scanning çoğu zaman saldırı öncesi gelen erken bir alarm olarak değerlendirilir. Zamanında fark edildiğinde büyük güvenlik sorunlarının önüne geçilebilir.
Bu yazıda port taramasını canlı ağ trafiği üzerinden, firewall logları, Fail2Ban kayıtları, IDS çözümleri ve web sunucu erişim kayıtları üzerinden nasıl tespit edebileceğini ele alacağız.

Port Taraması Yapıldığını Gösteren Belirtiler

Bir sunucu port taramasına maruz kaldığında genellikle aynı kaynağın peş peşe birçok porta bağlantı denemesi yaptığı fark edilir. Denemeler çoğu zaman SYN paketlerinde takılı kalır ve bağlantı tamamlanmaz. Güvenlik duvarı loglarında farklı portlara yönelik arka arkaya düşen bloklama kayıtları oluşur. Aynı zamanda web loglarında admin panellerine yönelik isteklerde olağandışı bir yoğunluk oluşur.

Nmap İle Port Taraması Nasıl Görülür?

Port taramasını saldırgan tarafı genelde Nmap ile yapar.

nmap -sS -Pn 192.168.1.10

Tarama sonucunda görülen open durumu portun erişime açık olduğunu, closed portun kapalı olduğunu, filtered ise güvenlik duvarı arkasında bulunduğunu gösterir. Bu veriler, saldırganın saldırı stratejisini doğrudan şekillendirir.

Linux ve Windows sistemlerde Nmap kurulumuna dair tüm detayları, ek olarak paylaştığımız kılavuzda adım adım bulabilirsiniz.

tcpdump Üzerinden Canlı Port Tarama Takibi

Sunucuya gelen paketlerin canlı olarak izlenmesi, port taramasını net şekilde ortaya çıkarır. Bu sayede şüpheli tarama denemeleri henüz güvenlik duvarına takılmadan önce bile görünür hâle gelir

tcpdump -nn -i eth0 'tcp[tcpflags] == tcp-syn'
  • Aynı IP
  • Art arda
  • Farklı portlara
    SYN paketleri gönderiyorsa bu aktif port taramasıdır.

ss Komutu ile Anlık Bağlantı Takibi

Sunucu üzerinde aynı IP adresinden kısa süre içinde çok sayıda bağlantı denemesi olup olmadığını kontrol etmek için ss komutu oldukça etkilidir. Aşağıdaki komut ile aktif bağlantılar anlık olarak görüntülenebilir:

ss -tunap

Sadece IP bazlı sayım almak için ise şu komut kullanılabilir:

ss -tunap | awk '{print $6}' | cut -d: -f1 | sort | uniq -c | sort -nr

Tek bir IP adresinin kısa sürede onlarca bağlantı isteği oluşturması, büyük ihtimalle bir port taramasına işaret eder.

Firewall Logları Üzerinden Port Taraması Tespiti

UFW kullanıyorsak

cat /var/log/ufw.log | grep BLOCK

iptables kullanıyorsak

grep "DROP" /var/log/syslog

Aynı IP arka arkaya farklı portlara düşüyorsa bu klasik keşif taramasıdır.

iptables ile Port Tarama

Port taraması yapan IP’ler genellikle çok kısa sürede onlarca bağlantı denemesi yapar. Bu davranışı otomatik olarak engellemek için aşağıdaki kural kullanılabilir:

iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 10 -j DROP

Aynı IP’nin belirli süre içinde çok sayıda farklı portu denemesini tespit etmek için recent modülü daha etkili bir çözümdür:

iptables -A INPUT -p tcp --dport 1:65535 -m recent --name portscan --set<br>iptables -A INPUT -p tcp --dport 1:65535 -m recent --name portscan --update --seconds 60 --hitcount 20 -j DROP

Bu yöntemle agresif tarama yapan IP’ler otomatik olarak ağ dışına atılır.

Bu yapı sayesinde tarama yapan IP otomatik olarak banlanır.

Fail2Ban ile Otomatik Banlama

Fail2Ban servis durumunu kontrol edelim.

systemctl status fail2ban

Banlanan IP’leri görmek için bu komutu yazalım. Fail2Ban özellikle SSH, panel ve mail servisleri için çok etkilidir.

fail2ban-client status
fail2ban-client status sshd

Detaylı kural adımlarını öğrenmek için – Apache Exim Ve Vsftpd Logları İçin Özel Fail2ban Kuralları

Snort ile IDS Üzerinden Port Scan Alarmı Üretme

Snort port taramalarını reconnaissance attack olarak algılar. Nmap çalıştırıldığında anlık alarm verir.

snort -A console -c /etc/snort/snort.conf -i eth0

SIEM Üzerinden Port Taramasının Grafiksel Takibi

Wazuh, Elastic gibi sistemlerde taramalar ani spike şeklinde görünür. Bu grafikler güvenlik ekiplerinin saldırıyı saniyeler içinde fark etmesini sağlar.

Web Sunucu Loglarında Servis Taraması

Apache için

cat /var/log/apache2/access.log | grep -E "wp-admin|phpmyadmin|\.env"

Nginx için

cat /var/log/nginx/access.log | grep -E "wp-admin|phpmyadmin|\.env"

Sık Sorulan Sorular

TCP ve UDP port taraması canlı trafikte nasıl ayırt edilir?

TCP taramaları yarım kalan SYN bağlantılarıyla kendini belli eder. UDP taramalarında ise hedef kapalıysa ICMP “unreachable” cevapları görülür. Bu ayrım tcpdump filtreleri ile anında yapılabilir.

Dağıtık taramalar neden firewall eşiklerini geçmez?

Çünkü her kaynak IP çok düşük deneme yapar. Ancak toplam hedeflenen port sayısı yüksek olur. Bu yüzden davranış analizi zaman bazlı yapılır.

nftables tarafında tarama tespiti nasıl kurulur?

limit rate ile kontrol sağlanır, meter objeleri ile her IP’nin hedef port denemeleri sayısal olarak ölçülür.

Port taraması yapan IP kalıcı nasıl düşürülür?

ipset create blacklist hash:ip
ipset add blacklist 1.2.3.4
iptables -A INPUT -m set --match-set blacklist src -j DROP

Bu yöntem kernel seviyesinde kalıcıdır.

Yorum yapın