WordPress の管理画面を IP アドレスで制限することは Brute Force Attack に対して有効です。
たとえば Nginx を使っている場合、以下のような設定で許可された IP アドレス以外からのログインを拒否することができます。
server { location /wp-admin { allow 192.168.0.1; deny all; : } location = /wp-admin/admin-ajax.php { allow all; : } location = /wp-login.php { allow 192.168.0.1; deny all; : } }
また、IP アドレスによるログイン制限を行うプラグインもいくつかあるようです。
ただし、これらの方法だとリバースプロキシ配下のサーバの場合、期待した動作になりません。
# リバースプロキシサーバからは、実際にアクセスしてきたクライアントの IP アドレスは http ヘッダ X-Forwarded-For にセットされて来るため
そこで、簡単な PHP スクリプトを書いて対応しました。
続きを読む