Image

Bilgi Veritabanı → Şifre Tahminine Karşı Koruma için Fail2Ban Yapılandırması

[Virtual sunucular]
Yayın tarihi: 27.01.2023

Fail2Ban hizmeti, sitenize şifre tahmini yaparak erişmeye çalışan botların IP adreslerini engellemeye yardımcı olur. Bu tür saldırılar, özellikle çok sayıda POST isteği nedeniyle web sunucusunda yüksek yük oluşturabilir. Bu örneklerde, popüler bir CMS olan Wordpress ve SSH hizmeti için IP adreslerini engellemeyi ele alacağız.

1. Fail2Ban Kurulumu

1.1 Epel Deposu Ekleme

yum install epel-release 

Sonrasında, /etc/yum.repos.d/epel.repo dosyasında depoyu etkinleştirin (enabled=1 olarak ayarlayın).

yum install fail2ban

2. Genel Yapılandırma

Fail2ban yapılandırma dosyalarını /etc/fail2ban dizininde saklar. Varsayılan değerleri içeren dosya jail.conf olarak adlandırılır. Bu dosya paket güncellemeleri ile üzerine yazılabileceğinden, doğrudan kullanılmamalıdır. Bunun yerine jail.local adında yeni bir dosya oluşturacağız. jail.local dosyasında tanımlanan herhangi bir değer jail.conf dosyasındakilerin üzerine yazar.

jail.conf dosyasında [DEFAULT] bölümü ve ardından ayrı hizmetler için bölümler bulunur. jail.local, bu değerlerin herhangi birini geçersiz kılabilir. Ayrıca, /etc/fail2ban/jail.d/ dizinindeki dosyalar da her iki dosyadaki ayarları geçersiz kılmak için kullanılabilir. Dosyalar şu sırada uygulanır:

    /etc/fail2ban/jail.conf
    /etc/fail2ban/jail.d/*.conf (alfabetik sıralama)
    /etc/fail2ban/jail.local
    /etc/fail2ban/jail.d/*.local (alfabetik sıralama)

Varsayılan ayarları /etc/fail2ban/jail.local dosyasına ekleyin:

[DEFAULT]

# Sunucuları bir saat boyunca yasakla:
bantime = 3600

# /etc/fail2ban/jail.d/00-firewalld.conf dosyasını geçersiz kıl:
banaction = iptables-multiport

[sshd]
enabled = true

Hizmeti yeniden başlatın:

service fail2ban restart

Durumu kontrol etmek için şu komutu kullanın:

fail2ban-client status

3. Wordpress Filtresi

Bir IP adresinden 10 dakika içinde 10’dan fazla kez /wp-login.php (wordpress admin paneli) adresine istek gönderen IP adreslerini engellemek için bir filtre ve engelleme kuralı (jail) ekleyin.

3.1 Filtre

/etc/fail2ban/filter.d/wordpress.conf

[Definition]

failregex = ^.* "POST .*/wp-login.php([/\?#\\].*)? HTTP/.*" 200
ignoreregex =

Bu filtre ile IP adreslerini tespit edeceğiz.

3.2 Jail Ekleme

/etc/fail2ban/jail.d/wordpress.conf

[wordpress]

action = iptables-multiport[name="wordpress", port="http,https"]
filter = admin-wordpress
logpath = /var/www/vhosts/system/*/logs/*access*log
/var/log/httpd/*access_log

Eğer farklı bir web sunucusu kullanıyorsanız, log formatına göre filtreyi değiştirmeniz ve doğru log dosyasının (access_log) yolunu belirtmeniz gerekir. Değişikliklerden sonra hizmeti yeniden başlatın.





No Comments Yet