TFTP (Trivial File Transfer Protocol) a été décrit pour la première fois en 1980. Il s'agit d'un protocole assez ancien publié en juin 1981 sous le nom de protocole TFTP révision 2 dans la RFC 783 (Request For Comments) par Karen R. Sollins.
Au début, l'objectif principal de TFTP était d'envoyer et de recevoir des fichiers sur un réseau. En particulier, il était utilisé pour transférer les fichiers nécessaires au démarrage pour permettre aux systèmes de démarrer sur un 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 et il n'y a pas de 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 n'a pas de fonctions supplémentaires telles que le contrôle d'identité et d'autorisation, la liste des fichiers, la suppression ou le changement de nom, que l'on trouve généralement dans d'autres protocoles de transfert de fichiers.
Contrairement aux protocoles avancés de transfert de fichiers qui utilisent TCP dans la couche de transmission, il fonctionne sur le protocole UDP et n'a pas de fonctionnalités telles que vérifier si les paquets appartenant au fichier vont ou non à l'autre côté. En raison de cette limitation, il est plus adapté à une utilisation dans des réseaux locaux plutôt que sur Internet ou des réseaux étendus.
Malgré toutes ces caractéristiques apparemment négatives énumérées ci-dessus, un aspect du protocole TFTP qui est très fort est sa simplicité. La mise en œuvre du protocole est assez facile par rapport à ses alternatives, même pour les environnements qui n'ont pas de système d'exploitation sur eux. En raison de cette fonctionnalité, il a un large domaine d'utilisation dans les systèmes embarqués.
Installer un serveur TFTP sous Linux
Lorsque vous travaillez avec des appareils intégrés, il est important que le service de serveur TFTP soit installé. Sur les systèmes Linux, plusieurs implémentations de serveur TFTP peuvent s'exécuter. Si vous utilisez un Distribution basée sur Debian, vous pouvez installer le tftpd-hpa, tftpd, ou atftpd paquets. Si vous ne savez pas lequel choisir, envisagez d'installer le package tftpd-hpa.
sudo apt-obtenir installer tftpd-hpa
Après l'installation, le service TFTP commencera à écouter sur le port UDP 69. Pour servir les fichiers à d'autres systèmes via le serveur TFTP, vous devez garder à l'esprit quelques prérequis :
- Copie du fichier requis dans le répertoire de base TFTP ou dans un répertoire situé sous ce répertoire de base
- Rendre les autorisations de fichiers visibles au public
Pour savoir quel est le répertoire d'accueil du serveur TFTP, vous pouvez consulter le TFTP_DIRECTORY variables dans le /etc/default/tftpd-hpa dossier. Habituellement, vous verrez des répertoires comme /var/lib/tftpboot ou /srv/tftp. Si vous le souhaitez, vous pouvez modifier ce répertoire et redémarrer le service.
chat /etc/défaut/tftpd-hpa
Pour faciliter l'utilisation, si vous changez le propriétaire du répertoire de base TFTP approprié en votre compte d'utilisateur, vous n'aurez 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
Les noms de package de serveur TFTP et les répertoires de base par défaut peuvent différer selon la distribution Linux utilisée.
Envoi de fichiers avec le serveur TFTP
Parfois, il existe des situations où TFTP est la seule option pour déplacer un fichier de votre système Linux embarqué au milieu extérieur. Par exemple, il se peut que le système ne prenne parfois en charge aucun support inscriptible à l'aide duquel vous pouvez transférer le fichier.
Dans de tels cas, étant donné que le client TFTP sera probablement compilé dans boîte occupée, vous pouvez envoyer un fichier enregistré dans le système vers un serveur TFTP sur un réseau.
Pour utiliser l'application client TFTP, émettez le TFTP occupé commande:
TFTP occupé
Pour envoyer un exemple de fichier au serveur TFTP, vous devez utiliser une commande comme celle-ci :
boîte occupéeTFTP-lExemple.poubelle-p 192.168.1.100
Bien que la commande ci-dessus soit correcte, vous obtiendrez une erreur lors du transfert du fichier vers votre serveur TFTP. Étant donné que le message d'erreur renvoyé n'est pas explicite, il est 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 prérequis pour le téléchargement d'un fichier et que l'accès en écriture pour ce fichier doit être disponible pour tout le monde.
En d'autres termes, il n'est pas possible de télécharger un fichier qui n'existe pas sur le serveur TFTP via des clients TFTP. Si vous créez un fichier vide avec le même nom et modifiez ses droits d'accès, le processus de téléchargement ci-dessus réussira. Pour cela, vous devez exécuter les commandes suivantes dans le répertoire d'accueil du serveur TFTP concerné :
CD /srv/tftp
toucherExemple.poubelle
chmod 666 Exemple.poubelle
Vous pouvez maintenant effectuer votre téléchargement avec succès.
Il est également possible de désactiver la mesure de sécurité ci-dessus et de faire en sorte que le serveur TFTP crée un fichier qui n'existe pas. Pour cela, vous pouvez utiliser le -c ou --créer paramètre au démarrage du tftpd-hpa application. Il suffit d'ajouter ce paramètre à l'existant TFTPD_OPTIONS variables dans le /etc/default/tftpd-hpa dossier:
# /etc/default/tftpd-hpa
TFTP_USERNAME="TFTP"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --create"
Pourquoi utiliser un serveur TFTP pour le transfert de fichiers ?
L'avantage le plus important de TFTP est qu'il est rapide et vous aide à gagner du temps. C'est une option idéale pour transférer des fichiers de configuration de périphériques réseau vers d'autres systèmes. De plus, il a des critères d'utilisation très simples. Il fonctionne confortablement avec des logiciels sur les systèmes d'exploitation Windows et Linux. Enfin, TFTP est toujours là pour sauver la situation dans les situations où vous ne pouvez techniquement pas utiliser FTP.
Le plus gros inconvénient est, bien sûr, qu'il n'est pas sûr. Par conséquent, vous devez faire très attention lors du transfert de fichiers à l'aide d'un serveur TFTP.
Hormis les transferts de fichiers, vous ne pouvez pas exécuter de fonctions telles que la suppression, l'édition et la modification de fichiers à l'aide d'un serveur TFTP. Cette fonctionnalité est 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 est un inconvénient majeur si vous êtes sérieux au sujet de votre sécurité.
Configuration de TFTP sur d'autres systèmes d'exploitation
Si vous envisagez d'utiliser TFTP sous Windows, vous n'avez pas besoin d'installer de logiciel tiers. Vous pouvez activer TFTP avec l'option Activer ou désactiver les fonctionnalités Windows dans le panneau de configuration.