BASIC認証、IP制限 wordpress その他

「セキュリティ甘いよ」
指摘されたらまずい。対策しよう。

BASIC認証IP制限パーミッション

wp-admin

主にwordpress関連のお話になる。
Akismet Anti-Spam」などプラグインでの対策はしているが、管理画面周りの対策が抜けている場合。

具体的には、「wp-admin」「wp-login.php」辺りの対策は、wordpress初心者にとっては初期段階で設定すべきところになる。例えば、BASIC認証IP制限などがある。この辺りのお話は検索すれば、色々な記事が出てくるので難しい話ではない。

BASEIC認証

BASIC認証簡易的な対策にはなるが、それでも二重の防壁を作る上では対策していないよりもマシだ。wp-adminの方は、サーバーの種類によって設定方法が異なる。レンタルサーバーの場合、レンタル会社によってもサーバーの設定画面で設定できるか否かも変わってくる。例えば、xserverの場合には、管理画面のアクセス制限設定によって、ディレクトリ単位でBASIC認証の設定ができる。どのようにやるかについては、サーバー会社のマニュアルを見たり、該当のサーバー名で検索すれば大抵情報が出てくるので、それを見てやれば難しくない。

ユーザー設定

一点注意する点は、BASIC認証で使用するユーザー設定。手動でファイルに設定して(.htaccess)ユーザーとパスを設定するということではなく、例えばレンタルサーバーの管理画面で設定できる場合には、設定が容易という利点があるが、このユーザー名、パスを忘れないでおきたい。まあ、後で再設定もできるので問題は無いが。

wp-login.php

wp-login.phpは、wordpressのログイン画面。実際に、FTP/SFTP/SCPクライアントソフト(winscp等)を使いサーバーにアクセスしてファイルを見ると一目瞭然。
このログイン画面だが、ブルートフォース攻撃の対象になり得る。
折角ブログを更新して拡大してきたのに攻撃に遭い、データが消失してしまったとなれば、これまで積み重ねてきたものが水の泡となる。そんな状況を想定してバックアップも当然必要だが、できることは予めやっておかなければならない。

BASIC認証

BASIC認証はどのように設定するか。
wp-login.phpがある同じ階層に、.htaccessがあると思うが、ここに設定を追加する。
.htaccessは念のためコピーして分かるようにバックアップを取る。
#END WordPress」が末にあるが、その上部に、以下を追加する。

<Files wp-login.php>
AuthUserFile /home/hogehoge(ここは、各自異なる)/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
allow from 111.111.111.111
</Files>

ここで書き方を間違えると、「500 Internal Server Error」が出る。大抵は.htaccessの書き間違えが多いので、記述に誤りが無いかを確認する。

こちらをコピーしても使えるが、変えるところは、AuthUserFileallow fromの部分。
AuthUserFileは絶対パスで書くこと。絶対パスは、wp-login.phpがあるディレクトリがそれになる。
allow fromIPアドレス制限になるので、BASIC認証だけでなく、IPアドレスも制限したい場合にはこちらも合わせて書いておけばよい。

.htpasswd

そして、同じ階層に、.htpasswdも作らないといけない。これはユーザー名とパスの組み合わせだけを記述したものとなる。passを作成するエディタは色々とあるが、今回は「.htaccessEditor」を参照した。例えば、下記のようなものが作成される。このエディタでできたものだけを.htpasswdに書くだけ。これで、wp-login.phpにBASIC認証が設定された。.htpasswdファイルは、最初.txt形式でファイルを作成して、ユーザー名とパスを入れた後で、ファイル名を「.htpasswd」に変更するファイルのアップロードは、FTP/SFTP/SCPクライアントソフトを使用する。

abcd1234:abcdabcd
→ID:pass となっている。passは暗号化されている。

パーミッション

.htaccesswp-config.php等のパーミッションの設定にも気を付けたい。初期の段階では所有者だけに書き込み権限が付与されているのが標準だとは思うが、念のため、複数のユーザーがいる場合には、パーミッションの設定がどうなっているかも確認した方が良いだろう。

というわけで、今回はここまで。

参照

WordPressでブログを始めるまで #3~WinSCPのインスールと設定~
【パーミッション】WordPressセキュリティ対策