Webdav o FTP, come accedere ai file in sicurezza

Come usare il protocollo Webdav in alternativa al protocollo FTP(s) o SFTP.

Webdav o FTP, questo è il dilemma! I miei clienti sempre più spesso mi chiedono di realizzare aree condivise per lo scambio di file in assoluta sicurezza. Quasi tutti, chi più chi meno, mi fanno sempre la stessa domanda fondamentale: Mauro possiamo usare il protocollo FTP in azienda?

Chiariamo subito le cose! Personalmente tendo a sconsigliare l’impiego del protocollo FTP per vari motivi:
mancanza di sicurezza nella trasmissioni di dati e credenziali di accesso;
maggiore esposizione di servizi da monitorare verso l’esterno (Internet).

Mauro, ma quale protocollo allora?

Le cose stanno così:

  • l’impiego di FTPS fornisce un livello di sicurezza maggiore, rispetto a FTP, grazie alla cifratura delle credenziali di accesso e, in talune configurazioni, anche dei dati. FTPS è il protocollo FTP a cui viene aggiunta la cifratura SSL o TLS (più di recente). Il funzionamento del protocollo è del tutto identico a FTP: il protocollo utilizza due canali (uno per i comandi e l’altro per il trasferimento dei file), ma invece di viaggiare in rete in chiaro, tutti i dati vengono cifrati in partenza e decifrati in arrivo tramite un client/programma compatibile FTPS. Le porte restano le stesse (21 per il canale comandi e range di porte random per il canale trasferimento in modalità passiva). La comunicazione è più sicura visto che i dati viaggiano cifrati. Sono possibili due implementazioni di FTPS: una con crittografia implicita e l’altra con cifratura esplicita. La cifratura implicita utilizza una porta diversa (la 990 di default) oltre ad utilizzare crittografia più obsoleta (resta ancora disponibile per compatibilità con i server più vecchi), mentre la crittografia esplicita utilizza le stesse porte dell’FTP semplice (21 e porte random per l’accesso passivo) ed utilizza la crittografia più avanzata (TLS 1.2 per esempio).
  • Il protocollo SFTP (SSH File Transfer Protocol) indica il trasferimento sicuro di file tramite Secure Shell (o SSH). I due dispositivi (server e client) comunicano tramite un unico canale, quello di SSH, in cui vengono inviati i comandi di gestione dei file remoti e dove avviene il trasferimento dei file. L’unica porta necessaria per SFTP è di default la 22, la stessa di SSH.

Il mio consiglio è quello di escludere a priori l’impiego del protocollo FTP, perché i dati transitano sempre in chiaro.
FTPS o SSH sono equivalenti a livello di sicurezza, la scelta dipende molto da quali sono i client e il server che devono impiegare questa metodologia di trasferimento dei dati.

Tutti i protocolli presentano un problema: è necessario richiedere l’esposizione di ulteriori porte di comunicazione lato server oltre all’abilitazione di porte in uscita lato client.

La soluzione che comporta il minimo sforzo, con un elevato livello di sicurezza e la maggiore flessibilità di impiego, è il protocollo WebDAV (Web-based Distributed Authoring and Versioning). In pratica un’estensione dell’Hypertext Transfer Protocol (HTTP).

WebDAV

WebDAV è un’estensione dell’HTTP che sfrutta tutti gli aspetti positivi di questo protocollo, quindi:

  • garantisce la sicurezza della trasmissione dei dati tramite l’impiego della cifratura con l’impiego dell’HTTPS;
  • prevede diversi meccanismi di autenticazione (certificato o username e password, ecc.) gestiti dal server web;
  • impiega una porta standard, la 443 per l’HTTPS, che non richiede particolari attività autorizzative sui firewall e/o attività di monitoraggio aggiuntivo lato server.

Il protocollo WebDAV è stato sviluppato da tre gruppi di lavoro dell’IETF (Internet Engineering Task Force). Una prima versione del protocollo è stata definita nel 1999 nel RFC 2518. La versione attuale è invece definita nel RFC 5689.

Segue un estratto di configurazione di un virtual host eseguito con Apache2, che consente di realizzare un’area condivisa con protocollo WebDAV con autenticazione di tipo DIGEST.

<virtualhost>
...
  Alias /dav1 /var/www/condivisione/webdav1
  <location dav1="">
       DAV On
       AuthType Digest
       AuthName "davpartner1"
       AuthDigestProvider file
       AuthUserFile  /etc/apache2/password/davpartner1.pwd
       Require valid-user
   </location>
   ...
</virtualhost>

Segue un esempio di comando per creare l’utenza in questione.

#htdigest [ -c ] passwdfile realm username
htdigest -c /etc/apache2/password/davpartner1.pwd davpartner1 partner1

In questo modo è stata realizzata un’area condivisa per il trasferimento di file che si basa un protocollo maturo e implementato su tecnologia stabile costantemente mantenuta ed aggiornata.

L’accesso può avvenire sia con un comune browser, per una consultazione veloce di un file, sia tramite un client WebDAV. È anche possibile montare l’area condivisa come una risorsa locale.

Segue un esempio configurazione del file /etc/fstab.

...
https://www.maurosalvia.it/dav1 /media/dav1 davfs users,noauto 0 0
...

Impiegando il web server per svolgere il medesimo compito ottenibile con protocollo FTP, FTPS o SFTP, WebDAV consente di manutenere un minor di servizi esposti su Internet, con benefici in termini di sicurezza, disponibilità ed affidabilità dei servizi esposti.
WebDAV consente di impiegare repository di custodia di credenziali di autenticazione diversi come LDAP, database relazionali, ecc., facilmente integrabili all’interno dei web server.

Questo sito raccoglie dati statistici anonimi sulla navigazione attraverso i cookie, nel rispetto della tua privacy. Informativa Cookie Policy