VPSでDigest認証のWebdavを使う設定

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の使い方というサイトで公開していた内容です。使用していたレンタルサーバーのサービス終了に伴い移転しました。

コメントを残す

メールアドレスが公開されることはありません。