Maison >Tutoriel système >Linux >Comment configurer l'ancien et simple serveur TFTP sous Linux
Saviez-vous qu'il existe une alternative plus simple au protocole de transfert de fichiers populaire ? C'est TFTP, et voici comment le configurer sous Linux.
TFTP (Trivial File Transfer Protocol) a été défini pour la première fois en 1980. Il s'agit d'un protocole assez ancien, publié sous le nom de TFTP Protocol Revision 2 en juin 1981 par Karen R. Sollins dans la RFC 783 (Request for Comments).
Au début, l'objectif principal de TFTP était d'envoyer et de recevoir des fichiers sur le réseau. En particulier, il est utilisé pour transférer les fichiers requis lors du démarrage afin de permettre au système de démarrer sur le réseau.
Voici comment configurer un serveur TFTP sur une machine Linux.
Qu'est-ce que TFTP ?
TFTP est toujours utilisé à des fins de transfert de fichiers, il n'y a aucun changement fondamental dans les fonctionnalités qu'il prend en charge. TFTP est utilisé pour télécharger et envoyer des fichiers via UDP/IP. Il ne dispose pas de fonctionnalités supplémentaires telles que les contrôles d'identité et d'autorisation, la liste des fichiers, la suppression ou le renommage qui sont courants dans d'autres protocoles de transfert de fichiers.
Contrairement au Advanced File Transfer Protocol, qui utilise TCP au niveau de la couche de transport, il fonctionne sur le protocole UDP et n'a pas de fonctions telles que vérifier si les paquets de données appartenant au fichier seront envoyés à l'autre extrémité. En raison de cette limitation, il est plus adapté à une utilisation sur un réseau local plutôt que sur Internet ou un WAN.
Malgré toutes ces fonctionnalités apparemment désavantageuses énumérées ci-dessus, un aspect très puissant du protocole TFTP est sa simplicité. Par rapport à ses alternatives, ce protocole est très simple à mettre en œuvre, même pour les environnements sans système d'exploitation. Grâce à cette fonctionnalité, il a un large éventail d’utilisations dans les systèmes embarqués.
Installer le serveur TFTP sous Linux
Lors de l'utilisation d'appareils intégrés, il est important d'installer le service serveur TFTP. Sur les systèmes Linux, il est possible d'exécuter plusieurs implémentations de serveur TFTP. Si vous utilisez une distribution basée sur Debian, vous pouvez installer les packages tftpd-hpa, tftpd ou atftpd. Si vous ne savez pas lequel choisir, envisagez d'installer le package tftpd-hpa.
┌──(linuxmi㉿linuxmi)-[~/linuxmi.com] └─$ sudo apt-get install tftpd-hpa
Après l'installation, le service TFTP commencera à écouter sur le port UDP 69. Pour servir des fichiers vers d'autres systèmes via un serveur TFTP, vous devez vous rappeler quelques prérequis :
La première consiste à copier les fichiers requis dans le répertoire personnel TFTP ou dans un répertoire sous ce répertoire personnel, et la seconde consiste à rendre les autorisations de fichiers visibles au public
Pour savoir quel est le répertoire personnel du serveur TFTP, vous pouvez consulter la variable TFTP_DIRECTORY dans le fichier /etc/default/tftpd-hpa. En règle générale, vous verrez des répertoires tels que /var/lib/tftpboot ou /srv/tftp. Si nécessaire, vous pouvez modifier ce répertoire et redémarrer le service.
┌──(linuxmi㉿linuxmi)-[~/linuxmi.com] └─$ cat /etc/default/tftpd-hpa
Pour faciliter l'utilisation, si vous remplacez le propriétaire du répertoire personnel TFTP concerné par votre compte utilisateur, vous n'avez pas besoin d'ajouter le préfixe sudo à chaque commande que vous exécutez. Utilisez la commande chown pour changer la propriété de root à l'utilisateur actuel :
sudo chown -R $USER /srv/tftp
Le nom du package du serveur TFTP et le répertoire personnel par défaut peuvent varier en fonction de la distribution Linux utilisée.
Envoyer des fichiers via le serveur TFTP
Parfois, il existe des situations où TFTP est la seule option pour déplacer des fichiers d'un système Linux intégré vers un environnement externe. Par exemple, il arrive parfois que le système ne prenne en charge aucun support inscriptible pouvant être utilisé pour transférer des fichiers.
Dans ce cas, puisque le client TFTP peut être compilé dans busybox, vous pouvez envoyer les fichiers enregistrés dans votre système vers un serveur TFTP sur le réseau.
Pour utiliser l'application client TFTP, exécutez la commande busybox tftp :
busybox tftp
Pour envoyer l'exemple de fichier au serveur TFTP, vous devez utiliser la commande suivante :
busybox tftp -l example.bin -p 192.168.1.111
Bien que la commande ci-dessus soit correcte, une erreur se produira lors du transfert du fichier vers le serveur TFTP. Étant donné que le message d’erreur renvoyé n’est pas explicite, il peut être difficile de comprendre quel est le véritable problème.
Le problème ici est dû à certaines procédures de sécurité sur le serveur TFTP. TFTP exige qu'un fichier portant le même nom se trouve dans le répertoire où le fichier sera écrit, comme condition préalable au téléchargement du fichier, et que les autorisations d'écriture pour le fichier soient disponibles pour tout le monde.
En d'autres termes, les fichiers qui n'existent pas sur le serveur TFTP ne peuvent pas être téléchargés via le client TFTP. Si vous créez un fichier vide portant le même nom et modifiez ses autorisations d'accès, le processus de téléchargement ci-dessus réussira. Pour ce faire, vous devez exécuter la commande suivante dans le répertoire personnel du serveur TFTP concerné :
cd /srv/tftp touch example.bin chmod 666 example.bin
Vous pouvez maintenant effectuer le téléchargement avec succès.
Il est également possible de désactiver les mesures de sécurité ci-dessus et de laisser le serveur TFTP créer un fichier qui n'existe pas. Pour ce faire, vous pouvez utiliser le paramètre -c ou --create lors du démarrage de l'application tftpd-hpa. Il suffit d'ajouter ce paramètre à la variable TFTPD_OPTIONS existante dans le fichier /etc/default/tftpd-hpa :
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure --create"
Pourquoi utiliser le serveur TFTP pour le transfert de fichiers ?
L'avantage le plus important de TFTP est qu'il est rapide et vous permet de gagner du temps. Il est idéal pour transférer des fichiers de configuration de périphériques réseau vers d'autres systèmes. De plus, il a des normes d’utilisation très simples. Il fonctionne facilement avec les logiciels sur les systèmes d'exploitation Windows et Linux. Enfin, dans les situations où FTP n'est techniquement pas possible, TFTP peut toujours sauver la mise.
Bien sûr, le plus gros inconvénient est que ce n’est pas sûr. Par conséquent, vous devez être très prudent lorsque vous transférez des fichiers à l'aide d'un serveur TFTP.
À l'exception du transfert de fichiers, vous ne pouvez pas utiliser le serveur TFTP pour exécuter des fonctions telles que la suppression, l'édition et la modification de fichiers. Cette fonctionnalité constitue un inconvénient majeur pour ceux qui utilisent ou recherchent des systèmes avancés. Enfin, il ne nécessite pas d'authentification, ce qui constitue un inconvénient majeur si vous êtes sérieux au sujet de votre sécurité.
Configurer TFTP sur d'autres systèmes d'exploitation
Si vous souhaitez utiliser TFTP sous Windows, vous n'avez pas besoin d'installer de logiciel tiers. Vous pouvez activer TFTP à l'aide de l'option Activer ou désactiver les fonctionnalités Windows du Panneau de configuration.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!