Ubuntu9.04サーバでのWebDAV設定

LAN内部からはSamba,WANからはWebDAVでファイルにアクセスできるようにする.
参考にしたページ
http://mialweb.ddo.jp/jam/?p=23
http://fedorasrv.com/webdav.shtml

Apache+SSLの設定

いろいろなページを参考にして証明書の作成やらなんやらしたが,

# a2enmod ssl
# a2ensite default-ssl
# /etc/init.d/apache restart

で特に設定をいじらなくても使えた.
その前の試行錯誤がどの程度影響していたんだろうか...?
ちゃんとメモを取りながら作業しないとダメだな.
とにかく,ここまでで https://servername/ でアクセスできるようになった.

ACLの設定

WANからはApache(www-data)権限でアクセスすることになるため,LAN内でのSambaの場合と違ってアクセスできなくなる問題をACLによって解決する,らしい.

$ sudo apt-get install acl
$ sudo vi /etc/fstab
UUID=bdc464fe-cbaf-45b5-b179-367150a0e740 /  ext3    relatime,errors=remount-ro 0 1
↓
UUID=bdc464fe-cbaf-45b5-b179-367150a0e740 /  ext3    acl,relatime,errors=remount-ro 0 1

mod_encodingの設定

文字化け対策.

$ sudo apt-get install  libapache2-mod-encoding
$ sudo emacs /etc/apache2/mods-available/encoding.conf

  EncodingEngine    on
  NormalizeUsername on
  SetServerEncoding     UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

WebDAVの設定

モジュールを有効化.

$ sudo a2enmod dav
$ sudo a2enmod dav_fs
$ sudo /etc/init.d/apache2 restart

共有ディレクトリの設定.Apacheがアクセスできるように権限を変更する.

$ sudo useradd -s /sbin/nologin mypublic
$ sudo mkdir /home/mypublic
$ sudo chmod 711 /home/mypublic
$ sudo setfacl -m u:www-data:rwx,g:www-data:rwx /home/mypublic <- apacheのアクセス設定
$ sudo setfacl -m d:u:www-data:rwx,g:www-data:rwx /home/mypublic <- 新規ファイルへのアクセス許可
$ sudo setfacl -m u:mypublic:rwx,g:mypublic:rwx /home/mypublic <- mypublicのアクセス設定
$ sudo setfacl -m d:u:mypublic:rwx,g:mypublic:rwx /home/mypublic <- 新規ファイルへのアクセス許可
$ getfacl /home/mypublic
getfacl: Removing leading '/' from absolute path names
# file: home/mypublic
# owner: mypublic
# group: mypublic
user::rwx
user:www-data:rwx
user:mypublic:rwx
group::--x
group:www-data:rwx
group:mypublic:rwx
mask::rwx
other::--x
default:user::rwx
default:user:www-data:rwx
default:user:mypublic:rwx
default:group::--x
default:mask::rwx
default:other::--x

$ sudo htpasswd -c /etc/apache2/.htpasswd ユーザ名 <- BASIC認証用のパスワードを設定
$ sudo emacs /etc/apache2/sites-available/default-ssl
    # 以下を追加
    Alias /***** "/home/mypublic/"    # (*1)
    
        Dav on
        SSLRequireSSL
        Options None
        AuthType Basic
        AuthName "Shared Documents Authentication"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
        Order deny,allow
        Deny from all
        Allow from all
    

あとはhttp://fedorasrv.com/webdav.shtmlの下の方を参考にWebフォルダを設定してWindows XPから接続を確認.URLは上の(*1)で指定した名前を使って https://servername/***** を指定すればよい.無事に閲覧,書き込みができた.