Digest認証のWebdavを使う設定
スマートフォンや出先のPCでファイルのやり取りを便利にするため、借りているVPSでWebdavを使えるようにしてみました。
Apacheの設定
WebdavはApache上で動かすため、まずはApacheのインストールをしておきます。
その際、
- mod_auth_digest
- mod_dav
- mod_dav_fs
のモジュールを読み込むように設定しておいてください。
※DIGEST認証を使いたいのでmod_auth_digest
も読み込んでいます。
例えば、Gentoo Linuxを使っている場合は/etc/conf.d/apache
を次のように書き換えることでモジュールをロードするようになります。(下記の例は、他のモジュールもロードしています。)
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SUEXEC -D LANGUAGE -D DAV -D DAV_FS -D AUTH_DIGEST"
httpd.conf の書き換え
Webdavを使うにはhttpd.conf
またはhttpd.conf
が読み込むファイルに以下のような設定を追加します。
<Directory "/mnt/webdav">
DAV On
</Directory>
Virtual Hostを使ってhttp://example.com/webdav
でWebdavを使う場合は以下のようにできます。
<VirtualHost *:80>
DocumentRoot /var/www/virtual/example.com
ServerName example.com
Alias /webdav /mnt/webdav
<Directory "/mnt/webdav">
DAV On
</Directory>
</virtualHost>
/mnt/webdav
でファイルを保存するように設定しています。
注意点として、/mnt/webdav
をApacheから読み書きが可能なアクセス権に設定しておいてください。(デフォルトの設定で動かしている場合は apache:apache
が読み書き可能なようにします。)
Digest認証
本格的にセキュリティーを考える場合はSSLを使うのがいいと思いますが、SSL証明書は結構コストも掛かりますので、ここではDigest認証の設定を紹介しようと思います。スマートフォンでWi-fi接続などで使うことを想定する場合はBASIC認証よりもいいかと思います。
認証ファイルの作成はhtdigest
コマンドで作成できます。
$ htdigest -c .htdigest 'webdav' sample_user
Adding password for yourname in realm webdav.
New password: ******
Re-type new password: ******
'webdav'
のところはrealm、yourname
のところはWebdavでログインする際に使いたいユーザー名を入力します。パスワードの入力を求められたらyourname
に対応するパスワードを入力してください。
realm (認証領域) はとりあえず適当でいいと思います。細かく設定したい場合は調べてみてください。
後は作成された .htdigest
を適当な場所において httpd.conf
にパスを記載します。
<Directory "/mnt/webdav">
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile "/etc/apache/webdav.htdigest"
Require valid-user
</Directory>
こちらの記事はGentoo Linuxの使い方というサイトで公開していた内容です。使用していたレンタルサーバーのサービス終了に伴い移転しました。