WordPressへの不正アクセスをfail2banと連携してiptablesレベルで止める


WordPress側はプラグインインストールするだけ

Linux側が面倒。

(1) WordPressのプラグインディレクトリにあるfail2ban用の設定ファイルをコピー

WordPressのプラグインディレクトリ内 wp-content/plugins/wp-fail2ban/filters.d/ にあるfail2ban用のfilter設定ファイルを /etc/fail2ban/filter.d/ ディレクトリにコピーする

(2) fail2banのjail.local 設定ファイルに設定追加

サーバローカルの設定をおこなう為の /etc/fail2ban/jail.local ファイルにwordpress-hard, wordpress-softについての設定を追加する。

CentOS7の標準設定およびWP fail2banプラグイン標準設定で使用した場合、WP fail2banプラグインがsyslogに出力したログは /var/log/messages に保存される。

そのため、 「logpath」を「/var/log/messages」と指定する

[wordpress-hard]
enabled = true
filter = wordpress-hard
logpath = /var/log/messages
bantime  = 25920000
maxretry = 1
port = http,https

[wordpress-soft]
enabled = true
filter = wordpress-soft
logpath = /var/log/messages
maxretry = 3
bantime  = 25920000
port = http,https

(3) fail2banを再起動して反映

「systemctl restart fail2ban」を実行して設定変更を反映させる