
Linux Sunucularında Fail2Ban ile Güvenlik Sağlama
Linux Sunucularında Fail2Ban ile Güvenlik Sağlama
Fail2Ban, Linux sunucularında SSH, Apache, Nginx ve diğer hizmetlere yönelik brute-force saldırılarını engellemek için kullanılan bir güvenlik aracıdır. Şüpheli IP adreslerini belirleyerek, belirli bir süre boyunca bu adresleri yasaklar ve sistemin güvenliğini artırır.
1. Fail2Ban Kurulumu
1.1. Ubuntu/Debian Tabanlı Dağıtımlarda
sudo apt update sudo apt install fail2ban -y
1.2. CentOS/RHEL Tabanlı Dağıtımlarda
sudo yum install epel-release -y sudo yum install fail2ban -y
1.3. Fail2Ban Servisini Başlatma ve Etkinleştirme
Kurulumdan sonra, hizmeti başlatıp otomatik başlamasını sağlamak için şu komutları kullanın:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
Fail2Ban’ın çalışıp çalışmadığını kontrol etmek için:
sudo systemctl status fail2ban
2. Fail2Ban Yapılandırması
Varsayılan yapılandırma dosyaları /etc/fail2ban/
dizininde bulunur.
Ana yapılandırma dosyası jail.conf
dosyasıdır, ancak doğrudan bu dosya üzerinde değişiklik yapmak yerine, jail.local
dosyası oluşturarak özelleştirme yapmalıyız:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Ardından düzenlemek için:
sudo nano /etc/fail2ban/jail.local
3. Temel Yapılandırma Seçenekleri
jail.local
dosyasında aşağıdaki temel ayarları yapılandırabilirsiniz:
[DEFAULT] # Yasaklanan bir IP'nin ne kadar süreyle engelleneceğini belirler (saniye cinsinden) bantime = 3600 # Bir IP'nin engellenmesi için kaç hatalı giriş denemesi yapılması gerektiğini belirler maxretry = 5 # Hangi IP'lerin engellenmeyeceğini belirler (Whitelist) ignoreip = 127.0.0.1/8 192.168.1.1 # Ban işlemi uygulandığında hangi işlem yapılacak (iptables, firewalld vb.) banaction = iptables-multiport # Günlük seviyesini belirler (INFO, WARN, ERROR, DEBUG) loglevel = INFO
4. SSH Güvenliği İçin Fail2Ban Ayarları
SSH saldırılarını önlemek için [sshd]
bölümü aşağıdaki gibi yapılandırılabilir:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600
Eğer SSH, varsayılan 22
portu yerine farklı bir port kullanıyorsa, port satırını güncelleyin:
port = 2222
Fail2Ban’ın Nginx, Apache, vsftpd Gibi Hizmetleri Korumak İçin Yapılandırılması
Aşağıdaki hizmetler için Fail2Ban’ı etkinleştirebilirsiniz:
Apache ve Nginx Koruması:
[apache-auth] enabled = true port = http,https logpath = /var/log/apache2/error.log maxretry = 5
vsftpd Koruması:
[vsftpd] enabled = true port = ftp logpath = /var/log/vsftpd.log maxretry = 5
Postfix (E-posta Sunucusu) Koruması:
[postfix] enabled = true port = smtp,465,submission logpath = /var/log/mail.log maxretry = 5
5. Fail2Ban Servisini Yeniden Başlatma
Yapılan değişikliklerin aktif olması için Fail2Ban servisini yeniden başlatın:
sudo systemctl restart fail2ban
Fail2Ban’ın düzgün çalışıp çalışmadığını doğrulamak için:
sudo fail2ban-client status
Eğer belirli bir jail’i (örneğin SSH) kontrol etmek isterseniz:
sudo fail2ban-client status sshd
6. Fail2Ban ile Yasaklı IP'leri Yönetme
Fail2Ban tarafından yasaklanan IP adreslerini listelemek için:
sudo fail2ban-client status sshd
Belirli bir IP’yi yasaklamak için:
sudo fail2ban-client set sshd banip 192.168.1.100
Belirli bir IP’yi yasaktan çıkarmak için:
sudo fail2ban-client set sshd unbanip 192.168.1.100
7. Fail2Ban Loglarını İnceleme
Fail2Ban, /var/log/fail2ban.log
dosyasında olayları kaydeder. Logları görüntülemek için:
sudo tail -f /var/log/fail2ban.log
8. Fail2Ban ile Kalıcı IP Engelleme
Eğer belirli bir IP’yi süresiz olarak engellemek istiyorsanız, iptables kullanabilirsiniz:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
Bunu kalıcı hale getirmek için iptables kurallarını kaydedin:
sudo iptables-save > /etc/iptables/rules.v4
9. Fail2Ban’i Firewalld ile Kullanma (CentOS/RHEL)
Eğer Firewalld kullanıyorsanız, banaction
seçeneğini firewalld
olarak ayarlayın:
banaction = firewallcmd-ipset
Ve Firewalld’i yeniden yükleyin:
sudo firewall-cmd --reload
Sonuç
Fail2Ban, Linux sunucularında SSH, web sunucuları, FTP ve e-posta sunucularına karşı güvenlik sağlayarak brute-force saldırılarını engelleyen güçlü bir araçtır. Temel adımlar şunlardır:
✔ Fail2Ban kurulumunu yapın.
✔ SSH ve diğer hizmetleri koruyacak şekilde yapılandırın.
✔ Fail2Ban’ı başlatıp otomatik çalışmasını sağlayın.
✔ Engellenen IP’leri yönetin ve logları takip edin.
Bu adımları uygulayarak, Linux sunucularınızı yetkisiz erişimlere karşı daha güvenli hale getirebilirsiniz.