さきほど、いつものように自分のブログサイトの記事を更新しようとして、ワードプレスにログインしようとすると403エラーが表示されてしまいました。どうしてだろうと考えた結果、おととい自宅のネットを光に変更変更して、ルーターも新しく交換したことを思い出しました。ブログは全部で10サイトほど運営していますが、他のサイトは以上ありません。
随分前なので忘れていましたが、当該サイトはよく攻撃を受けたのでIP制限をかけたような気がしました。すると .HTACCESSの変更が必要ですよね。なんか憂鬱な気がします。.HTACCESSの中身を調べてみると
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 111.111.111.111
Allow from 222.222.222.222
</Files>
SetEnvIf Request_URI “.*” Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI “.*” Ngx_Cache_StaticMode
# BEGIN WordPress
# “BEGIN WordPress” から “END WordPress” までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule># END WordPress
これは「wp-login.php へのアクセスを、特定のIPアドレス(上記2つ)からのみに制限する」という設定です。
つまり、新しいネット回線で割り当てられたグローバルIPアドレスがこのリストに入っていないため、403エラーが出ているのです。
以下のサイトなどで 現在のIPアドレス を確認します。
確認したIPアドレス(例えば 333.333.333.333)を .htaccess の該当箇所に追加します:
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 111.111.111.111
Allow from 222.222.222.222
Allow from 333.333.333.333
</Files>
これで保存してOKになりました。
IP制限はセキュリティ向上には有効ですが、プロバイダによってはIPが頻繁に変わる場合もあるため、その場合は都度更新が必要です。
どうしても面倒な場合は、この制限自体を一時的に解除することも可能です(ただしセキュリティリスクあり)。
今後はIP制限をかける場合は、プロバイダのIPアドレスが変動するかどうかを確認しておくと、再発を防げますね。また、よりセキュアにしたい場合は、Basic認証の追加や2段階認証の導入もしようかと思います。
コメント