Rehber 27 Temmuz 2026 · 7 dakika okuma

Port Taraması Tespitini Net Kurun: Log, Fail2ban ve Alarm

Port taraması tespiti için uygulanabilir log kaynakları, fail2ban ve firewall kurallarıyla net bir izleme planı: hangi alarm ne zaman çalışır?

Sunucuya yapılan port taramaları (port scan), saldırganların sistem zayıflıklarını yokladığı ilk adımlardan biridir. Sorun, tek bir başarısız denemeyi “normal trafik” sanmak; oysa belirli IP davranışları tekrarlandığında ciddi risk oluşur. Bu rehberde, Linux tabanlı sunucularda port taramasını tespit edilebilir hale getirmek için hangi log’ların izleneceğini, nasıl otomatik engelleme yapılacağını ve hangi metriklerin alarm sayılacağını net şekilde anlatıyorum.

Aşağıdaki plan, hem küçük VPS’lerde hem de daha büyük VDS/dedicated altyapılarda uygulanır. Hedef; “şu anda tarama var mı yok mu?” sorusunu dakikalar içinde yanıtlamak ve tekrarlayan tarayıcıları otomatik durdurmaktır.


Port taraması neyi tetikler? (Net işaretler)

Port taraması; bir kullanıcının çok sayıda portu kısa sürede denemesi ya da belirli port aralıklarını sistematik keşfetmesidir. Linux tarafında bu genellikle şu davranışlarla görünür:

  • Çok sayıda bağlantı denemesi (SYN) ve/veya kısa süre içinde çok sayıda başarısız oturum
  • Aynı IP’den gelen isteklerin farklı portlara dağılması
  • Hedefin işletim sistemi ve servislerine göre farklı “yanıt paterni” (RST/ICMP/timeout)
  • SSH ve web (80/443) gibi servisler dışında rastgele port denemeleri

Bu işaretler çoğu zaman tek başına anlamlı değildir; kritik olan, tekrar ve hız kombinasyonudur. Bu yüzden tespit mekanizması zaman penceresi (ör. 10 dk) + eşik (ör. 50 deneme) mantığıyla çalışmalıdır.

Hızlı ayrım: tarama mı, normal tarama mı?

Aşağıdaki durumlar çoğu zaman “port scan” değildir: - Tek bir kullanıcıdan gelen birkaç deneme - Uygulama seviyesinde hatalı kimlik (ör. SSH yanlış şifre) ama portlar sabit kalıyor - Aynı IP’den sadece 80/443 trafiği geliyor ve trafik URL/kimlik bilgisine bağlı

“Tarama” dediğimizde beklediğimiz şey: kısa sürede çok port denemesi veya çok sayıda servis denemesi.


Hangi log kaynakları port taramasını yakalar?

Port taramasını tespit etmek için tek bir log dosyasına güvenmek yerine, en az iki kaynağı birlikte değerlendirmek gerekir. Linux’ta tipik olarak şunlar izlenir:

1) Kernel firewall logları (ufw/iptables/nftables)

Sunucu üzerinde aktif bir firewall varsa, engellenen/izin verilen paketler loglanır. Yaygın senaryolar: - ufw: /var/log/ufw.log - iptables/nftables: özelleştirilmiş chain logları (çoğu zaman syslog/journal)

Örnek (sadece mantık): - Aynı kaynak IP’den farklı hedef portlara “DROP/REJECT” kayıtlarının gelmesi

2) SSH logları (özellikle 22/SSH)

SSH taraması çoğu zaman şifre denemesi (brute force) gibi görünür; fakat tarama ile brute force beraber görülebilir. - Ubuntu/Debian: /var/log/auth.log - CentOS/RHEL: /var/log/secure

Eş zamanlı olarak şu tür kayıtlar önemlidir: - Aynı IP’den çok sayıda farklı port yerine, sadece 22 üzerinde sık deneme (brute force) - Çok farklı portlar + kısa aralıklarla bağlantı denemesi (scan)

3) Web sunucusu logları (Nginx/Apache)

Web logları port taramasını tek başına kanıtlamaz; ama 80/443 dışındaki port denemeleri web loglarında görünmez. Buna rağmen şunlar taramaya işaret edebilir: - URL pattern’i rastgele (ör. /phpmyadmin/, /wp-admin/ gibi) ama bu artık “vulnerability probing” kategorisine de girebilir

4) Sistem genel ağ kayıtları

Şunlar yardımcıdır: - journalctl ile kernel mesajları - fail2ban logları (aşağıda kurulum var)


Net tespit için iki katmanlı yaklaşım: Log + otomatik engelleme

En güvenilir kurgu şudur: 1) Logdan taramayı yakala (kural/eşik) 2) Aynı IP tarama davranışına devam ederse otomatik engelle

Bu yaklaşım “tespit + aksiyon” sağlar.

Katman A: fail2ban ile otomatik tespit ve ban

fail2ban (log-based intrusion prevention) belirli log kalıplarına göre IP’leri geçici veya kalıcı banlar.

Net adım 1: Paket kurulumu

Debian/Ubuntu için: - sudo apt update - sudo apt install -y fail2ban

RHEL/CentOS için: - sudo yum install -y fail2ban (dağıtıma göre dnf/yum)

Net adım 2: Jail dosyasını oluştur

Önerilen yapı: - /etc/fail2ban/jail.d/local-portscan.conf

Aşağıdaki örnek, “çoklu port denemesi” gibi kalıpları engellemeyi hedefler. Not: Log formatı firewall’a göre değişir; önce log formatını gözlemlemek gerekir.

Örnek yapı (mantığı anlatan şablon): - backend = systemd veya auto - enabled = true - maxretry (eşik) - findtime (zaman penceresi) - bantime (ban süresi)

Örnek bir kısım (değerleri loguna göre ayarla):

[portscan]
enabled = true
filter = portscan
action = ufw
logpath = /var/log/ufw.log
maxretry = 20
findtime = 600
bantime = 3600

Kritik nokta: logpath ve filter tanımı sunucundaki log formatına birebir uymalıdır.

Net adım 3: Firewall aksiyonunu doğru seç

Aksiyon olarak ufw, iptables, nftables veya cloud sağlayıcı banları kullanılabilir. Önemli olan şu parametreler: - Ban, sadece tarama IP’sini hedeflemeli - Ban sonrası log devam etmeli (izleme)

Katman B: Firewall’da rate limit + port bazlı koruma

fail2ban tek başına yeterli değildir; özellikle tarama çok yaygın başladığında firewall seviyesinde rate limiting belirgin fark yaratır.

Net yaklaşım: - SSH için deneme sayısını sınırlayın - Web için sadece gerekli servisleri açın - Kullanılmayan portları kapatın (close)

Tercih edilen güvenlik matrisi

Aşağıdaki tabloda “ne zaman neyi kapat/limitle” net bir çerçeve bulacaksın:

Hedef servis Tipik port Eşik mantığı Net öneri
SSH (uzaktan yönetim) 22 Brute force + scan kombinasyonu Sadece kendi IP’lerin veya VPN subneti; yoksa fail2ban + rate limit
Yönetim panelleri 8000-9000 Rastgele keşif çok olur Panel portunu internet yerine VPN arkasına alın
Web 80/443 Botlar sık gelir WAF/CDN kullan, firewall’da temel rate limit bırak
Veritabanı 3306/5432 İnternet kapalı olmalı Mutlaka private ağ + security group/firewall
Diğer servisler değişken Scan hedefi olur “Need-to-know”: yalnızca kullanıyorsan açık tut

Tespit eşiğini doğru kurun: “Kaç deneme tarama sayılır?”

Port taramasında kritik parametreler: - findtime (ör. 600 saniye / 10 dk) - maxretry (ör. 20-50) - bantime (ör. 3600 saniye / 1 saat)

Tek doğru değer yok; sunucunun servisleri ve trafik profili belirler. Net bir pratik yöntem:

1) İlk 3-7 gün sadece logları izleyin, ban açmadan “kaç kez tekrar ediyor” sayın. 2) 95. persentil (sonuçların büyük kısmını normal trafik oluşturuyorsa) ile saldırı davranışını ayırın. 3) maxretry’yi normal trafiğin üstüne, saldırı trafiğinin altına koyun.

Net ölçüm: aynı IP kaç port deniyor?

Sadece “kaç bağlantı” değil, “kaç farklı port” sayısı taramayı daha net gösterir.

Bunu incelemek için pratik bir yaklaşım: - Firewall loglarından kaynak IP’yi çıkar - O IP’nin aynı zaman penceresinde hedef port çeşitliliğini hesapla

Eğer IP bir dakikada 10+ farklı port deniyorsa bu tarama olma ihtimali yüksektir.


Logdan tarama tespitini rapora dönüştürün (izleme planı)

Aksiyon; sadece banlamak değil, tekrar eden davranışları raporlamaktır. Aşağıdaki metrikler her hafta kontrol edilmelidir.

Kontrol panelinde aradığın 6 metrik

  • En çok banlanan kaynak IP sayısı
  • Son 24 saatte tarama benzeri deneme sayısı
  • Port çeşitliliği: “tek IP kaç farklı port denedi?”
  • SSH için: başarısız giriş sayısı + IP bazlı tekrarlama
  • 80/443 dışındaki kapalı port denemeleri (beklenenin üzerinde ise scan artmış demektir)
  • Ban sonrası tekrar davranış (bantime bitince tekrar deniyor mu?)

Pratik rapor tablosu (kopyala-uyarla)

Aşağıdaki tabloyu kendi log analizine göre doldurun:

Tarih Kaynak IP Port çeşitliliği İlk tespit zamanı Aksiyon Not
2026-07-26 1.2.3.4 18 10:42 Ban (1 saat) Panel portları tarandı
2026-07-26 5.6.7.8 6 11:05 Ban (10 dk) SSH brute+scan

Net incident (olay) süreci: tarama başladıysa ne yapmalısın?

Port taraması algılandığında hedef “panik değil, düzenli doğrulama” olmalıdır.

1) Anlık doğrulama

  • Logta hangi kaynak IP/ülke/ASN tekrar ediyor?
  • Tarama hangi portlara odaklanıyor? (22, 21, 23, 3389, 3306 gibi)
  • Aynı IP kısa süre içinde mi çok port deniyor, yoksa sadece tek portta mı sık deniyor?

2) Aksiyon

  • fail2ban ile ilgili jail’i aktif et
  • Firewall rate limit uygula
  • Kullanmadığın portları kapat
  • SSH’yi mümkünse sadece VPN’den erişilebilir yap

3) Son kontrol: servis gerçekten güvenli mi?

Tarama tek başına “saldırı oldu” demek değildir. Ama şu kontrolleri net yap: - İnternet’e açık yönetim arayüzü var mı? - Kullanılmayan servisler çalışıyor mu? - Şifre politikası güçlü mü (SSH anahtar + parola kapatma gibi)?


Ortak hatalar: tespit sistemini boşa çıkaran şeyler

  • Log kaynağı yanlış: logpath gerçekte log üretmiyorsa fail2ban hiçbir şey banlamaz.
  • Eşik çok düşük: Normal kullanıcı davranışını banlarsın (özellikle bot trafiği az olmayan web sitelerinde).
  • Tek katman: Sadece log izleyip aksiyon alamazsan saldırganların denemesi sürer.
  • Sadece SSH’ye odak: Tarama sadece 22’ye gelmez; rastgele port keşfi ve servis sızdırma denemeleri görülür.

Sonuç: 30 dakikada çalışır bir tespit kurun

Port taramasını tespit etmek için tek hedef “uyarı almak” değil, uyarıdan kontrollü aksiyona geçmektir. Yapılacak net aksiyon sırası:

1) Firewall loglarını (ufw/iptables/nftables) doğrula ve logpath’i kesinleştir. 2) fail2ban ile en az bir jail’i tarama benzeri davranışa göre devreye al. 3) SSH ve kullanılmayan portlar için internet erişimini daralt; rate limit ekle. 4) 3-7 gün logları inceleyip maxretry/findtime değerlerini trafiğine göre kalibre et.

Bu planı uygularsan “taramayı görüyor musun?” sorusuna günler değil, dakikalar içinde yanıt verirsin ve tekrar eden kaynakları otomatik durdurursun.

Etiketler: #vps #vds #fail2ban #güvenlik #port taraması

Hosting karşılaştırması yapmaya hazır mısın?

100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.

Hosting Karşılaştır →

İlgili Yazılar

0 ürün seçildi