Fail2Ban, sunucularınızı brute-force saldırılarına karşı korumanın en etkili yollarından biridir. Bu rehberde, Fail2Ban'ı kurmak, yapılandırmak ve test etmek için gereken tüm adımları açıklıyoruz. Örnek olarak SSH hizmetini korumayı ele alacağız. Bu rehber, farklı bir port kullanıldığını varsaymaktadır (örneğin 2222).
1. Fail2Ban Nedir?
Fail2Ban, sunucu loglarını izleyerek başarısız giriş denemelerini tespit eden ve bu girişimleri gerçekleştiren IP adreslerini otomatik olarak yasaklayan bir güvenlik aracıdır. Bu araç: - SSH, HTTP, FTP gibi servislerinizi koruyabilir. - Brute-force saldırılarını engelleyebilir. - Yasaklama sürelerini ve kriterlerini özelleştirmenize olanak tanır.
2. Fail2Ban Nasıl Kurulur?
Ubuntu veya Debian Üzerinde Kurulum
Aşağıdaki komutla Fail2Ban'ı kurabilirsiniz:
sudo apt update
sudo apt install fail2ban -y
Kurulum tamamlandığında Fail2Ban servisini başlatmayı unutmayın:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Fail2Ban'ın durumunu kontrol edin:
sudo systemctl status fail2ban
3. Varsayılan Yapılandırmayı Düzenleme
Fail2Ban'ın varsayılan yapılandırma dosyasını değiştirmek yerine, güvenli bir şekilde özelleştirme yapmak için bir yerel yapılandırma dosyası oluşturun:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
jail.local
dosyası üzerinden yapılandırmalar yapacağız.
4. SSH için Fail2Ban Yapılandırması
SSH hizmeti için bir jail tanımlayarak brute-force saldırılarını engellemek için aşağıdaki adımları izleyin:
jail.local
Dosyasını Düzenleme
jail.local
dosyasını açın:
sudo nano /etc/fail2ban/jail.local
Aşağıdaki bloğu ekleyin veya düzenleyin:
[DEFAULT]
bantime = 3600 # Yasak süresi (saniye cinsinden, örn: 1 saat)
findtime = 600 # Maxretry süresi (örn: 10 dakika)
maxretry = 5 # Yasaklanmadan önce izin verilen başarısız giriş sayısı
[sshd]
enabled = true
port = 2222 # Kullandığınız özel SSH portu
logpath = /var/log/auth.log
filter = sshd
backend = %(sshd_backend)s
Açıklamalar
bantime
: Bir IP'nin yasaklanma süresini belirler.findtime
: Belirli bir süre içinde (örneğin 10 dakika)maxretry
kadar başarısız giriş denemesi olduğunda yasaklama başlatılır.maxretry
: Bir IP adresi yasaklanmadan önce kaç başarısız giriş denemesi yapılabilir.port
: SSH hizmetinin çalıştığı port. Varsayılan port22
yerine farklı bir port kullanmak güvenlik açısından önerilir.logpath
: SSH loglarının bulunduğu dosya (Ubuntu için genelde/var/log/auth.log
).filter
: SSH hizmetini izlemek için kullanılan Fail2Ban filtresidir.
5. Fail2Ban Hizmetini Yeniden Başlatma
Yapılandırmayı uygulamak için Fail2Ban hizmetini yeniden başlatın:
sudo systemctl restart fail2ban
Hizmetin çalıştığından emin olun:
sudo systemctl status fail2ban
6. Fail2Ban Durumunu Kontrol Etme
Aktif olan jail'leri görmek için:
sudo fail2ban-client status
SSH jail'inin durumunu kontrol etmek için:
sudo fail2ban-client status sshd
7. Fail2Ban'ı Test Etme
Fail2Ban'ın doğru çalıştığını test etmek için yanlış bir SSH giriş denemesi yapabilirsiniz:
ssh root@<sunucu-ip> -p 2222
Birden fazla başarısız giriş denemesinden sonra, Fail2Ban belirtilen IP'yi yasaklayacaktır. Yasaklanan IP'leri görmek için:
sudo fail2ban-client status sshd
Yasaklanan Bir IP'yi Kaldırma
Eğer yanlışlıkla kendi IP'nizi yasakladıysanız, şu komutla yasağı kaldırabilirsiniz:
sudo fail2ban-client set sshd unbanip <IP-adresi>
8. Ek Güvenlik Ayarları
Firewall ile Entegre Edin
Fail2Ban ile birlikte bir firewall kullanarak yalnızca gerekli portları açın:
sudo ufw allow 2222/tcp
sudo ufw enable
Whitelist (Beyaz Liste)
Kendi IP adresinizin yasaklanmasını önlemek için jail.local
dosyasına şunları ekleyebilirsiniz:
ignoreip = 127.0.0.1/8 ::1 <kendi-ip-adresiniz>
Sonuç
Bu rehberde, Fail2Ban'ın nasıl kurulup yapılandırılacağını adım adım öğrendik. Fail2Ban, sunucunuzu brute-force saldırılarına karşı korumak için güçlü ve esnek bir araçtır. Ancak, güvenliği artırmak için Fail2Ban'ın düzenli olarak izlenmesi ve yapılandırmaların güncel tutulması önemlidir.
Daha fazla bilgi için Fail2Ban'ın resmi dokümantasyonuna göz atabilirsiniz: Fail2Ban Documentation
