WEBサーバのApapcheでは、.htaccessなどにSatisfyを記述すると、簡易的なアクセス制限が可能なのは既知だと思います。
具体的には、私の場合、ここのブログは職場からのアクセスは拒否しています。
(職場内の共有PCで、自分のブログが開きっぱなしになるのが嫌なので ^^;)
しかし、昼休み等で職場からブログ投稿する場合もあるので、アクセス出来ないと困ります。
ですので、職場内の自分の固定IPからはアクセス許可、その他の職場からのIPは、アクセスは拒否しながら、 パスワード認証方式で許可する方式です。
ちょっと、分かりづらいと思うので、分かりやすく書くと、こんな感じ。
- 職場内からの自分の固定IP (許可)
- 職場内のサブネット (拒否)
- 職場内でも認証 (許可)
- 職場外からの接続 (許可)
上記のアクセス制限を、nginxで適用させるには、Apacheと似たようなsatisfyを利用します。
詳しくは、こちら。
<pre>
location / {
……
…..中略
satisfy any;
allow xx.xx.xx.xx; # 職場内で許可する固定IP
deny xx.xx.xx.0/24; # 職場内のサブネットを拒否
allow all; # その他は許可
auth_basic “Please enter your ID and password”;
auth_basic_user_file htpasswd; # パスワード認証で合致すれば許可
…..
…..
}
</pre>
nginx.confもしくは、virtualhost内の設定ファイルのどちらかに記述すれば良いでしょう。
認証は、Basic認証で、Apacheのhtpasswdを併用できます。
htpasswdファイルを新規に作成するには、htpasswd -c にて作成です。
コメント