GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configuration du serveur WebDAV sur Ubuntu Linux

Présentation

Cet article traitera de l'installation et de la configuration du serveur WebDAV sur Ubuntu Linux. WebDAV signifie Web Distributed Authoring and Versioning et permet aux utilisateurs connectés de modifier et de partager des données en ligne via le protocole HTTP. Cela fait de WebDAV un choix populaire pour les développeurs lorsqu'il est combiné, par exemple, avec Subversion ou OpenLink Virtuoso. WebDAV est pris en charge par un certain nombre de clients allant de davfs2, ce qui permet de monter le stockage de données WebDAV à inclure dans le système de fichiers local. Cela peut être fait avec la commande mount vers diverses applications GUI avec le support WebDAV natif telles que Nautilus, konqueror, etc. De plus, dans ce guide, nous combinerons WebDAV avec le serveur Apache2.

Scénario

Dans cette section, je voudrais décrire un scénario utilisé dans ce tutoriel. WebDAV peut être un service très flexible, qui permet un certain nombre de paramètres de configuration et de scénarios. Dans ce didacticiel WebDAV, nous commencerons par la configuration WedDAV de démarrage de base la plus simple et à partir de là, nous la construirons pour s'adapter à un environnement plus complexe. Vous pouvez considérer WebDAV comme une extension HTTP pour la configuration de votre site Web existant. Normalement, votre site Web Apache est peut-être déjà opérationnel. Ainsi, dans ce cas, tout ce que vous devez faire pour inclure le service WevbDAV est de :

  1. créer un répertoire de données de téléchargement supplémentaire à utiliser par WebDAV
  2. configurer votre fichier d'hôte virtuel apache2 existant

Cependant, dans ce guide, nous partirons de zéro en commençant par l'installation d'Apache2, la création d'un hôte virtuel, etc. Par conséquent, n'hésitez pas à passer à la section la plus appropriée à vos besoins de configuration.

Dans ce guide, nous allons configurer :

  • webdav.local - ce sera un hôte virtuel fonctionnant sur le serveur IP 10.1.1.61
  • webdav.local/svn - ce sera un répertoire compatible WebDAV
  • /var/www/webdav – répertoire pour héberger le fichier d'index de webdav.local
  • /var/www/webdav/svn – répertoire pour héberger le stockage de données de webdav.local/svn WebDAV

Modifiez vos paramètres DNS en conséquence ou modifiez le fichier /etc/hosts de votre client pour inclure la résolution webdav.local de l'hôte ci-dessus.

Installation Apache et WebDAV

Dans cette section, nous allons simplement installer apache2 et activer le module WebDAV. Le module WebDAV est fourni avec l'installation apache2, cependant, il n'est pas activé par défaut. Tout cela peut être fait avec deux commandes simples :

$ sudo apt-get install apache2

À présent, vous devriez pouvoir accéder à votre site Web par défaut situé à l'adresse http://webdav.local. Si tout se passe bien, désactivez la page par défaut car nous n'en avons plus l'utilité :

$ sudo a2dissite default
$ sudo service apache2 reload

Configurer l'hôte virtuel

À ce stade, nous devons configurer l'hôte virtuel avec ServerName :webdav.local et le répertoire attaché /var/www/webdav. Pour ce faire, accédez à /etc/apache2/sites-available/ :

$ cd /etc/apache2/sites-available/

et créez un nouveau fichier de configuration de site appelé webdav.local avec le contenu suivant :

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Une fois cela fait, nous devons créer un répertoire /var/www/webdav/ approprié :

$ sudo mkdir /var/www/webdav

Remplacez le propriétaire par apache :

$ sudo chown www-data.www-data /var/www/webdav

et activer le nouveau site webdav.local

$ sudo a2ensite webdav.local

Pour le tester, nous pouvons créer un simple fichier index.html :

$ sudo sh -c 'echo "Welcome from WebDAV.local" > /var/www/webdav/index.html'

et enfin recharger le serveur web apache2 :

$ sudo service apache2 reload

Vous devriez maintenant pouvoir naviguer dans votre navigateur jusqu'à http://webdav.local et voir le message :Welcome from WebDAV.local sur votre écran. Ceci conclut l'installation du serveur Web apache2 avec l'hôte virtuel webdav.local

Configuration WebDAV

Il est temps d'activer le module de WebDAV avec :

$ sudo a2enmod dav_fs
Considering dependency dav for dav_fs:
Enabling module dav.
Enabling module dav_fs.

et redémarrez le serveur apache :

$ sudo service apache2 restart

Maintenant que tout est prêt, nous pouvons configurer un serveur WebDAV de base. Cela peut être facilement fait en créant un répertoire supplémentaire pour stocker les données WebDAV :

Configuration de base

$ sudo mkdir /var/www/webdav/svn

Il est également important de le rendre inscriptible par apache sinon nous obtenons l'erreur 403 Forbidden :

$ sudo chown www-data.www-data /var/www/webdav/svn/

et l'activation de WebDAV pour notre nouvel hôte virtuel webdav.local. Cela peut être fait en ajoutant les lignes suivantes dans le bloc :

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
</Location>

Ce que signifie ce qui précède est que WebDAV a activé le répertoire /var/www/webdav/svn qui sera accessible via http://webdav.local/svn. Effectuez la modification ci-dessus de votre fichier de configuration /etc/apache2/sites-available/webdav.local existant et redémarrez votre serveur Web apache. Voici à quoi ressemble l'ensemble du fichier /etc/apache2/sites-available/webdav.local à ce stade :

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
</Location>

</VirtualHost>

Il est temps de tester notre configuration. Une façon de le faire est de pointer notre navigateur vers http://webdav.local/svn ou encore mieux d'utiliser l'outil cadaver. Installez d'abord cadavre avec :

$ sudo apt-get install cadaver

Créez le même fichier de données avec dd à télécharger dans votre répertoire WebDAV et téléchargez-le :

$ dd if=/dev/zero of=mydata.dat bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.075726 s, 138 MB/s
$ cadaver http://webdav.local/svn
dav:/svn/> put mydata.dat
Uploading mydata.dat to `/svn/mydata.dat':
Progress: [=============================>] 100.0% of 10485760 bytes succeeded.
dav:/svn/> quit
Connection to `webdav.local' closed.

Vous devriez maintenant avoir le serveur WebDAV de base configuré et prêt à l'emploi. Dans la section suivante, nous ajouterons une authentification utilisateur de base.

WebDAV avec authentification utilisateur

Si vous avez l'intention de déployer votre serveur WebDAV sur un hôte distant, il est plus que conseillé d'implémenter au moins une authentification de base. Heureusement, cela peut être facilement fait en utilisant le htpasswd commande et reconfigurer notre fichier de configuration /etc/apache2/sites-available/webdav.local existant.

Créez d'abord un répertoire dans lequel vous souhaitez stocker le fichier de mot de passe du webdav. Il s'agit d'un emplacement de votre choix. Dans ce tutoriel, j'utilise /usr/local/apache2/ :

$ sudo mkdir /usr/local/apache2/

Ensuite, utilisez htpasswd pour créer un nouveau fichier de mots de passe par rapport auquel tous les utilisateurs seront authentifiés.

$ sudo htpasswd -c /usr/local/apache2/webdav.passwords lubos

Si vous avez besoin d'ajouter plus d'utilisateurs, utilisez la syntaxe ci-dessus mais omettez l'option -c car elle écrasera votre fichier existant.
Maintenant que le fichier d'authentification est prêt, nous devons ajouter l'authentification à notre /etc/apache2/sites actuel -fichier de configuration available/webdav.local. Les nouvelles modifications sont mises en évidence avec la police en gras :

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Alias /svn /var/www/webdav/svn
<Location /svn>
    DAV On
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /usr/local/apache2/webdav.passwords
        Require valid-user
</Location>

</VirtualHost>

Désormais, si vous essayez d'accéder à votre serveur WebDAV, vous devrez d'abord vous authentifier. Voici un exemple d'authentification WebDAV :

$ cadaver http://webdav.local/svn
Authentication required for webdav on server `webdav.local':
Username: lubos
Password: 
dav:/svn/> ls
Listing collection `/svn/': succeeded.
        mydata.dat                      10485760  Feb 20 14:45
dav:/svn/>

Limiter l'accès WebDAV

De plus, il est conseillé de limiter l'accès WebDAV à un nombre limité d'utilisateurs. Par exemple, si nous voulons permettre à un seul utilisateur "Lubos" d'accéder à notre référentiel WebDAV, nous pouvons le faire en ajoutant une clause dans la directive telle que :

    <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /usr/local/apache2/webdav.passwords
        Require user lubos
    </Limit>

Étant donné que les utilisateurs peuvent accéder et télécharger des fichiers dans n'importe quel répertoire compatible WebDAV, il est également recommandé d'interdire le fichier .httaccess. Par conséquent, ajoutez :

AllowOverride None

à l'intérieur de la directive .

Montage du répertoire compatible WebDAV

Comme cela a déjà été mentionné auparavant, WebDAV est pris en charge par un grand nombre de clients. Il est également possible de monter le répertoire WebDAV dans un système local pour agir comme une partie du système de fichiers. Pour ce faire, nous devons d'abord installer davfs2 en tant qu'utilisateur root :

# apt-get install davfs2

puis créez un point de montage :

# mkdir /mnt/webdav

et enfin montez-le avec une commande mount :

# mount.davfs http://webdav.local/svn /mnt/webdav/
Please enter the username to authenticate with server
http://webdav.local/svn or hit enter for none.
  Username: lubos
Please enter the password to authenticate user lubos with server
http://webdav.local/svn or hit enter for none.
  Password:  
# cd /mnt/webdav/
# ls
lost+found  mydata.dat
# touch linuxcareer.com.txt
# sync

Conclusion

Cet article décrit une configuration de base du service WebDAV utilisant le serveur Web Apache2 pour vous aider à démarrer. Il y a peu de problèmes de sécurité à prendre en compte, vous devez donc faire vos devoirs et consulter la documentation Apache Module mod_dav pour plus de paramètres de configuration et des améliorations de sécurité pour améliorer votre configuration.


Ubuntu
  1. 4 étapes pour configurer le référentiel local dans Ubuntu à l'aide d'APT-mirror

  2. Configurer le serveur Urbackup sur Ubuntu 20.04

  3. Configurer Rsyslog Server sur Ubuntu 20.04 - Comment faire ?

  4. Ubuntu – Serveur Vcenter sous Linux ?

  5. Configurer le serveur Web Ubuntu ?

Configuration du serveur Ubuntu 22.04 Minecraft

Comment configurer le serveur de référentiel APT local sur Ubuntu 20.04

Comment configurer OpenVPN sur Ubuntu Server

Comment configurer le serveur Git sur Ubuntu 20.04

Comment configurer le serveur Rsyslog sur Ubuntu

Comment configurer le serveur DHCP sur Ubuntu