Fail2ban, başarısız giriş kayıtlarını izleyerek belirli IP adreslerine geçici engel uygular. Zayıf parolayı güçlü yapmaz ve ağ kapasitesini dolduran DDoS saldırılarını tek başına durdurmaz. Bu rehber Ubuntu 24.04 LTS üzerinde SSH içindir.
1. Kendinizi kilitlemeden başlayın
Mevcut SSH oturumunu açık tutun ve sağlayıcınızın konsoluna erişebildiğinizi doğrulayın. İkinci terminalde anahtarla giriş yapabildiğinizi test edin. Kullanılan SSH portunu kaydedin:
bashsudo sshd -T | grep '^port '
sudo journalctl -u ssh --since "10 minutes ago"Port 22 değilse aşağıdaki jail dosyasını buna göre düzenleyin. Sunucuda bir panel zaten Fail2ban veya başka giriş koruması yönetiyorsa önce onun yapılandırmasını inceleyin; ikinci bir bağımsız politika eklemeyin.
2. Paketi kurun
bashsudo apt update
sudo apt install -y fail2ban python3-systemdPaketle gelen jail.conf dosyasını doğrudan değiştirmek yerine yerel bir ek dosya kullanın. Böylece güncellemede kendi tercihlerinizle paket varsayılanlarını ayırabilirsiniz.
3. SSH jail dosyası
/etc/fail2ban/jail.d/sshd.local dosyasını oluşturun:
ini[sshd]
enabled = true
backend = systemd
port = 22
maxretry = 5
findtime = 10m
bantime = 1h
ignoreip = 127.0.0.1/8 ::1Bu örnek, 10 dakikada beş eşleşen başarısız olay için bir saat engel tanımlar. Bunlar başlangıç tercihidir; ortak IP kullanan ekipler için etkisini değerlendirin. Güvenilir, sabit yönetim IP’nizi ignoreip listesine ayrıca ekleyebilirsiniz; geniş ağ aralıklarını gereksiz yere hariç tutmayın.
systemd arka ucu journal okur; bu örneğe ayrıca logpath satırı eklemeyin. Parametrelerin anlamı jail yapılandırma belgesinde ve resmi örnek yapılandırmada açıklanır.
4. Önce test, sonra etkinleştirme
bashsudo fail2ban-client -tHata yoksa:
bashsudo systemctl enable --now fail2ban
sudo systemctl restart fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshdsshd jail listede bulunmalı. Servisin active olması tek başına giriş kayıtlarının eşleştiğini kanıtlamaz. Ayrı, size ait bir test bağlantısından kontrollü başarısız giriş oluşturup sayacı gözleyin; tek yönetim bağlantınızdan arka arkaya hata üretmeyin.
5. Hataları ayırın
bashsudo journalctl -u fail2ban -n 50 --no-pagerJail görünmüyor: dosya adı, bölüm adı ve enabled ayarını inceleyin. Sayaç artmıyor: SSH olayları journal’a geliyor mu, kullanılan filtre doğru mu? IP listede ama trafik geçiyor: engel eylemi, gerçek SSH portu ve nftables/iptables entegrasyonunu kontrol edin.
6. Yanlış engeli kaldırın
Konsoldan veya hâlâ erişebilen yönetim bağlantısından, aşağıdaki örnek IP’yi gerçek adresle değiştirerek:
bashsudo fail2ban-client set sshd unbanip 203.0.113.10Tüm güvenlik duvarını temizlemek yerine yalnız ilgili engeli kaldırın. Sonra yanlış engelin sebebini çözün. Komut seçenekleri fail2ban-client belgesinde bulunur.
Yapılandırma dosyanızı yedekleyin. Anahtar tabanlı SSH, güncellemeler ve en az yetki ilkesi için sunucu güvenliği rehberine, ağ saldırıları için DDoS rehberine geçin.
