Linux Sunucuda Fail2Ban Kurulumu ve Brute Force Koruması
SSH, panel ve servis girişlerini otomatik IP ban sistemiyle koruma rehberi.
İnternete açık her Linux sunucu, sürekli olarak otomatik botlar tarafından taranır. Bu botlar özellikle SSH servisine deneme yanılma yöntemiyle giriş yapmaya çalışır. Bu saldırı türüne brute force saldırısı denir.
Fail2Ban, başarısız giriş denemelerini log dosyalarından takip eder. Belirlenen sayının üzerinde hatalı giriş yapan IP adreslerini otomatik olarak banlar. Bu sayede saldırgan aynı IP üzerinden tekrar tekrar şifre deneyemez.
1. Fail2Ban Ne İşe Yarar?
- SSH brute force saldırılarını azaltır.
- Çok sayıda hatalı giriş yapan IP adreslerini banlar.
- Sunucu loglarını izleyerek otomatik aksiyon alır.
- Firewall ile birlikte çalışarak saldırı trafiğini keser.
- Oyun sunucusu panelleri, web panel girişleri ve mail servisleri için de kullanılabilir.
2. Fail2Ban Kurulumu
Ubuntu ve Debian tabanlı sistemlerde:
apt update apt install fail2ban -y
CentOS, AlmaLinux veya Rocky Linux sistemlerde:
yum install epel-release -y yum install fail2ban -y
Servisi başlatmak ve açılışta otomatik çalışmasını sağlamak için:
systemctl enable fail2ban systemctl start fail2ban systemctl status fail2ban
3. Varsayılan Ayar Dosyasını Kopyalama
Fail2Ban ayarları doğrudan jail.conf dosyasında düzenlenmemelidir. Çünkü güncellemelerde bu dosya değişebilir. Bunun yerine jail.local dosyası oluşturulur.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Daha sonra dosyayı düzenleyin:
nano /etc/fail2ban/jail.local
4. SSH Korumasını Aktif Etme
Dosya içinde [sshd] bölümünü bulun ve aşağıdaki gibi düzenleyin:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 findtime = 10m bantime = 1h
Bu ayarın anlamı şudur:
- maxretry = 5: 5 hatalı girişten sonra işlem yapılır.
- findtime = 10m: Denemeler 10 dakikalık süre içinde sayılır.
- bantime = 1h: IP adresi 1 saat banlanır.
5. Kendi IP Adresinizi Güvenli Listeye Alma
Sabit IP kullanıyorsanız, kendi IP adresinizi ban sisteminden hariç tutabilirsiniz.
ignoreip = 127.0.0.1/8 192.168.1.1 SUNUCUYA_BAGLANDIGINIZ_IP
Burada SUNUCUYA_BAGLANDIGINIZ_IP alanına kendi gerçek IP adresinizi yazmalısınız.
6. Fail2Ban Servisini Yeniden Başlatma
systemctl restart fail2ban
Durumu kontrol etmek için:
fail2ban-client status
SSH jail durumunu görmek için:
fail2ban-client status sshd
7. Banlanan IP Adreslerini Görme
fail2ban-client status sshd
Çıktıda Banned IP list alanında banlanan IP adresleri görünür.
8. Yanlışlıkla Banlanan IP Adresini Açma
Eğer kendi IP adresiniz veya güvenilir bir kullanıcının IP adresi yanlışlıkla banlandıysa şu komutla kaldırabilirsiniz:
fail2ban-client set sshd unbanip IP_ADRESI
Sık Yapılan Hatalar
- jail.conf dosyasını direkt düzenlemek
- Kendi IP adresini ignoreip alanına eklememek
- SSH portu değiştirildiği halde Fail2Ban port ayarını değiştirmemek
- Log dosyası yolunu yanlış yazmak
- Fail2Ban aktif sanıp servis durumunu kontrol etmemek
FAQ
Fail2Ban tek başına yeterli güvenlik sağlar mı?
Hayır. Fail2Ban önemli bir koruma katmanıdır fakat güçlü şifre, güncel sistem, güvenlik duvarı ve doğru servis yapılandırması ile birlikte kullanılmalıdır.
Fail2Ban oyun sunucusunu korur mu?
Doğrudan oyun trafiğini analiz etmez. Ancak SSH, panel, web servisleri ve bazı login logları üzerinden koruma sağlayabilir.
Ban süresini artırabilir miyim?
Evet. bantime değerini 1h yerine 24h, 7d gibi daha uzun sürelerle ayarlayabilirsiniz.
Güvenlik Önerileri
- Root girişini kapatın.
- Güçlü ve benzersiz şifre kullanın.
- Mümkünse SSH key ile giriş yapın.
- Fail2Ban loglarını düzenli kontrol edin.
- Gereksiz servisleri internete açık bırakmayın.
Bu makale PvPSunucusu için özel olarak hazırlanmıştır.