Fail2ban hizmet günlüklerini izler ve kötüye kullanan IP'leri geçici olarak engeller (tekrarlanan SSH hataları, HTTP taraması vb.). UFW ve SSH sertleştirme ile birlikte kullanılır.
Ön koşullar
sudoerişimli Ubuntu/Debian (veya türevi)- Korunacak hizmet zaten çalışıyor olmalı (ör.
sshd,nginx)
Kurulum
Bashsudo apt update && sudo apt install -y fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban
Temel yapılandırma
Güncellemelerin üzerine yazmaması için özel dosyaları /etc/fail2ban/jail.d/ altına koyun.
/etc/fail2ban/jail.d/local.conf oluşturun:
INI1[DEFAULT] 2bantime = 1h 3findtime = 10m 4maxretry = 5 5ignoreip = 127.0.0.1/8 ::1 6 7[sshd] 8enabled = true 9port = ssh 10logpath = %(sshd_log)s 11backend = %(sshd_backend)s
SSH portunu değiştirdiyseniz, ssh yerine port = 2222 (örnek) yazın.
Fail2ban'ı yeniden yükleyin:
Bashsudo systemctl restart fail2ban sudo fail2ban-client status sudo fail2ban-client status sshd
Nginx (agresif HTTP kalıpları)
Örneğin ekleyin:
INI[nginx-http-auth] enabled = true port = http,https logpath = /var/log/nginx/error.log
Günlük yollarını kurulumunuza göre ayarlayın.
En iyi uygulamalar
- Test sırasında sabit IP'nizi
ignoreiplistesine ekleyin. - Dağıtımdan sonra
sudo fail2ban-client status sshdkontrol edin. - Engeller geçicidir (
bantime); toleransınıza göre ayarlayın.
Bir IP'nin engelini manuel kaldırma
Bashsudo fail2ban-client set sshd unbanip 198.51.100.10
Sorun giderme
- Engel yok:
enabled = true, doğrulogpathve hizmetin hataları günlüğe yazdığından emin olun. - Kilitlendiniz: sağlayıcınızın konsolunu / IPMI'yi veya başka bir IP'yi kullanın, ardından
ignoreipdüzeltin veya engeli kaldırın.