Come configurare WebDAV con Lighttpd su Fedora 9
Questa guida mostra come abilitare WebDAV su un server Fedora 9 con lighttpd: installazione dei pacchetti necessari, attivazione dei moduli mod_webdav e mod_auth, creazione di un host virtuale e impostazione delle directory con permessi corretti. Seguire i comandi passo-passo e i controlli di sicurezza indicati.
Versione e autore
Versione 1.0
Autore: Falko Timme
Introduzione
WebDAV (Web-based Distributed Authoring and Versioning) è un’estensione del protocollo HTTP che permette di modificare direttamente i file sul server lighttpd senza passare per FTP. Oltre alla modifica remota, WebDAV può essere usato per caricare e scaricare file.
Definizione rapida: WebDAV è un insieme di estensioni HTTP che abilita authoring e gestione remota dei file.
Importante: non garantisco che questa procedura funzioni in tutti gli ambienti. Adattare i percorsi e i nomi host alla propria configurazione.
Note preliminari
In questo esempio ho usato un server Fedora 9 con indirizzo IP 192.168.0.100. Se il vostro server usa indirizzi o utenti differenti, sostituite i valori di esempio con quelli reali.
1. Installare WebDAV e i pacchetti necessari
Installate lighttpd (se non già presente), il modulo WebDAV incluso e httpd-tools (contiene htpasswd, utile per creare file di password per le condivisioni WebDAV):
yum install lighttpd httpd-toolsPoi create i link di avvio di sistema per lighttpd in modo che il servizio parta automaticamente all’avvio, e avviatelo subito:
chkconfig --levels 235 lighttpd on
/etc/init.d/lighttpd start2. Abilitare i moduli di lighttpd
Aprite /etc/lighttpd/lighttpd.conf e abilitate/aggiungete i moduli mod_alias, mod_webdav e mod_auth nella sezione server.modules. È importante che mod_webdav appaia prima di mod_auth.
vi /etc/lighttpd/lighttpd.conf[...]
server.modules = (
# "mod_rewrite",
# "mod_redirect",
"mod_alias",
"mod_access",
# "mod_cml",
# "mod_trigger_b4_dl",
"mod_webdav",
"mod_auth",
# "mod_status",
# "mod_setenv",
# "mod_fastcgi",
# "mod_proxy",
# "mod_simple_vhost",
# "mod_evhost",
# "mod_userdir",
# "mod_cgi",
# "mod_compress",
# "mod_ssi",
# "mod_usertrack",
# "mod_expire",
# "mod_secdownload",
# "mod_rrdtool",
"mod_accesslog" )
[...]Quindi riavviate lighttpd:
/etc/init.d/lighttpd restartNota: se ricevete errori di sintassi durante il riavvio, controllate il file di log di lighttpd (di solito /var/log/lighttpd/error.log) per dettagli.
3. Creare un host virtuale per WebDAV
In questo esempio creeremo un vhost per www.example.com con document root in /var/www/web1/web. Se volete abilitare WebDAV su un vhost esistente, adattate il percorso al vostro caso.
Create la directory e impostate proprietario e gruppo su lighttpd:
mkdir -p /var/www/web1/web
chown lighttpd:lighttpd /var/www/web1/webAggiungete il blocco del vhost alla fine di /etc/lighttpd/lighttpd.conf:
vi /etc/lighttpd/lighttpd.conf[...]
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
}Dopo aver salvato il file, riavviate il servizio:
/etc/init.d/lighttpd restartControlli e verifica rapida
- Verificare che lighttpd sia attivo:
/etc/init.d/lighttpd status- Controllare che la porta 80 (o la porta configurata) sia in ascolto:
netstat -ltnp | grep lighttpd- Aprire http://www.example.com dal browser o usare curl per confermare che il document root è raggiungibile:
curl -I http://www.example.com/Permessi e autenticazione WebDAV (sintesi)
- Usate htpasswd per creare un file di password per l’utenza WebDAV. Esempio:
htpasswd -c /etc/lighttpd/webdav.passwd nomeutente- Configurate mod_auth per puntare a /etc/lighttpd/webdav.passwd e limitare l’accesso alla directory WebDAV.
Esempio di blocco di configurazione (aggiungere al vhost o al file di configurazione pertinente):
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
auth.backend = "plain"
auth.backend.plain.userfile = "/etc/lighttpd/webdav.passwd"
auth.require = ( "/" => (
"method" => "basic",
"realm" => "WebDAV Restricted",
"require" => "valid-user"
))
}Sicurezza e permessi (consigli pratici)
- Limitate l’accesso solo agli utenti necessari.
- Usate HTTPS per proteggere le credenziali e il traffico (configurate un reverse proxy o abilitate TLS su lighttpd).
- Evitate permessi 777 sulle directory; usate proprietario e gruppo corretti (es. lighttpd:lighttpd) e permessi minimi necessari.
- Monitorate i log di accesso e di errore per attività sospette.
Quando questa configurazione potrebbe fallire
- Moduli non caricati correttamente o errori di sintassi in lighttpd.conf impediranno l’avvio del demone.
- Conflitti di porta (es. altro server già in ascolto sulla porta 80).
- Permessi file errati che impediscono al processo lighttpd di leggere la document-root o il file di password.
- Client WebDAV non compatibili con alcune estensioni o metodi (in tal caso testare con altri client o via curl).
Alternative e varianti
- Usare Apache (mod_dav) se servono funzionalità WebDAV avanzate o integrazione più stretta con mod_auth digest/LDAP.
- Mettere un reverse proxy (nginx o Apache) davanti a lighttpd per TLS terminaton o rate limiting.
- Per ambienti Windows-dominanti, valutare soluzioni SMB/NFS se l’obiettivo è la condivisione in rete locale.
Checklist per l’amministratore (ruoli)
Amministratore di sistema:
- Installare pacchetti e moduli
- Verificare configurazione e riavviare lighttpd
- Impostare permessi corretti
Sicurezza/Operatori:
- Creare file htpasswd e testare autenticazione
- Abilitare HTTPS o proxy TLS
- Monitorare log e accessi
Sviluppatore/Utente finale:
- Testare mount della share WebDAV con il client preferito
- Verificare lettura/scrittura e locking se necessario
Glossario rapido
- WebDAV: estensione HTTP per authoring e gestione remota dei file.
- lighttpd: server web leggero e performante.
- htpasswd: tool per gestire file di autenticazione in formato semplice.
Riepilogo
Questa guida spiega come installare e abilitare WebDAV su Fedora 9 con lighttpd, attivare i moduli necessari, creare un host virtuale e configurare i permessi base. Testate sempre la configurazione in un ambiente controllato prima di applicarla in produzione.
Note finali: adattate i percorsi, i nomi host e le regole di autenticazione al vostro ambiente. Tenete aggiornato il server e controllate i log regolarmente per sicurezza.