Webdav - cisco

De Wiki doc


WebDAV (Web-based Distributed Authoring and Versioning) est une extension du protocole HTTP permettant de simplifier la gestion de fichiers avec des serveurs distants. Il permet de récupérer et déposer des fichiers là où un simple accès WEB ne supporte que le téléchargement.

Ce document a pour but d'expliquer les étapes à réaliser tant côté client (Cisco IOS) que serveur (GNU/Linux Debian 11 Apache2) pour la mise en place d'une solution de sauvegarde à transit chiffré d'un équipement réseau Cisco.

Partie serveur

Installation du service

apt install apache2

Création de l'arborescence de travail

mkdir -p /var/www/dav/conf /srv/httpd
chown -R www-data: /var/www/dav/ /srv/httpd

Activation des modules Apache pour le support WebDav et TLS

a2enmod dav dav_fs ssl

Génération de la clé et du certificat serveur

openssl req -x509 -nodes -days 5000 -newkey rsa:4096 -out /etc/ssl/certs/dav.crt -keyout /etc/ssl/private/dav.key

Création d'un utilisateur pour l'accès au partage

htpasswd -c /srv/httpd/utilisateurs.pwd cisco

Création de l'hôte virtuel Apache

vim /etc/apache2/sites-available/davs.conf
<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
		ServerAdmin webmestre@localhost
		DocumentRoot /var/www/dav

		<Directory "/var/www/dav">
			DAV on
			Order Allow,Deny
			Allow from all
			
			AuthType Basic
			AuthName "Cisco"
			AuthUserFile "/srv/httpd/utilisateurs.pwd"

			Require valid-user	
		</Directory>

		SSLEngine on
		SSLCertificateFile /etc/ssl/certs/dav.crt
		SSLCertificateKeyFile /etc/ssl/private/dav.key

		<FilesMatch "\.(cgi|shtml|phtml|php)$">
			SSLOptions +StdEnvVars
		</FilesMatch>
		<Directory /usr/lib/cgi-bin>
			SSLOptions +StdEnvVars
		</Directory>
	</VirtualHost>
</IfModule>

INFORMATION

Comme le précise Cisco dans sa documentation, IOS ne gère que la méthode d'authentification Basic (faudrait quand même pas que ça respect trop les standards de sécurité...). On se cantonnera donc à cette méthode dans la configuration du serveur.

Désactivation de l'hôte virtuel par défaut et activation du nouveau

a2dissite 000-default.conf
a2ensite davs.conf

Redémarrage du service pour prise en compte des changements

systemctl restart apache2.service

Partie client

Afin qu'un élément actif de réseau Cisco puisse exploiter le serveur mis en place pour sauvegarder sa configuration, nous avons besoin d'importer le certificat du site afin de lui faire confiance lors des échanges.

Création d'un point de confiance PKI pour un usage avec TLS

crypto pki trustpoint CRT_SAUV_DAV
	enrollment terminal
	usage ssl-server
	revocation-check none

Importation du certificat (obtenu depuis le serveur avec un cat /etc/ssl/certs/dav.crt)

crypto pki authenticate CRT_SAUV_DAV

! Copier/coller le contenu du certificat et terminer par une ligne contenant le mot "quit"

-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIUWUmY2yVeX+KF0PnLXQdKJZEEmfEwDQYJKoZIhvcNAQEL
...
0YDQAgCPFey8sa9el/ArrPNWxcP43FkDmYbbgpNwgEkezk6Oeuu1mrvGEPNAB6Y=
-----END CERTIFICATE-----
quit

L'usage du serveur est maintenant rendu possible

copy running-config https://cisco:cisco@[2001:db8:0:172::3]

Afin de réaliser une sauvegarde périodique, il est possible d'utiliser la méthode archive d'IOS

archive
	path https://cisco:cisco@[2001:db8:0:172::3]/conf/$h$t
	write-memory
	time-period 1440

ATTENTION

Gardez en tête qu'un certificat expire. Dans cet exemple, une validité de 5000 jours (13,5 ans) a été définie. Si vous utilisez un certificat émis par une autorité publique, il n'est pas rare que ceux-ci se limitent à 1 an voir 3 mois pour certains. Un entretient de cet élément sera alors nécessaire pour ne pas se retrouver avec une sauvegarde dysfonctionnelle.

Les sauvegardes ainsi réalisées sont accessibles depuis un navigateur WEB ou un explorateur de fichier supportant WebDav à la même adresse qu'utilisée par l'équipement de réseau.