要するに、このチュートリアルでは、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
そうは言っても、懸念がある場合や助けが必要な場合は、コメントでお手伝いできます。