Quantcast
Channel: Kevin Deldycke - Server
Viewing all articles
Browse latest Browse all 10

Lighttpd-powered WebDAVs server on Debian Squeeze

$
0
0

Here is a tiny article about how I used Lighttpd to serve content over WebDAV.

First, install the required packages:

$ aptitude install lighttpd-mod-webdav

As we want to provide a secure WebDAV access, we need to install OpenSSL:

$ aptitude install openssl

Then we create the file /etc/lighttpd/clear-creds.lst, that will contain credentials required for authentication, under the following form:

user1:password1
user2:password2
user3:password3

Logins and passwords are stored here in clear. This is stupid, but for this project I was looking to setup a quick and dirty server. For temporary tests this setup is OK, but I encourage you to switch to a better credential storage system.

Now I want to serve WebDAV content within a secure channel. A self-signed SSL certificate will be enough. Let’s generate one:

$ cd /etc/lighttpd/
$ openssl req -x509 -nodes -subj '/' -days 3650 -newkey rsa:2048 -keyout server.pem -out server.pem

We’ll configure Lighttpd by loading the default parameters of modules we use:

$ cd /etc/lighttpd/conf-enabled/
$ ln -s ../conf-available/05-auth.log
$ ln -s ../conf-available/10-ssl.conf
$ ln -s ../conf-available/10-webdav.conf

Now I create a custom configuration file:

$ touch /etc/lighttpd/conf-available/99-custom.conf
$ cd /etc/lighttpd/conf-enabled/
$ ln -s ../conf-available/99-custom.conf

Here is the content of that 99-custom.conf configuration file:

# Hide server versionserver.tag="lighttpd"# Force all request to be in HTTPs# This also redirects all WebDAV requests to WebDAVs$HTTP["scheme"]=="http"{$HTTP["host"]=~"(.*)"{url.redirect=("^/(.*)"=>"https://%1/$1")}}# Valid credentials are required for any requestauth.backend="plain"auth.backend.plain.userfile="/etc/lighttpd/clear-creds.lst"auth.require=("/"=>("method"=>"digest","realm"=>"My WebDAV server","require"=>"valid-user"))# Enable WebDAV in read and write modewebdav.activate="enable"webdav.is-readonly="disable"# Customize directory listings a bitdir-listing.set-footer="<a href='http://example.com'>Company</a>'s document repository."

And do not forget to restart the server:

$ /etc/init.d/lighttpd restart

As you can see in the screenshot above, you can now:

  • Browse the file system in read/write mode with a WebDAV client via a webdavs://12.34.56.78/URL;
  • Access content in read-only mode with a browser by a classic https://12.34.56.78/URL.

Viewing all articles
Browse latest Browse all 10

Trending Articles