さくらVPSが大容量になったのでWebDAVを設定してみた


さくらVPSの一番安いプランがHDD 20Gから一気に100GBに増えたので、これはプログラミングの遊び場だけにしておくのはもったいないと思い、WebDAVの設定をしてみました。

目標は、

  • 独自ドメインも持ってることだし、バーチャルホストで設定してみる
  • 自分以外に、親兄弟などもアクセス出来るよう簡単なアクセス制御を導入

こんなところです。
子供が出来てからと言うものデジカメ写真のやりとり需要が高まっているんですが(主に親から)、Flickrは少々敷居が高いのですよね。

設定の手順は大きく2点。

  • SSLの設定
  • Apacheの設定

SSLの設定

ほぼまるまるこちらのサイトを参考にしました。
証明書発行にmakeが使われてて、なるほどなーって思いました。

Apacheの設定

/etc/httpd/conf.d に適当にconfファイルを作ってこんな内容を書きました。

https://dav.example.com/ はdavadminユーザーのみ許可で、https://dav.example.com/public/は認証ユーザーすべてに解放するような設定です。
ユーザーはhtpasswdで追加します。

NameVirtualHost *:443
<VirtualHost *:443>
    ServerAdmin admin@example.com
    DocumentRoot /var/www/dav
    ServerName dav.example.com
    ErrorLog logs/dav.example.com-error_log
    CustomLog logs/dav.example.com-access_log common

    SSLEngine on
    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:-eNULL
    SSLCertificateFile /etc/pki/tls/certs/server.pem
    SSLCertificateKeyFile /etc/pki/tls/certs/server.key
    
    <IfModule mod_dav.c>
        DAVMinTimeout 600
        <Location />
            DAV On
            EnableSendfile off
            SSLRequireSSL
            AuthType Basic
            AuthName "Login WebDAV"
            AuthUserFile "/var/www/dav.example.com/.htpasswd"
            Require user davadmin
            Options -FollowSymLinks Indexes
            Order deny,allow
            Deny from all
            Allow from all
        </Location>
        
        <Location /public/>
            AuthUserFile "/var/www/dav.example.com/.htpasswd"
            Require valid-user
        </Location>
    
    </IfModule>

</VirtualHost>
httpd -t

してSyntax OKなら

service httpd reload

します。

iptablesの方で443を開けていないならそちらも設定します。

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

で、

service iptables restart

Leave a Comment