WordPress(WP-Login、XMLRPC)用のFail2banをどのように構成しますか

要するに、このチュートリアルでは、WordPress用にFail2banをインストールして構成できるコマンドラインがあります。安全なWordPress認証とXMLRPC.PHP GROSS ASS。

WordPressプラットフォームで開発されたブログやサイトは、多くの場合、サイバー攻撃ターゲットです。ほとんどの攻撃は総力型であり、XML-RPC(XMLを使用したリモートプロシージャコール)の認証セッションまたは利用をターゲットにしています。幸いなことに、Fail2Banはこれらの状況にとって非常に有用なセキュリティソリューションです。 fail2banでWordPressサイトを保護する場合は、このチュートリアルの構成手順に従ってください。

まず、SSH ConnectionによってWebサーバーにアクセスできること、およびFail2Banアプリケーションがインストールされていることを確認してください。

Debianの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でインストールfail2banの注文ラインを実行します:

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.次のステップは、構成することです “刑務所” WordPress用。このステップでは、ほとんどのユーザーは混乱しています。これは、ホスティング管理システム(存在する場合)または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回の繰り返しの試みがある場合、Web HestiacPの助けを借りて3600分間ブロックされます。 (hestia[name=WEB])。ここでは、サーバー上にあるシステムに応じて支援する必要があります。

それも非常に重要です “logpath“。これらのログから、どのアクションが実行されるかに基づいてデータが抽出されます。場所が正しいことを確認してください。

インストールされた管理システムがない場合は、WordPressが直接実行されるためにFALE2BANを使用して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の動作については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:

このリストでブロックされたIPSを見つけた後、それらがブロックされていることを確認してください iptables。私は、間違った構成のために、それがブロックされたIPであることを確認するためにfail2banで、実際にはまだアクセスできるという状況を満たしました 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に喜びをもって書いています。私はオペレーティングシステムなどの豊富な経験を持っています:Macos、Windows、Linuxだけでなく、プログラミング言語やブログプラットフォーム(WordPress)、およびオンラインストア(WooCommerce、Magento、Presashop)。

あなたのソースのチュートリアル、便利なヒント、ニュース。 WordPress(WP-Login、XMLRPC)用のFail2banをどのように構成しますか
コメントを残してください