Comment configurer un serveur TFTP sur un serveur Ubuntu avec tftpd-hpa

Installez le serveur et le client TFTP d' Ubuntu . Cette configuration permet de partager des fichiers et de stocker les fichiers téléchargés dans un répertoire distinct. Consultez la liste des paquets serveur et client d'Ubuntu ./srv/tftp

Sécurité : TFTP ne requiert ni authentification ni chiffrement. Limitez l’accès à un réseau local de confiance ; les clients accessibles peuvent lire les fichiers disponibles et en télécharger si les permissions le permettent. Ne transférez pas de données confidentielles. La spécification TFTP décrit ses limites de sécurité.

Configurer le serveur TFTP

1. Installez le serveur et le client

Actualisez les métadonnées APT, puis installez les deux paquets :

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
Terminal du serveur Ubuntu affichant la commande pour installer tftpd-hpa et tftp-hpa
Installez les packages serveur et client.

2. Configurer la racine TFTP

Modifier le fichier de configuration du paquet :

sudo nano /etc/default/tftpd-hpa

Définissez ces valeurs :

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create --umask 027"

--secureCette configuration confine le démon à sa racine, --createautorise les chargements et --umask 027limite les nouveaux fichiers à un mode spécifique 0640. Le manuel de tftpd sous Ubuntu décrit ces options. Enregistrez avec Ctrl+O, appuyez sur Entrée, puis sur Ctrl+X.

Étant donné que TFTP --securerend /srv/tftpla racine visible par le client, les noms de fichiers sont relatifs à celle-ci : utilisez `<nom_du_fichier>` hello.txt, et non ` /srv/tftp/hello.txt<nom_du_fichier>`. Les clients TFTP ne parcourent pas les répertoires ; il est donc conseillé de conserver une liste des noms de fichiers publiés et de leurs chemins.

Éditeur de terminal affichant tftpd-hpa configuré avec la racine /srv/tftp, le mode sécurisé, les téléchargements et le masque de permissions 027
Limitez les fichiers et définissez le masque de téléchargement.

3. Créez le répertoire racine et le répertoire de téléchargement

Conservez le répertoire racine principal comme propriété de l'utilisateur root et n'accordez l'accès en écriture qu'au dossier upload :

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

Le démon peut lire la racine, mais seul le tftpcompte peut y écrire /srv/tftp/upload. Évitez de rendre l'ensemble de l'arborescence accessible en écriture à tous avec des permissions telles que `sudo` 777.

Les fichiers du répertoire racine public doivent être accessibles en lecture à tous les clients autorisés. Limitez ce répertoire aux images de démarrage, aux firmwares et aux autres éléments destinés à ce réseau. Pour les transferts privés, utilisez un protocole avec authentification et chiffrement.

Création du terminal Ubuntu /srv/tftp/upload avec l'utilisateur et le groupe TFTP et le mode 0750
Seul le sous-répertoire upload est accessible en écriture.

4. Ajouter un fichier à servir

Créez un fichier connu à la racine. Les contrôles de lecture par défaut de TFTP exigent que les fichiers servis soient accessibles publiquement ; définissez donc le mode0644 :

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
Terminal du serveur Ubuntu : écriture du fichier hello.txt dans /srv/tftp et définition des permissions du fichier à 0644
Créez un fichier connu pour le test de téléchargement.

5. Activez et redémarrez le service

Activez l'appareil au démarrage, redémarrez-le pour appliquer les paramètres et vérifiez son état :

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

Si le démarrage échoue, consultez le journal des services avec sudo journalctl -u tftpd-hpa -b --no-pager.

Commandes du terminal Ubuntu Server pour activer, redémarrer et inspecter le service tftpd-hpa
Redémarrez le service après avoir modifié ses paramètres.

6. Limiter l'accès au pare-feu

Si UFW est activé, autorisez uniquement la requête initiale provenant de votre sous-réseau client. Remplacez le réseau d'exemple par votre plage d'adresses LAN de confiance :

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

Consultez le guide UFW d'Ubuntu pour les règles relatives au réseau source. Le protocole TFTP démarre sur le port UDP 69, puis utilise un port UDP sélectionné par le serveur pour les données des fichiers, conformément à sa spécification . Un pare-feu strict, un routeur ou un périphérique NAT peut autoriser la requête mais bloquer le transfert. En cas de délai d'attente dépassé par les clients, utilisez un suivi des connexions compatible TFTP ou une politique de pare-feu appropriée ; n'ouvrez pas tous les ports UDP et n'exposez pas le protocole TFTP sur Internet. Cette commande ajoute une règle ; elle n'active pas UFW. Si vous administrez le serveur via SSH et prévoyez d'activer un pare-feu inactif, autorisez d'abord SSH afin de préserver l'accès distant.

Commande UFW autorisant uniquement le port UDP 69 à partir du sous-réseau 192.168.1.0/24 (exemple).
Autoriser les requêtes initiales provenant d'un sous-réseau de confiance.

Tests de téléchargement et de chargement

7. Télécharger depuis un client Ubuntu

Sur le serveur, exécutez la commande ip -brief addresset notez son adresse LAN accessible. Sur un client Ubuntu, installez le client si nécessaire. Remplacez 192.0.2.10ci-dessous par l'adresse réelle du serveur :

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

Le fichier est enregistré dans le répertoire courant du client. Le manuel du client TFTP d'Ubuntu documente binarycette procédure get. Le mode binaire est recommandé pour les firmwares, les images de démarrage et les fichiers dont les octets doivent rester inchangés. Les noms de fichiers Linux sont sensibles à la casse ; saisissez donc chaque nom de fichier distant exactement.

Terminal client TFTP se connectant au serveur d'exemple et téléchargeant hello.txt en mode binaire
Demander le fichier connu en mode binaire.

8. Téléversez dans le dossier restreint

Sur le client, créez un fichier de test, puis envoyez-le vers un chemin situé dans le répertoire de téléchargement du serveur :

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

Utilisez l'adresse réelle du serveur. Le chemin distant est relatif/srv/tftp ; vérifiez le transfert sur le serveur avec `ftp` sudo ls -l /srv/tftp/upload/. Les clients TFTP utilisent les noms de fichiers connus plutôt que de parcourir le contenu du répertoire.

Terminal client TFTP envoyant upload-check.txt à upload/upload-check.txt en mode binaire
Les fichiers téléchargés restent dans le sous-répertoire accessible en écriture.

Dépannage des erreurs courantes

  • Fichier introuvable : vérifiez le nom du fichier par rapport à son emplacement /srv/tftpet confirmez son existence.
  • Violation d'accès : rendez les fichiers servis accessibles au public ; pour les téléchargements, vérifiez la tftppropriété du répertoire de destination et assurez-vous --createqu'elle est bien définie.
  • Délai d'attente : Vérifiez que le client utilise l'adresse accessible du serveur, que le service est actif et que le pare-feu autorise le flux de données UDP négocié.

Pour isoler un problème réseau, effectuez d'abord un test depuis un client du même réseau local. Si cela fonctionne mais qu'un client routé expire, vérifiez si le routeur ou le pare-feu gère correctement le protocole TFTP pour le port de données négocié.

Pour un service en lecture seule, supprimez --create-le TFTP_OPTIONSet redémarrez-le tftpd-hpa.

Laisser un commentaire

Comment récupérer en toute sécurité des partitions perdues et des données de disque dur

Comment récupérer en toute sécurité des partitions perdues et des données de disque dur

Découvrez comment récupérer des partitions et des fichiers perdus avec TestDisk et PhotoRec. Protégez le disque source, effectuez une analyse sécurisée et enregistrez les données récupérées sur un autre disque.

Comment scanner des codes QR sur un ordinateur Linux

Comment scanner des codes QR sur un ordinateur Linux

Numérisez les codes QR sous Linux avec CoBang à l'aide d'une webcam ou d'un fichier image. Consultez les options d'installation, la procédure de configuration et les solutions pour l'accès à la caméra via Flatpak.

Comment modifier les paramètres de la webcam sous Linux avec Cameractrls

Comment modifier les paramètres de la webcam sous Linux avec Cameractrls

Modifiez les paramètres de votre webcam sous Linux avec Cameractrls : ajustez l’exposition, la couleur, la réduction du scintillement et d’autres commandes prises en charge, puis vérifiez les modes vidéo compatibles.

Comment installer PhpStorm sous Linux : Toolbox, Tar.gz, Snap et AUR

Comment installer PhpStorm sous Linux : Toolbox, Tar.gz, Snap et AUR

Installez PhpStorm sur Linux avec JetBrains Toolbox ou l'archive tar.gz autonome, ainsi que via Snap et Arch AUR. Java est déjà inclus.

Comment installer Cisco Packet Tracer sous Linux

Comment installer Cisco Packet Tracer sous Linux

Téléchargez Cisco Packet Tracer 9.0.1 pour Ubuntu 64 bits, installez le paquet DEB avec APT, acceptez la licence dans le Terminal et connectez-vous pour démarrer un labo.

Comment sauvegarder un CD-ROM au format ISO sous Linux

Comment sauvegarder un CD-ROM au format ISO sous Linux

Créez une image ISO de CD-ROM sous Linux avec GNOME Disks ou dd. Identifiez le lecteur optique, surveillez la copie, vérifiez l'image et sachez si un disque endommagé ou audio nécessite un autre outil.

Comment configurer deux panneaux sur XFCE 4

Comment configurer deux panneaux sur XFCE 4

Créez un panneau XFCE 4 distinct pour chaque écran, assignez le deuxième panneau à la sortie appropriée, positionnez-le et dimensionnez-le, puis ajoutez les lanceurs et les éléments d'état dont vous avez besoin.

Comment détourer une image sous Linux avec GIMP

Comment détourer une image sous Linux avec GIMP

Supprimer l'arrière-plan d'une photo sous Linux avec GIMP : tracer un sujet, supprimer l'arrière-plan sélectionné, conserver la transparence et exporter un PNG réutilisable.

Téléchargez FlightGear gratuitement : Guide d’installation officiel

Téléchargez FlightGear gratuitement : Guide d’installation officiel

Téléchargez gratuitement FlightGear depuis le site officiel. Comparez les versions pour Windows, macOS et Linux, installez les fichiers de données et effectuez votre premier vol.

Application Google Tasks pour ordinateur : comment l’utiliser sur un ordinateur

Application Google Tasks pour ordinateur : comment l’utiliser sur un ordinateur

Ouvrez Google Tasks dans un navigateur, ajoutez un raccourci Chrome ou lancez-le comme une application, et gérez vos tâches datées via Agenda et Gmail.