QuickAnswer
by

PleskでWordpressへのアクセス試行をブロックする

PleskでWordpressへのアクセス試行をブロックする

PleskでWordpressへのアクセス試行をブロックする

Pleskでアクセスログに記録される存在しないWordpressへのアクセス。
Wordpressやそのプラグインの脆弱性を突いてサーバーを悪用しようとする行為に対し、fail2banで速攻Banする。

そもそもWordpressはインストールされていないのでアクセスされても安全性は保てているが、アクセスログに 404 や 403 が並ぶのは気持ち良いものではない。
fail2banでアクセス拒否してしまえばその問題は軽減する。

記録されるログの例

proxy_access_ssl_log

153.207.177.16 - - [21/Jan/2024:14:47:21 +0900] "GET /wp-login.php HTTP/2.0" 404 11007 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0"
153.207.177.16 - - [21/Jan/2024:14:48:18 +0900] "GET /wp-login.php HTTP/2.0" 404 11007 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0"

access_ssl_log

153.207.177.16 - - [21/Jan/2024:14:47:14 +0900] "GET /wp-login HTTP/1.0" 404 32700 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0"
153.207.177.16 - - [21/Jan/2024:14:49:46 +0900] "GET /wp-admin/ HTTP/1.0" 404 32700 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0"

jailフィルタ

name: wp-custom-paths

[Definition]
failregex = ^<HOST>.* "GET .*/(wp-includes|wp-admin|wp-content|wp-login|wp-config).* HTTP/.*" (404|403)
ignoreregex = 
datepattern = ^[^\[]*\[({DATE})

jail設定

name: wp-custom-paths
フィルタ: wp-custom-paths
アクション: iptables-multiport[name="wp-custom-paths", port="http,https,7080,7081"]
ログパス:
/var/www/vhosts/system/*/logs/proxy_access_ssl_log
/var/www/vhosts/system/*/logs/access_ssl_log

fail2ban再起動

fail2banを再起動して適用させる。

CONTENTS