WebDAV Setup: Difference between revisions
Jump to navigation
Jump to search
Line 100: | Line 100: | ||
*in a dedicated console-window, you can watch what Apache thinks of your connection-attempts: | *in a dedicated console-window, you can watch what Apache thinks of your connection-attempts: | ||
<font color=red>hostname</font> <font color=blue>~ #</font> '''tail -f /var/log/apache2/error_log''' | <font color=red>hostname</font> <font color=blue>~ #</font> '''tail -f /var/log/apache2/error_log''' | ||
*Connection-attempt results: | |||
**Apache status code 200 is a what you're after: things are good | **Apache status code 200 is a what you're after: things are good | ||
**Apache status 405 (Method not Allowed) probably means you don't really have a DAV filesystem serving | **Apache status 405 (Method not Allowed) probably means you don't really have a DAV filesystem serving |
Revision as of 14:57, 16 May 2007
Reference Setup
For Apache 2.2.4, here is a reference-setup to DAV-enable a server. This was all placed in the file /etc/apache2/modules.d/45_mod_dav.conf.
<IfDefine DAV> <IfModule dav_module> <IfModule dav_fs_module> <IfModule alias_module> <IfModule authn_file_module> DavLockDB "/var/lib/dav/lockdb" Alias /inferno /var/dav <IfModule authnz_ldap_module> <Directory /var/dav> Dav On DAVMinTimeout 600 # so we can ~see~ PHP (and others?), rather than interpret/execute ForceType text/plain DavDepthInfinity On Options Indexes FollowSymLinks MultiViews # don't give a directory-specific .htaccess any any cred :-) AllowOverride None Order allow,deny Allow from all <Limit GET PUT POST DELETE PROPFIND PROPPATCH PROPFETCH MKCOL COPY MOVE LOCK UNLOCK> AuthType Basic AuthName "Dav - Restricted Access" AuthBasicProvider ldap AuthLDAPURL ldap://192.168.0.192:389/ou=users,dc=whiterock?uid?one AuthLDAPBindDN "cn=Reader,dc=whiterock" AuthLDAPBindPassword ultra_secret # Use only one of the following possible sections. # Explicitly list the permitted users, ~after~ authentication has succeeded. # Effectively a 2nd gate, at the authourization phase. # require ldap-user gordonp # There will be times when it's sufficient for an authenticated-user to be # authourized and granted access; it they're good in LDAP, they're OK by me. # authourization will now pass to mod_authz_user AuthzLDAPAuthoritative off require valid-user </Limit> </Directory> </IfModule> </IfModule> </IfModule> </IfModule> </IfModule> # # The following directives disable redirects on non-GET requests for # a directory that does not include the trailing slash. This fixes a # problem with several clients that do not appropriately handle # redirects for folders with DAV methods. # <IfModule setenvif_module> BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs/1.0" redirect-carefully BrowserMatch "^XML Spy" redirect-carefully BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully </IfModule> </IfDefine>
Differences with Apache 2.0.x
- get rid of mod_auth_ldap; it isn't needed with Apache 2.2.x, but was necessary with earlier versions.
- I couldn't get <Location> containers to work in 2.2.x, where they certainly did with prior versions. Hence the use of <Directory> above.
Startup Directives
These go in /etc/conf.d/apache2 for Gentoo:
APACHE2_OPTS="-D DAV -D DEFAULT_VHOST -D INFO -D LANGUAGE -D PHP5 -D LDAP -D AUTH_LDAP"
Testing
- Check that DAV-root is OK, and that DAV is actually serving with DAVfs, by turning off all authentication / authourization
- change the <LIMIT> </LIMIT> containers above, to <LIMITExcept> </LIMITExcept>
- anyone, anywhere can now browse your DAV share!! Don't put valuable stuff in your DAV-root, just test-files
- Before adding in the complexity of authentication, check that the server-box is able to contact the LDAP-box; this should produce a lot of (LDIF) output:
hostname ~ # ldapsearch -h 192.168.0.192 -D 'cn=Reader,dc=whiterock' -b "dc=whiterock" -x -s one -W Enter LDAP Password: ultra_secret
- in a dedicated console-window, you can watch what Apache thinks of your connection-attempts:
hostname ~ # tail -f /var/log/apache2/error_log
- Connection-attempt results:
- Apache status code 200 is a what you're after: things are good
- Apache status 405 (Method not Allowed) probably means you don't really have a DAV filesystem serving
- Apache status codes 401 and 403 are common with authentication/authourization problems
Next
Two things bother me about this, and both can be summed up in a single word: encryption!
- we'd like to use SSL to encrypt and secure the connection to our LDAP server
- we'd like to use SSL to encrypt and secure the data flowing between DAV-server and the user