30 Nisan 2025 - 11:17
Fail2Ban Kullanımı Görseli
Sunucu Yönetimi

Fail2Ban Kullanımı

Yorumlar
Sunucular, brute-force saldırılarına maruz kaldığında saldırganlar binlerce farklı kullanıcı adı ve şifre kombinasyonu deneyerek sisteme yetkisiz erişim sağlamaya çalışır. Bu tür saldırıları otomatik olarak tespit edip engellemek için Fail2Ban kullanabiliriz. Fail2Ban, hatalı giriş denemelerini izleyerek belirli bir eşik değere ulaşıldığında ilgili IP adresini otomatik olarak engelleyen güçlü bir güvenlik aracıdır.

1. Fail2Ban Nedir ve Nasıl Çalışır?

Fail2Ban, sistem günlüklerini (loglarını) izleyerek belirlenen hatalı giriş sayısını aşan IP adreslerini geçici veya kalıcı olarak yasaklayan bir güvenlik çözümüdür.
  • 🔹 SSH, Apache, Nginx, Postfix, vsftpd gibi birçok servisle uyumludur.
  • 🔹 Belli bir süre boyunca yanlış giriş yapmaya devam eden IP’leri otomatik olarak engeller.
  • 🔹 Engellenen IP’leri belirlenen bir süre sonra otomatik olarak kaldırabilir.
Fail2Ban, brute-force saldırılarına karşı manuel IP engelleme işlemlerini otomatikleştirerek sunucunun güvenliğini artırır.

2. Fail2Ban Kurulumu

2.1. Fail2Ban Yükleme

Debian/Ubuntu için:
BASH
sudo apt update && sudo apt install fail2ban -y
CentOS/RHEL için:
BASH
sudo yum install epel-release -y
sudo yum install fail2ban -y
Kurulum tamamlandıktan sonra Fail2Ban servisini başlatın ve otomatik olarak çalışmasını sağlayın:
BASH
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Kurulumun başarılı olup olmadığını kontrol etmek için:
BASH
sudo systemctl status fail2ban

3. Fail2Ban Temel Yapılandırması

Fail2Ban’in ana yapılandırma dosyaları /etc/fail2ban/ dizininde bulunur. Varsayılan yapılandırma /etc/fail2ban/jail.conf dosyasında bulunur, ancak doğrudan bu dosyayı düzenlemek yerine /etc/fail2ban/jail.local dosyasını kullanmamız önerilir. Öncelikle, jail.local dosyasını oluşturup düzenleyelim:
BASH
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Bu dosyada, aşağıdaki ana yapılandırma seçeneklerini değiştirebiliriz:
  • 🔹 bantime: Engellenen IP’nin ne kadar süreyle yasaklanacağını belirler.
  • 🔹 findtime: Belirtilen süre içinde kaç hatalı giriş denemesinin yapılacağını belirler.
  • 🔹 maxretry: Belirlenen süre içinde kaç başarısız giriş denemesinin ardından IP’nin engelleneceğini belirler.
Örneğin, bir IP’nin 10 dakika boyunca (600 saniye) hatalı giriş denemeleri yapması halinde 1 saat boyunca (3600 saniye) engellenmesini sağlamak için:
INI
bantime = 3600
findtime = 600
maxretry = 3
Yapılandırma dosyasını kaydedip çıkın ve Fail2Ban servisini yeniden başlatın:
BASH
sudo systemctl restart fail2ban

4. SSH İçin Fail2Ban Yapılandırması

Fail2Ban’i SSH brute-force saldırılarını önlemek için yapılandıralım.
BASH
sudo nano /etc/fail2ban/jail.local
Aşağıdaki ayarları bulun ve düzenleyin:
INI
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
bantime = 3600
findtime = 600
maxretry = 3
Bu ayarlar, bir IP adresinin 10 dakika içinde 3 kez hatalı giriş yapması halinde 1 saat boyunca engellenmesini sağlayacaktır. Fail2Ban servisini yeniden başlatın:
BASH
sudo systemctl restart fail2ban
Engellenen IP’leri görüntülemek için:
BASH
sudo fail2ban-client status sshd
Engellenen bir IP’yi kaldırmak için:
BASH
sudo fail2ban-client set sshd unbanip 192.168.1.100

5. Fail2Ban ile Apache/Nginx Web Sunucusu Koruma

Fail2Ban, web sunucularını da brute-force ve kötü niyetli giriş denemelerine karşı koruyabilir. Apache ve Nginx için Fail2Ban’i yapılandırmak için aşağıdaki adımları izleyin.

5.1. Apache Güvenliği İçin Fail2Ban Kullanımı

Apache için Fail2Ban’i etkinleştirmek için aşağıdaki adımları takip edin:
BASH
sudo nano /etc/fail2ban/jail.local
Şu satırları ekleyin:
INI
[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 5
findtime = 600
bantime = 3600
Fail2Ban servisini yeniden başlatın:
BASH
sudo systemctl restart fail2ban
Apache’ye yönelik saldırıları görmek için:
BASH
sudo fail2ban-client status apache-auth

5.2. Nginx Güvenliği İçin Fail2Ban Kullanımı

Nginx kullanıcıları için Fail2Ban ile saldırıları önlemek için şu adımları izleyin:
BASH
sudo nano /etc/fail2ban/jail.local
Şu satırları ekleyin:
INI
[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5
findtime = 600
bantime = 3600
Fail2Ban servisini yeniden başlatın:
BASH
sudo systemctl restart fail2ban
Engellenen IP’leri görmek için:
BASH
sudo fail2ban-client status nginx-http-auth
  • 💡 Unutmayın: Fail2Ban’i düzenli olarak izlemek ve yapılandırmasını sisteminizin ihtiyaçlarına göre güncellemek, güvenliği artıracaktır!

Benzer Yazılar

Yorumlar ()

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap