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)maxretrykadar 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 port22yerine 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:
```bash sudo systemctl status fail2ban