Bonjour à tous, nous allons voir aujourd’hui la mise en place d’un serveur TFTP afin notamment de sauvegarder la configuration de vos routeurs / switchs notamment.

Mais avant de réaliser la démonstration, je vais rappeler ce qu’est un Serveur TFTP.

Le Trivial File Transfer Protocol, abrégé en TFTP, est un protocole très simple de type client / serveur, qui permet de gérer le transfert de fichiers au sein de réseaux composés d’ordinateurs. Une première spécification de ce protocole a été publiée au mois de juin 1981 dans la RFC 783. La version actuelle date de 1992 de la RFC 1350 sous une mouture améliorée.

Le protocole TFTP repose sur un autre protocole très simple, le protocole de transport UDP (User Datagram Protocol), qui permet d’effectuer un transfert de données sans connexion fixe entre les partenaires de communication. L’implémentation de TFTP sur la base d’autres protocoles est à la fois possible et envisageable.

les données transites de l’équipement réseau (switch / routeur) vers le serveur TFTP debian, soit par le biais d’une automatisation du processus, soit manuellement.

Le transfert de données par TFTP est toujours basé sur une requête-client, qui demande un accès en écriture ou en lecture. Cette requête fait également office de demande de connexion, connexion qui est automatiquement établie si le serveur accepte l’accès. Ensuite, le client ou le serveur transmet le fichier sous forme de blocs dont la taille est prédéfinie. Dans les premières versions du protocole, on avait encore la valeur fixe de 512 octets – mais depuis le RFC 2348 le serveur et le client peuvent ajuster la taille du bloc avec plus de souplesse.

Démonstration !

Prérequis :

  • Un serveur linux (Debian dans mon cas) : IP : 192.168.0.19/24
  • Un routeur (ou switch Cisco) : IP : 192.168.0.100/24

Il est évident que les machines puissent communiquer à travers le réseau (pinguable) …

Commençons d’abord par la configuration du serveur debian :

apt-get install xinetd tftpd tftp

Une fois l’installation réalisée, nous allons configurer notre serveur TFTP. Pour cela créer le fichier suivante :

nano /etc/xinetd.d/tftp

copier-coller

service tftp
{
protocol    	= udp
port        	= 69
socket_type 	= dgram
wait        	= yes
user        	= nobody
server      	= /usr/sbin/in.tftpd
server_args 	= /tftpboot
disable     	= no
}


Créons ensuite le répertoire /tftpboot à la racine de votre système à l’aide des commandes suivantes :

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

Pour que les informations soit prisent en compte, relancer le service xinetd avec la commande suivante :

sudo /etc/init.d/xinetd restart

Maintenant, il faut créer le fichier de configuration du routeur en amont sur le serveur debian.

touch brlndtech-routeur1-confg (dans le répertoire /tftpboot/)
chmod 777 brlndtech-routeur1-confg

Nous en avons fini de la configuration côté serveur, maintenant nous allons exporter le fichier de configuration (running config) d’un routeur cisco.

Pour cela, je me reconnecte par le biais du protocole SSH au routeur.

Pour rappel sur le serveur tftp nous avons créé en amont le fichier brlndtech-router1-conf dans le dossier du service tftp /tftpboot. Sans cette manipulation rien ne fonctionnera. Le fichier cible (côté serveur tftp) et le fichier source (côté routeur) doivent porter le même nom (cf image suivante) sinon la sauvegarde ne se lancera pas.

Et ensuite je vais taper la commande suivante : (je suis en mode config, mais ce n’est pas obligatoire).

Le champ destination file ci-dessous name, doit correspondre au fichier créer en amont sur le serveur tftp ! (Je me répète, mais mieux vaut deux fois qu’une … :))

Voilà maintenant, si vous affichez le contenu du fichier /tftpboot/brlndtech-routeur1-confg, vous allez retrouver votre fichier de configuration de votre routeur sauvegardé !

cat /tftpboot/brlndtech-routeur1-confg
Current configuration : 2736 bytes
!
version 15.4
service timestamps debug datetime msec
service timestamps log datetime msec
(...) 

Restauration du fichier de configuration

Pour restaurer le fichier de configuration, du serveur TFTP vers notre routeur, nous devons effectuer le « cheminement inverse ». Pour cela, depuis le routeur, taper la commande suivante :

Attention, cette action remplacera votre fichier de configuration actuel !

brlndtech-routeur1#copy tftp running-config
Address or name of remote host []? 192.168.0.19
Source filename []? brlndtech-routeur1-confg
Destination filename [running-config]?
Accessing tftp://192.168.0.19/brlndtech-routeur1-confg...
Loading brlndtech-routeur1-confg from 192.168.0.19 (via GigabitEthernet0/1): !
[OK - 2640 bytes]
1030 bytes copied in 4.042 secs (107 bytes/sec)
brlndtech-routeur1#write

++

Brlndtech


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"