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 port 22 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

Create a hand-drawn dense floral motif featuring large leaves and blooming flowers. The design should have soft, rounded edges and avoid sharp terminations. Use intricate black lines with a white background, ensuring the design feels rich and full of detail while maintaining elegance.