ApacheでBasic認証とIPアドレス制限を一緒に設定する




投稿日:

Apache忘却録シリーズです。

webを運用する上で、あのIPからはすべて遮断して、
このIPからは許可しbasic認証を掛けるというような設定が必要な時は多々あると思います。
そんな時に、まとめて設定する方法です。

まずは別々に設定する方法を見てみます。

【Basic認証を掛ける場合】

[html]# htpasswd -b -c -m /www/.htpasswd user password[/html]
.htpasswdというファイルが出来て、そこにユーザ名、そしてパスワードが暗号化された状態で記録されます。

[html]# vi /etc/httpd/conf/httpd.conf

該当部分に以下を追加
<Directory "/var/www/html/member">
AuthType Basic
AuthName "Private"
AuthUserFile /etc/httpd/.htpasswd
Require user secret
</Directory>
[/html]

※ 詳細設定は色々なところに情報が載っているのでそこを参照してください。

Apacheの再起動をして反映
[html]# service httpd restart[/html]


【IPアドレス制限を掛ける場合】

特定のIPを許可したり、拒否したりすることが可能です。

[html]# vi /etc/httpd/conf/httpd.conf

該当部分に以下を追加
<Directory "/var/www/html/member">
order deny, allow #許可の項目を優先
deny from all #すべての要求を拒否
allow from 111.222.222.222/32 #許可するIPアドレス
</Directory>
[/html]

Apacheの再起動をして反映
[html]# service httpd restart[/html]



【Basic認証とIPアドレス制限を一緒に掛ける場合】

[html]# vi /etc/httpd/conf/httpd.conf

該当部分に以下を追加
<Directory "/var/www/html/member">
AuthType Basic
AuthName "Private"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
Satisfy Any #これがあれば、IPかbasic認証のどちらかが通ればアクセス可能になる。
Order Deny,Allow
Allow from 111.222.222.222/32
</Directory>
[/html]

Apacheの再起動をして反映
[html]# service httpd restart[/html]



以上の設定で、
許可されたIPの場合は、basic認証なしでアクセス可能。
許可されてないIPからは、Basic認証を突破したらアクセス可能。という設定になる。





これ、おすすめ!






コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください