通常、公開しているWebページは誰でも閲覧が可能となっています。
Webページを限られた人のみに閲覧をさせるにはどの様にすれば良いでしょうか?
これは、アクセス制限をかけたいパスに「.htaccess」というファイルを作成し、アクセス制限をかける設定を記入すれば簡単に出来ます。
ここでは、指定されたユーザとパスワードを入力することにより、制限をかけたWebページの閲覧方法を紹介します。
設定ファイルの編集 # vi /etc/httpd/conf/httpd.conf ドキュメントルートの指定(ここから) <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs-2.0/mod/core.html#options # for more information. # Options Includes ExecCGI FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # .htaccessの許可 AllowOverride All </Directory> ドキュメントルートの指定(ここまで) |
設定ファイル変更を有効にする為、apacheを再起動 【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】 # /etc/rc.d/init.d/httpd restart 【Fedora16以降 の場合】 # systemctl restart httpd.service |
外部からアクセスできないパスへパスを作成する。 # mkdir /var/www/secure/ アクセス可能なユーザ名"linux"を作成する # htpasswd -c /var/www/secure/.htpasswd linux アクセス可能なユーザ名"linux"のパスワードを入力する New password: 確認の為、上記と同じパスワードを入力する Re-type new password: Adding password for user linux # パスワードファイル作成の確認 # ls -la /var/www/secure/.htpasswd -rw-r--r-- 1 root root 20 2月 10 12:38 /var/www/secure/.htpasswd |
アクセス可能なユーザ名"fedora"を追加する # htpasswd /var/www/secure/.htpasswd fedora アクセス可能なユーザ名"fedora"のパスワードを入力する New password: 確認の為、上記と同じパスワードを入力する Re-type new password: Adding password for user fedora |
アクセス制限をかけたいパスを作成する(既存の場合はそのパス内に作成する) # mkdir /var/www/html/security/ apacheプロセスがアクセスできる権限にする。(ディレクトリ作成時のデフォルトは「755」となっているので特に必要はありません。) # chmod 755 /var/www/html/security/ 所有者:グループをapacheに変更。(最低限、所有者はapacheにすること。読み取りだけでは問題ないが書き込みがある場合エラーとなる為) # chown apache:apache /var/www/html/security/ *:上記「chmod」と「chown」について、当該動作検証のみであれば、必要ありません。 今後、アクセス制限をかけたパスにて「書き込み」を行うスクリプトを設置する場合は必須となる。 .htaccessファイルを作成する # vi /var/www/html/security/.htaccess AuthUserFile /var/www/secure/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your UserName and password" AuthType Basic require valid-user 確認用のページを作成する # vi /var/www/html/security/index.html <html> <head> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>認証確認</title> </head> <body> 認証が成立しページが表示されました。 </body> </html> |
クライアントより[http://サーバのアドレス/security/]でアクセスして「ユーザ名」と「パスワード」を入力してOKボタンを押下します。
認証が成立されれば、下記の画面が表示されます(確認用で作成したページ)。