WebDAV protocol support
From IASO Wiki
Contents |
Distributed authoring and versioning (WebDAV)
WebDAV features:
- Transfer data over HTTPS protocol instead of FTPS one.
- One connection instead of two in FTP.
- Easy to use behind NATs (just one port need to be opened). No incoming port!
- Reuse one connection for a set of transfers.
Setup
- Server requirements:
- HTTP/HTTPS support.
- WebDAV HTTP extension support (PUT, GET, DELETE, MKCOL, MOVE, PROPFIND methods) according to the specification (http://www.webdav.org/specs/rfc4918.html).
- HTTP requests with length up to 64Mb support.
- Basic authentication method support.
- Supported platform: Windows 2008 R2.
- Apache server configuration:
- Modules need to be installed, enabled and configured:
- mod_auth_basic (http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html);
- mod_dav (http://httpd.apache.org/docs/2.2/mod/mod_dav.html);
- mod_dav_lock (http://httpd.apache.org/docs/2.2/mod/mod_dav_lock.html);
- mod_dav_fs (http://httpd.apache.org/docs/2.2/mod/mod_dav_fs.html);
- mod_dbd (http://httpd.apache.org/docs/2.1/mod/mod_dbd.html);
- mod_authn_dbd (http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html);
- mod_ssl (http://httpd.apache.org/docs/2.1/mod/mod_ssl.html).
- Modules need to be installed, enabled and configured:
- IIS server configuration:
- Authentification methods:
- Basic Authentication ( http://technet.microsoft.com/en-us/library/cc772009(WS.10).aspx )
- Extensions:
- WebDAV Publishing ( http://technet.microsoft.com/en-us/library/dd722682(WS.10).aspx ). Known options:
- Request Filtering / Request Limits: ( http://weblogs.asp.net/jeffwids/archive/2009/09/24/from-iis6-maxrequestlength-to-iis7-maxallowedcontentlengthfile-specifying-maximum-file-upload-size.aspx ).
- Max Allowed Content Length - must be > 64Mb:
- IIS6.0 : maxRequestLength (default: 4Mb);
- IIS7.x : maxAllowedContentLength (default: 28.6Mb).
- WebDAV Settings:
- Require SSL Access - must be True for HTTPS.
- WebDAV Publishing ( http://technet.microsoft.com/en-us/library/dd722682(WS.10).aspx ). Known options:
- Links:
- http://learn.iis.net/page.aspx/350/installing-and-configuring-webdav-on-iis-7/ (use Basic Authentication instead of Windows Authentication in this guide)
- Authentification methods:
- IASO Backup setup.
- config.ini for BackupFP.
Protocol=WEBDAV[:port=443] ; using HTTP protocol (without SSL/TLS), ; or Protocol=WEBDAVS[:port=443] ; using HTTPS protocol (with SSL/TLS) Server=server_address[/path] ; server_address - HTTP server IP address or host name, e.g. iasobackup.com, 157.23.23.32 ; path - path part, e.g. /storage
- Provisioning.
- IIS: like for the FTP.
- Apache: using MySQL database for the authentification.
- Apache configuration example:
# IASOBackup WebDAV server config sample. <IfModule !dav_module> LoadModule dav_module modules/mod_dav.so </IfModule> <IfModule !dav_fs_module> LoadModule dav_fs_module modules/mod_dav_fs.so </IfModule> <IfModule !dav_lock_module> LoadModule dav_lock_module modules/mod_dav_lock.so </IfModule> <IfModule !auth_basic_module> LoadModule auth_basic_module modules/mod_auth_basic.so </IfModule> <IfModule !authz_owner_module> LoadModule authz_owner_module modules/mod_authz_owner.so </IfModule> <IfModule !dbd_module> LoadModule dbd_module modules/mod_dbd.so DBDriver mysql DBDParams host=localhost,port=8888,user=root,pass=root,dbname=users </IfModule> <IfModule !authn_dbd_module> LoadModule authn_dbd_module modules/mod_authn_dbd.so </IfModule> <IfModule !ssl_module> LoadModule ssl_module modules/mod_ssl.so SSLRandomSeed startup builtin SSLRandomSeed connect builtin SSLSessionCache "shmcb:D:/develop/storage/iaso/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex default </IfModule> Listen 443 <VirtualHost _default_:443> DocumentRoot "D:/develop/storage/users" # ServerName SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile "D:/develop/storage/iaso/ssl/server.crt" SSLCertificateKeyFile "D:/develop/storage/iaso/ssl/server.key" DavLockDB "D:/develop/storage/iaso/var/davlock" ErrorLog "D:/develop/storage/iaso/logs/error.log" TransferLog "D:/develop/storage/iaso/logs/access.log" <Directory "D:/develop/storage/users"> SSLRequireSSL Options FollowSymLinks -Indexes AllowOverride None Order Deny,Allow Deny from All AuthType Basic AuthName IASOBackup-User # AuthUserFile "D:/develop/storage/iaso/user.passwd" AuthBasicProvider dbd AuthDBDUserPWQuery "SELECT Password FROM User WHERE User = %s" </Directory> <Directory "D:/develop/storage/users/*"> Dav on Order Allow,Deny Allow from all AllowOverride AuthConfig </Directory> </VirtualHost>