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 installer Latte Dock sur KDE Plasma 5

Comment installer Latte Dock sur KDE Plasma 5

Installez Latte Dock sur les systèmes KDE Plasma 5 compatibles, configurez votre panneau et activez le démarrage automatique. Vérifiez la disponibilité des paquets et les limitations de Plasma 6.

Comment installer l'environnement de bureau UKUI sous Linux

Comment installer l'environnement de bureau UKUI sous Linux

Installez UKUI depuis les archives officielles d'Ubuntu, consultez la procédure d'installation des paquets de test actuelle de Debian et évitez les instructions obsolètes d'Arch qui n'installent plus l'environnement de bureau complet.

Comment réinitialiser un mot de passe oublié sous Linux

Comment réinitialiser un mot de passe oublié sous Linux

Récupérez l'accès à un compte Linux local avec un deuxième administrateur ou en mode de récupération Ubuntu, et découvrez ce qu'une réinitialisation de mot de passe ne peut pas déverrouiller.

Comment installer un nouveau noyau Linux sur openSUSE Leap

Comment installer un nouveau noyau Linux sur openSUSE Leap

Suivez la procédure documentée Kernel:HEAD pour openSUSE Leap, conservez un noyau plus ancien disponible au démarrage et examinez les risques avant d'installer un noyau de développement.

Comment partager des fichiers sans fil entre Android et Linux avec KDE Connect

Comment partager des fichiers sans fil entre Android et Linux avec KDE Connect

Associez Android à Linux via Wi-Fi et envoyez des fichiers dans les deux sens grâce à KDE Connect, sans câble, serveur FTP ni compte cloud.

Comment installer Zoiper sous Linux

Comment installer Zoiper sous Linux

Installez Zoiper sur Linux avec le bon paquet Debian, RPM ou tar.xz, puis vérifiez la compatibilité X11 et configurez votre compte SIP.

Comment accéder à votre PC Linux à distance avec NoMachine

Comment accéder à votre PC Linux à distance avec NoMachine

Installez NoMachine Personal Edition sur votre hôte Linux, connectez-vous avec NoMachine Player et configurez l'accès LAN, VPN ou Internet en suivant les instructions d'activation et de port.

Comment mettre à jour openSUSE vers une nouvelle version en toute sécurité

Comment mettre à jour openSUSE vers une nouvelle version en toute sécurité

Mettez à niveau openSUSE Leap avec l'outil de migration officiel, ou mettez à jour Tumbleweed avec zypper dup. Sauvegardez vos données au préalable, vérifiez la compatibilité et examinez les modifications apportées aux paquets.

Comment installer le navigateur Beaker sous Linux avec une image AppImage

Comment installer le navigateur Beaker sous Linux avec une image AppImage

Installez le navigateur Beaker sous Linux à l'aide de l'AppImage du projet archivé, rendez-le exécutable et résolvez les problèmes de lancement courants.

Comment configurer DXVK avec Wine sous Linux

Comment configurer DXVK avec Wine sous Linux

Configurez DXVK dans Wine sous Linux avec un préfixe dédié, les remplacements de DLL appropriés, les vérifications Vulkan et un test HUD rapide pour confirmer son activation.