任意のURLに入ろうとしたときにアクセス制限をかけたい、ということで今回はBasic認証について調べてまとめました。
<環境>
CentOS 6.4
Apache 2.2.15
Basic認証とは
サイトやディレクトリへのアクセス制限方法のひとつ。限定されたユーザにのみサイトやページへのアクセスを許可したい場合に用いられる。BASIC認証への道
ユーザへのパスワード発行
htpasswdコマンドを使ってユーザにパスワードを発行します。今回は初めて設定するということで以下のコマンドを使用しました。
htpasswd -c -b /etc/httpd/conf/.htpasswd ユーザ名 パスワード
オプション -c : 新しいパスワードファイルを作成する。既存ファイルがあった場合は上書きされる。
オプション -b : パスワードを対話式ではなくコマンドライン引数として入力できるようにする。
*すでにhtpasswdファイルがある場合かつそれに追記したい場合はオプション -c を外してください。
特定サイトへのBasic認証設定
エディタでApacheの設定ファイル /etc/httpd/conf/httpd.conf を開いてください。ここではviを使います。
vi /etc/httpd/conf/httpd.conf
そして最終行に下記を記述してください。
<Directory "/var/www/phpMyAdmin/">
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "Basic Auth"
AuthType Basic
Require valid-user
</Directory>
上記例では phpMyAdmin にアクセスしようとしたときにBASIC認証が行われるように設定しました。
最後に、Apacheを再起動してください。
/etc/init.d/httpd restart
これでphpMyAdminのBasic認証設定が完了しました。
これで大丈夫!かと思ったらBasic認証は盗聴や改竄が簡単にできてしまうという欠点があるらしいです。これを防ぐためにDigest認証というのがあるみたい。。。後日調べてまとめてみようと思います。
最後までお読みいただきありがとうございました。