Mehmet Yerli

Mehmet Yerli

Maden Mühendisi & Yazılım Geliştirme Uzmanı

Fail2Ban ile Sunucu Güvenliği Sağlama

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:

```bash sudo systemctl status fail2ban

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.