Webdav - cisco
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.