#author("2018-08-23T18:11:47+09:00","","") #author("2018-08-23T18:12:50+09:00","","") [[CentOS7]] *Webページパスワード制限(htpasswd) [#qa0f5b3f] Webページへのアクセスにユーザー名とパスワードによるアクセス制限をかける。 ここでは、https://hoge.com/secret/ 以下のWebページへユーザー名(hogehogeとする)とパスワード(hogepassとする)によるアクセス制限をかけるようにする。 なお、''htpasswd''によるユーザー名、パスワード情報はほぼ平文でネットワーク上を流れるため、盗聴に備えてSSL経由でしかアクセスできないようにする。 ※Webサーバー、Webサーバー間通信内容暗号化が導入済であること *Webサーバー設定 [#a985d65c] |BGCOLOR(black):COLOR(white):|c |vi /etc/httpd/conf/httpd.conf &color(lime){← Webサーバー設定ファイル編集};| |<Directory "/var/www/html"> &br; &br; # &br; # Possible values for the Options directive are "None", "All", &br; # or any combination of: &br; # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews &br; # &br; # Note that "MultiViews" must be named *explicitly* --- "Options All" &br; # doesn't give it to you. &br; # &br; # The Options directive is both complicated and important. Please see &br; # http://httpd.apache.org/docs-2.0/mod/core.html#options &br; # for more information. &br; # &br; Options Includes ExecCGI FollowSymLinks &br; &br; # &br; # AllowOverride controls what directives may be placed in .htaccess files. &br; # It can be "All", "None", or any combination of the keywords: &br; # Options FileInfo AuthConfig Limit &br; # &br; AllowOverride All ← Allにする(.htaccessを許可)| |[root@localhost ~]# systemctl reload httpd &color(lime){← Webサーバー設定反映};| *.htpasswdファイル作成 [#ue29df31] **.htpasswdファイルを新規作成する場合 [#u628730a] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# htpasswd -b -c -m /etc/httpd/conf/.htpasswd hogehoge hogepass &color(lime){← .htpasswdを作成してユーザーhogehogeを登録する};| |Adding password for user hogehoge| **既存の.htpasswdファイルへユーザーを追加する場合 [#g81451eb] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# htpasswd -b -m /etc/httpd/conf/.htpasswd hogehoge hogepass &color(lime){← 既存の.htpasswdへユーザーhogehogeを登録する};| |Adding password for user hogehoge| **ユーザー登録確認 [#u70979a0] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# cat /etc/httpd/conf/.htpasswd &color(lime){← ユーザー登録確認};| |hogehoge:vYwnFfo59lI/c| *Webページパスワード制限確認 [#ve92a8d7] **テスト用ディレクトリ、ページ作成 [#kb2dd803] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# mkdir /var/www/html/secret &color(lime){← テスト用ディレクトリ作成};| |[root@localhost ~]# echo test > /var/www/html/secret/index.html &color(lime){← テスト用ページ作成};| **.htaccessファイル作成 [#e3a5b5ce] ''.htpasswd''に登録してある全てのユーザー名で認証できるようにする場合 |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /var/www/html/secret/.htaccess &color(lime){← テスト用ディレクトリに.htaccess作成};| |SSLRequireSSL &br; AuthUserFile /etc/httpd/conf/.htpasswd &br; AuthGroupFile /dev/null &br; AuthName "secret page" &br; AuthType Basic &br; require valid-user| **.htaccessファイル作成 [#b942efdf] .htpasswdに登録してある特定のユーザー名(ここでは、認証を許可するユーザー名をhogehogeとする)でのみ認証できるようにする場合 |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /var/www/html/secret/.htaccess &color(lime){← テスト用ディレクトリに.htaccess作成};| |SSLRequireSSL &br; AuthUserFile /etc/httpd/conf/.htpasswd &br; AuthGroupFile /dev/null &br; AuthName "secret page" &br; AuthType Basic &br; require user hogehoge &color(lime){← 認証を許可するユーザー名を指定};| **ユーザー認証確認 [#h42b1e17] -https://サーバー名/secret/にアクセスしてユーザー認証画面が表示され、ユーザー名、パスワードに''.htpasswd''ファイルへ登録したユーザー名、パスワードを入力してテストページが表示されることを確認。 -非SSL(http://サーバー名/secret/)でアクセスした場合、ユーザー認証画面が表示されずにエラーとなることを確認。 -''htpasswd''内の特定ユーザー名のみ認証を許可している場合、特定ユーザー以外ではエラーとなることを確認。 **Webページパスワード制限確認後始末 [#b64cbb02] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# rm -rf /var/www/html/secret/ &color(lime){← テスト用ディレクトリ削除};| |[root@localhost ~]# rm -f /etc/httpd/conf/.htpasswd &color(lime){← テスト用.htpasswd削除};|