
Le protocole TFTP (Trivial File Transfer Protocol) est un protocole de transfert de fichiers simple, léger et sans authentification.
Il est souvent utilisé dans les environnements réseau pour mettre à jour le firmware des équipements (comme les switchs ou les routeurs), ou encore pour transférer rapidement des fichiers de configuration.
Dans ce tutoriel, je vous montre comment :
– Installer un serveur TFTP sur Linux (Debian, Ubuntu, Linux Mint)
– Transférer un fichier vers un équipement réseau, comme un switch
– Désactiver ou supprimer le serveur TFTP après utilisation, pour des raisons de sécurité
Prérequis
Un serveur ou ordinateur sous Linux, avec un utilisateur ayant les droits sudo
(dans ce tutoriel, j’utiliserai un conteneur LXC hébergé sur Proxmox)
Un fichier à transférer (par exemple un firmware au format .bin)
Un switch ou tout autre équipement réseau connecté au même réseau local
Une adresse IP statique configurée sur le serveur Linux (dans ce tutoriel, j’utiliserai 192.168.0.100 à titre d’exemple — vous pouvez bien sûr utiliser la vôtre)
Étape 1 : Installer le serveur TFTP
Ouvre un terminal et exécute :
sudo apt update sudo apt install tftpd-hpa sudo systemctl enable tftpd-hpa
Étape 2 : Configurer le serveur TFTP
Édite le fichier de configuration principal :
sudo nano /etc/default/tftpd-hpa
Modifie le contenu comme ceci :
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"

Par défaut, ce serveur TFTP permet uniquement le téléchargement (download) et non l’upload.
Pour autoriser l’envoi de fichiers vers le serveur, ajoutez l’option –create dans le fichier /etc/default/tftpd-hpa, par exemple:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure --create"
Si un pare-feu UFW est actif sur votre système, n’oubliez pas d’autoriser le port UDP 69 utilisé par TFTP :
sudo ufw allow 69/udp
Sans cette règle, le serveur TFTP restera inaccessible depuis le réseau
Crée le répertoire TFTP et ajuste les permissions :
sudo mkdir -p /srv/tftp sudo chown -R tftp:tftp /srv/tftp sudo chmod -R 755 /srv/tftp

Les permissions 755 fonctionnent correctement, mais il est généralement recommandé d’utiliser 775 pour offrir un accès plus souple au groupe tftp sans réduire la sécurité.
Étape 3 : Redémarrer le serveur TFTP
Pour appliquer la configuration :
sudo systemctl restart tftpd-hpa
Vérifie que le serveur fonctionne :
sudo systemctl status tftpd-hpa

Étape 4 : Ajouter un fichier à transférer
Place ton fichier dans le dossier TFTP :
sudo cp mon_firmware.bin /srv/tftp/ sudo chown tftp:tftp /srv/tftp/mon_firmware.bin
Étape 5 : Test depuis un switch Cisco (exemple)
Depuis le switch (via console ou Telnet) :
copy tftp: flash: Address or name of remote host []? 192.168.0.100 Source filename []? mon_firmware.bin Destination filename []? mon_firmware.bin
Cela transférera le fichier dans la mémoire du switch.
Étape 6 : Désactiver le serveur TFTP après utilisation
Pour désactiver temporairement :
sudo systemctl stop tftpd-hpa
Pour désactiver définitivement (ne démarre plus au boot) :
sudo systemctl disable tftpd-hpa
Et aussi arrêter immédiatement :
sudo systemctl stop tftpd-hpa
Pour supprimer complètement TFTP :
sudo apt remove --purge tftpd-hpa sudo rm -rf /srv/tftp
Bonus : Script pour activer/désactiver facilement le serveur TFTP
Pour gérer le serveur TFTP plus facilement, vous pouvez utiliser un petit script Bash disponible sur mon dépôt GitLab :
Ce script vous permet de :
- démarrer ou arrêter le serveur tftpd-hpa
- activer ou désactiver son lancement automatique au démarrage
- consulter son statut
Bonne chance!