WordPressへの不正ログイン対策について
お久しぶりです。
当サーバーユーザーさんにもWordPressを使われている方が増えているように思いますが、どうも最近国外からそのWordPressに不正にログインを試みる、いわゆるブルートフォース攻撃が多発しております。
パスワードに簡単なものを付けていると不正にログインされた結果、サイト自体が改ざんされたり、他所様サーバへの攻撃に使われる踏み台となったりする恐れがあります。
また、ログイン試行を受けている間はサーバのパフォーマンスに悪影響を及ぼす上に、やっぱり気持ち悪いので重い腰を上げて対処する事にしました。
そこで、手っ取り早く対処できる方法として、短絡的かもしれませんがログインページへのアクセスを日本国内からのみに限定する事にしました。
具体的にはwp-login.phpとxmlrpc.phpへのアクセスを制限しますので、公開サイト自体は国外からもアクセス可能です。
当サーバのユーザさんに海外在住の方もいらっしゃいますが、そのような方は既存または新規作成する.htaccessに下記のような記述を追記して、サーバの全体設定を個別に上書きする事で日本国外からもアクセスできるようにする事が可能です。
サンプルの.htaccess
<Files ~ "^(wp-login\.php|xmlrpc\.php)$">
order deny,allow
Allow from all
</Files>
とか
<Files ~ "^(wp-login\.php|xmlrpc\.php)$">
Require all granted
</Files>
みたいに。
日本国内のユーザさんでも、海外からログインさせたい場合は同様にして下さい。
ちなみにこの実装は2016年2月23日から開始しておりますので、現時点で当該ファイルへのアクセスは国内に限定されております。
国内か国外かの判断はIPアドレスを基にしており、これは日々世界中で変わっていくものですが、RIR(Regional Internet Registry)が公開しているIPアドレスデータベースを1日1回更新してApacheの設定をその都度自動更新しておりますので、基本的にはリアルタイムで反映されていきます。
運用にあたりこれらの挙動が原因と思われる問題が出てきた場合は、お手数ですがコメント下さい。
これでしばらく落ち着くといいなぁ・・・
CloudFlareなどのCDNを使っていると全ユーザーが海外経由アクセスになってしまうので、そのことを追記しておいたほうがいいと思います。
その場合管理画面にはDigest認証をかけるべきですかね?
htdigestコマンドを使えるようにしていただけませんか?
あとできればcurlコマンド、zipコマンド、unzipコマンドもお願いしたいです
連続コメントすみません。
サンプルコードのダブルクオーテーションが全角になっています。
そのままコピペするとHTTP 500になるので気をつけてください。