WordPress (WP-Login, XMLRPC) 용 Fail2ban을 어떻게 구성합니까?

요컨대,이 튜토리얼에서는 WordPress 용 Fail2Ban을 설치하고 구성 할 수있는 명령 줄을 찾을 수 있습니다. 보안 WordPress 인증 및 xmlrpc.php 총 엉덩이.

WordPress 플랫폼에서 개발 된 블로그 및 사이트는 종종 사이버 공격 목표입니다. 대부분의 공격은 총 힘 유형이며 XML-RPC (XML을 사용한 원격 절차 호출)의 인증 세션 또는 악용을 목표로합니다. 다행히도 Fail2ban은 이러한 상황에 매우 유용한 보안 솔루션입니다. Fail2ban으로 WordPress 사이트를 보호하려면이 자습서의 구성 단계를 따르십시오.

우선, SSH 연결을 통해 웹 서버에 액세스하고 Fail2ban 응용 프로그램이 설치되어 있는지 확인하십시오.

데비안의 WordPress에 대한 Fail2Ban 구성

1. 먼저 FAIL2BAN 애플리케이션이 설치되고 서버에서 실행 중인지 확인해야합니다. 아래 명령 줄을 실행하십시오.

systemctl status fail2ban

출력에서 양식의 내용을보아야합니다.

● 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

FAIL2BAN이 서버에 설치되지 않은 경우 설치해야합니다. Debian / Ubuntu에서 설치 실패 2ban의 주문 라인을 수행하십시오.

sudo apt install fail2ban

2. 다음 단계는 WordPress 용 Fail2ban 필터를 만드는 것입니다. 터미널에서 명령 줄에서 실행하여 필터를 작성하고 편집하십시오. wordpress.conf.

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

파일에서 wordpress.conf WordPress 인증 필터 및 파일 인증을 설정합니다 xmlrpc.php, 다음과 같이 :

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

이것은 모든 방법으로 GET 또는 POST, wp-login.php 또는 xmlrpc.php 파일에 액세스 할 수있게되며, Fail2ban의 규칙을 만들 수 있습니다. 조건은 이러한 파일이 존재하며 공격자가 액세스 할 수 있다는 것입니다. 액세스하려면 코드 200 (OK)을 반환하는 것입니다.

파일을 저장합니다 /etc/fail2ban/filter.d/wordpress.conf.

3. Următorul pas este să configurezi “교도소” pentru WordPress. La acest pas se încurcă cei mai mulți utilizatori, deoarece regulile trebuie stabilite diferit în funcție de sistemul de management pentru hosting (dacă acesta există) sau de configurația serverului web.

hestiacp, vestacp 또는 myvesta를 사용하는 경우 파일을 만들고 편집하십시오. /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

이 파일에 아래 줄을 추가하십시오.

[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.

필요에 따라 위의 매개 변수를 조정하십시오. 나에게 제공된 구성에서 1800 분 안에 동일한 IP에서 5 번의 반복 시도가 있으면 웹 hestiacp의 도움으로 3600 분 동안 차단됩니다. (hestia[name=WEB]). 여기서 서버에있는 시스템에 따라 도와야합니다.

De asemenea, este foarte important șilogpath. Din aceste log-uri sunt extrase datele pe baza cărora se va executa acțiune. Asigurați-vă că locația este corectă.

설치된 관리 시스템이없는 경우 WordPress가 직접 수행하려면 Fail2Ban을 사용하여 IPS를 차단하는 작업이 필요합니다. iptables. 조치 라인은 다음과 같습니다.

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

대신 브래킷으로 /etc/fail2ban/jail.local 다음과 같은 별도의 구성 파일을 사용할 수도 있습니다. /etc/fail2ban/jail.d/wordpress.conf.

조정 한 후에는 변경 사항을 적용하십시오.

sudo systemctl restart fail2ban

4. 다시 시작한 후 WordPress Works의 Fail2ban을 확인하십시오.

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:

이 목록에서 차단 된 IP를 찾은 후에는 차단되었는지 확인하고 iptables. 잘못된 구성으로 인해 Fail2Ban에서 그것이 차단 된 IP임을 알기 위해 상황을 충족했지만 실제로는 여전히 액세스 할 수 있습니다. wp-login.php 또는 xmlrpc.php.

모든 것이 제대로 작동하는지 확인하려면 Fail2Ban 목록에서 차단 된 IP를 선택하고 iptables에서 찾으십시오.

명령 줄 실행 :

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

FAIL2BAN으로 차단 된 IP 가이 목록에도 발견되면 WordPress에 맞는 Fail2Ban을 구성했음을 의미합니다.

관련된: WordPress에서 관리자 사용자 비밀번호를 재설정하는 방법. 이메일에 액세스하지 않고.

동시에 Fail2Ban 조치로 로그를 확인하는 것이 좋습니다.

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

즉, 우려가 있거나 도움이 필요하면 의견에 도움이 될 수 있습니다.

기술에 대한 열정, 저는 2006 년부터 StealthSetts.com에서 즐거움을 가지고 글을 씁니다. 운영 체제와 같은 풍부한 경험이 있지만 언어 및 블로그 플랫폼 (WordPress) 및 온라인 상점 (Woocommerce, Magento, Presashop)에 대한 경험이 풍부합니다.

IT 튜토리얼, 유용한 팁 및 뉴스. WordPress (WP-Login, XMLRPC) 용 Fail2ban을 어떻게 구성합니까?
의견을 남겨주세요