İ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.