Up
Down
Return

WevDAVを使ってみた

WebDAVとは

DAVとは、"Distributed Authoring and Versioning"の事で、雑誌などで見慣れているものの、現実にどの程度実際の仕事、業務に使われているのかは???に感じられます。
Distributed Authoring and Versioningというのですから、色々なところにいる人たちが一緒に何かの仕事をするときに役に立つのかな?と思いますが、ソフト開発に於けるCVSの対象を広げたものだと言ってしまってよいのやら?
取り柄はHTTPプロトコルだけで遠隔地のマシンをファイアーウォール越しにファイルサーバのように使える点でしょうか。
どんな感じに使えるかは使ってみないとわからないので、まずは使ってみましょう。

WebDAVの準備

Debian GNU/Linuxの場合、すでにApacheが動いているならば、libapache-mod-dav パッケージを入れるだけです。但し、入れた後どうするのかの記述は極めて不親切。Webで検索してください。

httpd.conf または、srm.conf での定義

    • httpd.confに、
      LoadModule dav_module    /usr/lib/apache/1.3/libdav.so

      # Added for mod_dav
      <IfModule mod_dav.c>
          DAVLockDB /var/lock/DAV/DAVLock
      </IfModule>
      は、既に入っているはずですが一応確認。
    • 以下は、無ければ自分で打ち込みます。
      Alias /dav    /xxx/xxx/xxx/dav <====/xxx/xxx/xxx/davはWebDAV用公開ディレクトリ
      <Location /dav>
            DAV On
      <LimitExcept GET HEAD OPTIONS>
          AuthType Basic
          AuthName "WebDAV Security"
          AuthUserFile /etc/apache/DAVusers
          Require valid-user
      </LimitExcept>
          LimitXMLRequestBody 0
      # AllowOverride None
      # Options None
      # order deny,allow
      # deny from all
      # allow from all
      </Location>
      コメントアウトしてある部分は、運用上必要であれば適切に修正して有効にしますが、ここでは内輪の世界と言うことで無効にしてあります。
    • 上のAliasで指定したディレクトリを作り、httpd.confが
      User www-data
      Group www-data
      となっているのであれば、
      # mkdir /xxx/xxx/xxx
      # chown www-data:www-data /xxx/xxx/xxx
      # chmod 770 /xxx/xxx/xxx
      で、ディレクトリを作成し、権限を付与します。
    • 上にAuthType Basic、AuthUserFile /etc/apache/DAVusersとありますが、これはBasic認証を用い、パスワードは/etc/apache/DAVusersにしまってあるという事になります。
      Apacheでは、あるディレクトリについてアクセスを制限したい場合、htpasswdというプログラムでパスワードファイルを作成し、アクセスを制限したいディレクトリに .htaccessというファイルを作りそこにAuthUserFileなどを記述しておくという方法をとります。
      WebDAVの場合は、それをhttpd.conf(古いApacheはsrm.conf)に上記のように記述します。
      ただし、Basic認証のユーザIDとパスワードはネットワーク上を、Base64でエンコードされてはいるものの平文で流れますからセキュリティは脆弱です。
      # cd /etc/apache
      # htpasswd -c DAVusers xxxxxx <===== xxxxxxはユーザid
      New password: ******** <==== ********はパスワード
      Re-type new password: ********
      Adding password for user xxxxxx
      ちゃんと登録されているか、cat DAVusersで見てみましょう。
      -cはそのファイルを新規に作れという意味なので二人目以降は
      # htpasswd DAVusers xxxxxx
      とします。
    • Apacheを再立ち上げして、上記の設定を有効にします。

クライアントとなるマシンから覗く

会社のWindows98が入ったPCから見る。
当然、インターネット経由での接続です。会社のプロキシーはhttpで且つポートは80しか通してくれません。
エクスプローラのフォルダの中の、「マイコンピュータ」にぶら下がっている「Webフォルダ」を開けます。「Webフォルダの追加」をダブルクリックすると以下のようなウィンドウが開きます。
ここに、  http://なんたらかんたら/DAV  とかを入れて、「完了」ボタンを押します。

WebDAV access from Win98 (1)


無事にサーバを見つけるとユーザ認証を要求します。ここでhtpasswdで登録したユーザIDとパスワードを入れます。

WebDAV access from Win98 (2)


認証されると、/xxx/xxx/xxxのファイル一覧が表示されます。エクスプローラなどでの日本語のファイル名もShift-JISでの出し入れならば大丈夫なようです。

WebDAV access from Win98 (3)


Mac OS X から使う
Mac OS X からは、Finderの「移動」から「サーバへ接続」を選び「アドレス」に  http://なんたらかんたら/DAV  を入れて「接続」ボタンを押します。
Windowsと同様に認証されるとWebDAVディレクトリの中の一覧が表示され、Mac上のフォルダとの間でドラッグ&ドロップでファイルの出し入れが出来ます。

WebDAV access from Mac OS X


セキュリティの強化

このように、外部から気楽にファイルサーバとして使えるのは有り難いのですが、セキュリティが心配ですね。
mod_sslとopenSSLでセキュリティを確保する方法が、Apache-WebDAV-LDAP-HOWTOにあります。
私は、そういう使い方はしそうもないので、インターネットからはアクセス出来ないようにして家庭内で平和に使うことにします。もっとも家庭内ではNFSとSambaで十分なんですが(^_^;)。