CORE SERVERでIP制限とパスワード認証をサイト全体に導入する方法

備忘録です。

軽く調べたらIP制限については情報がなかったので、実際に試してちゃんと動作したのでめもめも。

とりあえず、パスワード生成して、.htpasswdに保存する。
パスワード生成はいろいろ方法があるけど、CORE SERVERのコントロールパネルから「ツール」=>「htpasswdの生成」でフォームを入力するとテキストが出てくるので、それをコピーして、認証をかけたいディレクトリに「.htpasswd」というファイルを作成して貼り付ける。「name:aisrVYJBuecKI」こんな感じのテキストです。

例えば、shinjuku_pg.com というサイト全体に認証をかけたい場合、
「/virtual/USERNAME/public_html/shinjuku_pg/.htpasswd」にファイルを作成する。「USERNAME」は自分のユーザー名に置き換えてください。
コントロールパネルのファイルマネージャからだと。USERNAMEまで省略されて表示されるので、「/public_html/shinjuku_pg/.htpasswd」ですね。

次に、.htaccessファイルを作成。
上のパスワードファイルと同じ場所に「.htaccess」というファイルを作成。

下記内容を書き込む。

order deny,allow
deny from all
allow from 123.456.789.001
allow from 123.456.789.002

AuthUserFile /virtual/USERNAME/public_html/DOMAIN.COM/.htpasswd
AuthGroupFile /dev/null
AuthName "Contact me!@shinjuku_pg"
AuthType Basic
require valid-user

allow from 123.456.789.001
のIP部分は許可したいIPに書き換える。複数のIPを許可したい場合は、alow~の行を複数書けばよい。
「USERNAME」は自分のユーザー名に置き換えてください。
「DOMAIN.COM」は制限したいドメイン名もしくはディレクトリです。
「AuthName」の項目は好きに書いてokです。

これだけで、許可したIPアドレスからしかアクセスができなくなります。許可IPからでもパスワードが必要です。

個人的にはこんな設定が必要になることなんてあり得ないんですけどね。
セキュリティ的にbasic認証なんて気休めだけど、core serverはdigest認証使えなかった気がするし仕方ないのか。せめて共有SSL使わないと。
安いサーバでセキュリティ求められてもムリですし。