Apache でファイル共有 -WebDAV-
忍び寄る夏の気配にワクワクな nakamura です。雨の後の湿度の高い感じ、、、いいよね~。
以前ほど話題にはならなくなりましたが、今でもインターネットに蔓延している Gumblar ウィルス。シーブレインではクライアントとのファイルのやり取りに FTP を使う案件もあり、何か代替案はないかと模索してきました。結果行き着いたのが Apache の mod_dav モジュールを使ってファイル共有する方法です。何がスバラシイって設定はなまら簡単なのに充分セキュアにできるのですよ。どうですか奥さん!
設定方法
WebDAV を使うには mod_dav モジュールが読み込まれてる必要があります。以下のコマンドで読み込まれているモジュールの一覧を確認しましょう。dav_module というのがあれば OK です。ちなみに CentOS であればデフォルトでくっついてきます。
httpd -M
mod_dav が読み込まれている事を確認したら、実際に WebDAV を使う為の設定を記述します。今回は WebDAV 専用にバーチャルホストを切ります。例えばこんな感じ。
<VirtualHost *:80>
ServerName dav.example.com
DocumentRoot /var/www/dav/htdocs
ServerAdmin admin@example.com
<Directory "/var/www/dav/htdocs">
Dav On #←これを書くだけ!
Order deny,allow
</Directory>
</VirtualHost>
上記の設定をして Apache を再起動するだけで、使えてしまいます。簡単すぎて気絶しそうです。
実際には何かしらの制限を掛ける事になるかと思いますが、そこは Apache 。基本認証や IP 制限を掛けるなり、SSL 化するなり、SSL クライアント認証を使うなり、もう好きにしちゃってください。
簡単にですが、ちょっとセキュアにした設定例です。
<VirtualHost *:443>
ServerName dav.example.com
DocumentRoot /var/www/dav/htdocs
ServerAdmin admin@example.com
### SSL ###
SSLEngine on
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:-eNULL
SSLCertificateFile /etc/httpd/conf/ssl.crt/example.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/example.com.key
<Directory "/var/www/dav/htdocs">
### DAV 有効化 ###
Dav On
### IP 制限 ###
Order allow,deny
Allow from 192.168.0.100
### 基本認証 ###
AuthType Basic
AuthBasicProvider file
AuthUserFile /var/www/dav/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
Require user username
</Directory>
</VirtualHost>
SSL + IP 制限 + 基本認証という例です。もちろん Apache で利用できる機能ならこれ以外のものと組み合わせる事も可能です。
WebDAV にアクセスする為のクライアント
Windows から WebDAV にアクセスするのに一番手っ取り早い方法はエクスプローラを使ってアクセスする方法です。以下のサイトが設定方法を分かりやすく解説してくれているので参考にしてみてください。
Vista の場合
XP の場合
また、WebDAV 専用のクライアントも多数あります。Windows で代表的なものは以下の 2 つでしょうか。
CarotDAV
TeamFile
http://www.teamfile.com/modules/mydownloads/
いずれも FTP クライアントと変わらない簡単な設定で WebDAV にアクセスする事ができます。
終わりに
Apache の多機能なアクセス制御を手軽にファイル共有に使う事ができます。FTP の代替にいかがですか?ぜひ一度試してみてください!