UbuntuでApacheのBasic認証をやってみる

Basic認証はパスワードが暗号化されないので、インターネットで公開するようなサイトでは適していない。自宅や会社のLAN上で簡易的にユーザー認証が必要なサイトを作るにはいいんじゃないか、と思う。UbuntuでApacheのBasic認証の設定方法をメモしておく。


1.認証が必要になるディレクトリを作成する

$ sudo mkdir -p /var/www/himitu

2.認証に使うユーザーとパスワードを作る

  • ユーザー名: foo
  • パスワード: passwd
  • パスワードファイルのフルパス: /etc/apache2/.htpasswd
$ sudo htpasswd -c /etc/apache2/.htpasswd foo
New password: 
Re-type new password: 
Adding password for user foo

最初にパスワードファイルを作るときは -c オプションを指定する。

3.Apacheの設定ファイルに追加する

http://localhost/himitu を閲覧したとき、認証されるように設定ファイルに下記を追加する。

<Directory "/var/www/himitu">
    AuthType Basic
    AuthName "HIMITU Zone"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>
  • AuthName: 領域名を定義する。領域名が同じならば、画面が変わっても認証されたことになり認証画面は表示されない。
  • AuthUserFile: パスワードファイルの場所をフルパスで指定する
  • Require valid-user: 認証されたユーザのみ閲覧可能とする

Ubuntuの場合、インストール直後は、設定ファイルは/etc/apache2/sites-available/defaultなのでコピーしてから修正していくと便利。ここでは mysite1 にコピーする。

$ cd /etc/apache2/sites-available
$ sudo cp default mysite1

$ sudo vi /etc/apache2/sites-available/mysite1
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    <Directory "/var/www/himitu">
        AuthType Basic
        AuthName "HIMITU Zone"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
</VirtualHost>

設定ファイル /etc/apache2/sites-available/default を無効にする

$ sudo a2dissite default

新しい設定ファイル /etc/apache2/sites-available/mysite1 を有効にする

$ sudo a2ensite mysite1

Apacheに設定ファイルを読み込ませ、再起動する

$ sudo /etc/init.d/apache2 reload

4.ブラウザで動作確認

Firefoxで http://localhost/himitu をアクセスすると、認証画面が開く。

参考にしたサイトなど

【送料無料】Apacheセキュリティ

【送料無料】Apacheセキュリティ
価格:3,780円(税込、送料別)

UbuntuApache

Posted by skw