Fail2Ban Kurulumu ile SSH ve Brute Force Saldırılarını Engelleme
Fail2Ban Kurulumu ile SSH ve Brute Force Saldırılarını Engelleme
Fail2Ban, Linux sistemlerinde SSH, FTP, HTTP gibi servisleri brute force (şifre deneme) saldırılarına karşı koruyan bir güvenlik aracıdır. Log dosyalarını izleyerek belirli sayıda başarısız giriş denemesi tespit ettiğinde saldırgan IP adresini otomatik olarak engeller. Bu yazıda, SSH servisinde Fail2Ban kurulumu, yapılandırması ve saldırı önleme mekanizmaları adım adım açıklanmıştır.
- Fail2Ban Nedir?
- Kurulum Adımları
- 1) Paket Kurulumu
- 2) Servisi Başlatma ve Etkinleştirme
- SSH Koruması için Yapılandırma
- 1) Yapılandırma Dosyasını Kopyalama
- 2) SSH Jail Ayarları
- Firewall ile Entegrasyon
- Fail2Ban Komutları
- Günlük Logları Görüntüleme
- Ek Koruma Katmanları
- Fail2Ban Jail Örnekleri
- Fail2Ban Servisini Otomatik Yeniden Başlatma
- Güvenlik İzleme ve Raporlama
- Performans ve Ölçekleme İpuçları
- Sonuç
Fail2Ban Nedir?
Fail2Ban, sistem loglarını (örneğin /var/log/auth.log) izler, belirli desenlere (regex) göre hatalı kimlik doğrulama girişimlerini tespit eder ve saldırgan IP’leri iptables veya firewalld üzerinden engeller. Böylece sürekli parola denemeleriyle yapılan brute force saldırıları otomatik olarak durdurulur.
Kurulum Adımları
1) Paket Kurulumu
# Debian/Ubuntu sudo apt update sudo apt install fail2ban -y # CentOS/RHEL sudo dnf install fail2ban -y
Kurulum tamamlandıktan sonra servis otomatik olarak başlatılmaz. Aşağıdaki adımlarla aktif edilir.
2) Servisi Başlatma ve Etkinleştirme
sudo systemctl enable fail2ban sudo systemctl start fail2ban sudo systemctl status fail2ban
Servis aktif durumda olduğunda “active (running)” ibaresi görülmelidir.
SSH Koruması için Yapılandırma
1) Yapılandırma Dosyasını Kopyalama
Orijinal dosya üzerine yazmamak için jail.local dosyası oluşturun:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
2) SSH Jail Ayarları
sudo nano /etc/fail2ban/jail.local
Aşağıdaki ayarları bulun ve düzenleyin:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 findtime = 600 bantime = 3600
- maxretry: Belirtilen süre içinde izin verilen hatalı giriş sayısı.
- findtime: Bu süre içinde yapılan hatalı denemeler sayılır (saniye cinsinden).
- bantime: IP’nin engellenme süresi (saniye).
Firewall ile Entegrasyon
Fail2Ban iptables veya firewalld üzerinden IP engeller. Etkin modülü kontrol edin:
sudo fail2ban-client status
Çıktıda etkin “jail” (örneğin sshd) ve engellenmiş IP adresleri listelenir.
Fail2Ban Komutları
# Aktif jail listesi sudo fail2ban-client status # Belirli jail detayları sudo fail2ban-client status sshd # Manuel IP engelleme sudo fail2ban-client set sshd banip 192.168.1.10 # IP yasağını kaldırma sudo fail2ban-client set sshd unbanip 192.168.1.10
Günlük Logları Görüntüleme
Fail2Ban olaylarını takip etmek için:
sudo tail -f /var/log/fail2ban.log
Burada engellenen IP’ler ve jailbreak durumları görüntülenir.
Ek Koruma Katmanları
- SSH portunu 22 yerine özel bir porta taşıyın (örneğin 2222).
- Parola yerine SSH anahtar (key-based) kimlik doğrulama kullanın.
- fail2ban banaction parametresini “iptables-multiport” olarak ayarlayın.
- Ek olarak WAF Koruma ile web tabanlı saldırıları filtreleyin.
Fail2Ban Jail Örnekleri
# Apache için [apache-auth] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 3
Fail2Ban Servisini Otomatik Yeniden Başlatma
Bazı sistemlerde reboot sonrası fail2ban geç başlatılabilir. Bu durumda aşağıdaki servis bağımlılığını kontrol edin:
sudo systemctl enable fail2ban.service sudo systemctl daemon-reload
Güvenlik İzleme ve Raporlama
Fail2Ban olaylarını izlemek için bir SIEM çözümü (ör. Wazuh, Graylog, Splunk) veya e-posta bildirimi yapılandırılabilir:
sudo apt install sendmail sudo nano /etc/fail2ban/jail.local # ekleyin destemail = admin@domain.com action = %(action_mwl)s
Performans ve Ölçekleme İpuçları
- Yüksek trafikli sunucularda logrotate yapılandırmasıyla log dosyalarını yönetin.
- Ban süresini orantılı ayarlayın; çok kısa olursa saldırgan tekrar dener.
- “recidive” jail’i aktif ederek sürekli saldırgan IP’leri kalıcı engelleyin.
Sonuç
Fail2Ban, SSH ve diğer servislerde brute force saldırılarını durdurmanın en pratik yoludur. Kurulumdan sonra otomatik çalışan yapı sayesinde yönetici müdahalesine gerek kalmadan IP tabanlı koruma sağlanır. Ek olarak, HostLigo üzerindeki Linux VDS çözümleriyle bu yapı birleştirildiğinde, sunucu güvenliği ve uptime garantisi en üst seviyeye çıkar.
makefile
Kodu kopyala