WordPress için Fail2ban'ı nasıl yapılandırırsınız (WP-Login, XMLRPC)

Kısacası, bu eğitimde WordPress için Fail2Ban'ı kurmak ve yapılandırmak için komut satırlarını bulacaksınız. Güvenli WordPress oturum açma ve xmlrpc.php'nin kaba kuvvet sorguları.

WordPress platformunda geliştirilen bloglar ve web siteleri sıklıkla siber saldırıların hedefi oluyor. Saldırıların çoğu kaba kuvvettir ve kimlik doğrulama oturumunu veya XML-RPC (XML kullanarak Uzaktan Prosedür Çağrısı) istismarını hedefler. Neyse ki fail2ban bu durumlar için oldukça kullanışlı bir güvenlik çözümüdür. Bir WordPress sitesini fail2ban ile güvence altına almak istiyorsanız bu eğitimdeki kurulum adımlarını izleyin.

Öncelikle web sunucusuna SSH bağlantısı üzerinden erişiminizin olduğundan ve fail2ban uygulamasının kurulu olduğundan emin olun.

Debian'da WordPress için Fail2ban Yapılandırması

1. Öncelikle fail2ban uygulamasının sunucuda kurulu ve çalışır durumda olduğundan emin olmam gerekiyor. Aşağıdaki komut satırını çalıştırın:

systemctl status fail2ban

Çıktıda şöyle bir şey görmelisiniz:

● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-03-11 00:39:32 EET; 6 days ago
       Docs: man:fail2ban(1)
   Main PID: 917 (fail2ban-server)
      Tasks: 17 (limit: 76843)
     Memory: 33.2M
        CPU: 17min 1.752s
     CGroup: /system.slice/fail2ban.service
             └─917 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Sunucuda fail2ban kurulu değilse kurmanız gerekecektir. Fail2ban'ı Debian/Ubuntu'ya kurmak için komut satırını çalıştırın:

sudo apt install fail2ban

2. Bir sonraki adım WordPress için fail2ban filtresini oluşturmaktır. Filtreyi oluşturmak ve düzenlemek için terminaldeki komut satırını çalıştırın wordpress.conf.

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

Dosyada wordpress.conf WordPress kimlik doğrulama filtrelerini ve dosya kimlik doğrulamasını ayarlar xmlrpc.php, aşağıdaki gibi:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =

Asta înseamnă că prin orice metodă, GET veya POSTwp-login.php veya xmlrpc.php dosyalarına erişilirse, fail2ban kuralı oluşturulabilir. Koşul, bu dosyaların var olması ve saldırgan tarafından erişilebilmesidir. Bu, erişirken 200 (tamam) kodunu döndürmek içindir.

Dosyayı kaydeder /etc/fail2ban/filter.d/wordpress.conf.

3. Bir sonraki adım yapılandırmaktır “hapishane” WordPress için. Bu adım çoğu kullanıcının kafasını karıştırır çünkü kuralların, barındırma yönetim sistemine (varsa) veya web sunucusu yapılandırmasına bağlı olarak farklı şekilde ayarlanması gerekir.

HestiaCP, VestaCP veya MyVesta kullanıyorsanız dosyayı oluşturun ve düzenleyin /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

Bu dosyaya aşağıdaki satırları ekleyin:

[wordpress]
enabled  = true
port     = http,https
filter   = wordpress
logpath  = /var/log/nginx/domains/*.log #or apache2.
maxretry = 5
findtime = 1800
bantime  = 3600
action   = hestia[name=WEB] #hestacp action.

Yukarıdaki parametreleri ihtiyaçlarınıza göre ayarlayın. Verdiğim konfigürasyonda aynı IP'den 1800 dakika içerisinde 5 kez deneme yapılırsa HestiaCP web action kullanılarak 3600 dakika süreyle bloke edilecektir. (hestia[name=WEB]). Sunucunuzdaki sisteme bağlı olarak yardıma ihtiyacınız olacak yer burasıdır.

Aynı zamanda çok önemli ve “logpath“. Eylemin yürütüleceği veriler bu günlüklerden çıkarılır. Konumun doğru olduğundan emin olun.

Kurulu bir yönetim sisteminiz yoksa, WordPress için fail2ban ile IP engelleme eyleminin doğrudan üzerinden yapılması gerekecektir. iptables. Eylem çizgisi aşağıdaki gibi olacaktır:

action   = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]

Bunun yerine parantez olarak /etc/fail2ban/jail.local yapılandırma için ayrı bir dosya da kullanabilirsiniz: /etc/fail2ban/jail.d/wordpress.conf.

Ayarlamaları yaptıktan sonra değişiklikleri uygulayın.

sudo systemctl restart fail2ban

4. Yeniden başlattıktan sonra, WordPress için fail2ban'ın çalışıp çalışmadığını kontrol edin:

fail2ban-client status wordpress
Status for the jail: wordpress
|- Filter
|  |- Currently failed:	355
|  |- Total failed:	33873
|  `- File list: (log files per domain)
- Actions
   |- Currently banned:	127
   |- Total banned:	680
   `- Banned IP list:

Bu listede engellenen IP'leri bulduğunuzda, bunların da engellendiğinden emin olun. iptables. Yanlış yapılandırma nedeniyle fail2ban'da bunun engellenmiş bir IP olduğunu görüyorum, ancak gerçekte hala erişebiliyor olması durumuyla karşılaştım wp-login.php veya xmlrpc.php.

Her şeyin olması gerektiği gibi çalıştığını kontrol etmek için fail2ban listesinden engellenen bir IP seçin ve bunu iptables'da arayın.

Komut satırını çalıştırın:

iptables -L -v -n --line-numbers

Fail2ban tarafından engellenmiş görünen IP de bu listede yer alıyorsa bu, WordPress için fail2ban'ı doğru şekilde yapılandırdığınız anlamına gelir.

İlgili: WordPress'te yönetici kullanıcı şifresi nasıl sıfırlanır. E-postaya erişim yok.

Aynı zamanda, fail2ban eylemleriyle günlüğün kontrol edilmesi önemle tavsiye edilir:

sudo tail -f /var/log/fail2ban.log

Bununla birlikte, herhangi bir sorunuz varsa veya yardıma ihtiyacınız varsa, yorumlarda size yardımcı olabilirim.

Teknoloji konusunda tutkulu, 2006'dan başlayarak StealthSetts.com'da zevkle yazıyorum. İşletim sistemlerinde zengin bir deneyime sahibim: macOS, Windows ve Linux, aynı zamanda programlama dilleri ve bloglama platformlarında (WordPress) ve çevrimiçi mağazalar için (WooCommerce, Magento, Presashop).

Ev BT öğreticileri, faydalı ipuçları ve haberler. WordPress için Fail2ban'ı nasıl yapılandırırsınız (WP-Login, XMLRPC)
Yorum bırak