Sunucunu kaba kuvvet saldırılarından koruyan fail2ban kurulumu

İnternete açık bir sunucun varsa, botlar dakikalar içinde SSH parolanı denemeye başlar. fail2ban, belirli sayıda başarısız denemeden sonra o IP’yi otomatik yasaklar.

Kurulum (Ubuntu/Debian)

sudo apt update && sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

Ayar: kendi kurallarını yaz

Doğrudan jail.conf’u değiştirme; onun yerine jail.local oluştur (güncellemelerde ezilmez):

sudo nano /etc/fail2ban/jail.local
[DEFAULT]
bantime  = 1h          # yasak süresi
findtime = 10m         # bu süre içinde
maxretry = 5           # bu kadar başarısız deneme = yasak
ignoreip = 127.0.0.1/8 203.0.113.10   # kendi IP'ni asla yasaklama

[sshd]
enabled = true

Kaydet, yeniden başlat:

sudo systemctl restart fail2ban

Durumu izle

sudo fail2ban-client status              # aktif jail'ler
sudo fail2ban-client status sshd         # kaç IP yasaklı
sudo fail2ban-client set sshd unbanip 1.2.3.4   # bir IP'yi elle çöz

Önemli uyarılar

  • ignoreip’e kendi sabit IP’ni ekle. Yoksa yanlış parolayla kendini kilitleyebilirsin.
  • Web sunucusu (Caddy/Nginx) için de jail yazabilirsin: wp-login, .env, .git taramalarını yakalar.
  • Cloudflare veya başka bir proxy arkasındaysan dikkat: fail2ban sunucuya gelen IP’yi görür; o da proxy’nin IP’sidir. Bu durumda gerçek ziyaretçi IP’sini (CF-Connecting-IP / X-Forwarded-For) kullanacak şekilde ayarlaman gerekir, yoksa yanlışlıkla proxy’yi yasaklarsın.
  • Daha gelişmiş, topluluk kara listeli bir alternatif: CrowdSec.

Takıldığınız noktayı Soru-Cevap’a yazın.