SSH ve FTP, sunucuların en çok hedef alınan servisleridir. Her gün binlerce brute force saldırısına maruz kalırsınız. Neyse ki Fail2Ban bu noktada imdadınıza yetişiyor. Bu yazıda Fail2Ban ile SSH ve FTP güvenliğini nasıl sağlayacağınızı ve IP banlama kurallarını ihtiyaçlarınıza göre nasıl özelleştireceğinizi adım adım anlatıyoruz.
Fail2Ban Nedir ve Nasıl Çalışır?
Fail2Ban, log dosyalarını tarayarak başarısız giriş denemelerini tespit eder ve belirli kurallara göre IP adreslerini geçici olarak banlar. Varsayılan ayarlarla gelse de, gerçek güç özelleştirmede yatıyor.
SSH ve FTP için Temel Yapılandırma
Fail2Ban'ın ana yapılandırma dosyası /etc/fail2ban/jail.conf ama asıl düzenlemeleri /etc/fail2ban/jail.local dosyasında yapmalısınız. SSH için genellikle hazır bir profil bulunur:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 10mFTP içinse benzer bir blok ekleyebilirsiniz. Örneğin Pure-FTPd için:
[pure-ftpd] enabled = true port = ftp,ftp-data filter = pure-ftpd logpath = /var/log/messages maxretry = 3 bantime = 30mBu ayarlarla başarısız denemeler 5'te (SSH) veya 3'te (FTP) IP'yi 10 veya 30 dakika banlar.
IP Banlama Kurallarını Özelleştirme
Ban Süresi ve Deneme Sayıları
Ban süresini uzatmak veya kısaltmak çok kolay. Örneğin, bantime = 3600 ile 1 saat banlayabilirsiniz. maxretry = 3 yaparsanız üç yanlış denemede IP banlanır. findtime = 600 ise 10 dakika içindeki denemeleri sayar. Bu değerleri ihtiyacınıza göre ayarlayın.
Özel Eylemler (Actions) Tanımlama
Fail2Ban, ban işleminin yanında e-posta gönderme veya kalıcı ban gibi eylemler de yapabilir. Örneğin, bir IP'yi 24 saat banlamak için action_ parametresini kullanın:
action = %(action_mwl)sBu, banlanan IP'yi loglar ve e-posta ile bildirir. Daha sert önlemler için action_iptables veya action_cf gibi eylemleri seçebilirsiniz.
Özel Filtreler Oluşturma
Varsayılan filtreler çoğu durumda yeterli olsa da, kendi log formatınıza uygun özel bir filtre yazabilirsiniz. Örneğin, özel bir FTP yazılımı kullanıyorsanız /etc/fail2ban/filter.d/custom-ftp.conf dosyası oluşturun:
[Definition] failregex = ^.*Failed login for .* from <HOST>.*$ ignoreregex =Ardından jail.local'da bu filtreyi kullanın.
Güvenilir IP'leri Beyaz Liste Ekleme
Kendi IP'nizin veya yedekleme sunucunuzun banlanmasını istemezsiniz. Bunun için ignoreip parametresini kullanın:
[sshd] ignoreip = 192.168.1.100 10.0.0.0/8Virgülle ayırarak birden fazla IP veya ağ ekleyebilirsiniz.
Test ve İzleme
Yaptığınız değişiklikleri uygulamak için Fail2Ban'ı yeniden başlatın: systemctl restart fail2ban. Banlanan IP'leri fail2ban-client status sshd ile görebilirsiniz. Logları /var/log/fail2ban.log dosyasından takip edin. Unutmayın, doğru özelleştirme ile sunucunuzu neredeyse görünmez kılabilirsiniz.
Fail2Ban'ı kurmak ve yapılandırmak sadece birkaç dakikanızı alır, ancak size saatlerce uğraştıracak saldırıları önler. Şimdi harekete geçin ve ayarlarınızı gözden geçirin.