Comment installer un serveur TFTP sous Ubuntu.

TFTP (pour Trivial File Transfert Protocol) est un protocole simplifié de transfert de fichiers. Il fonctionne en UDP sur le port 69, au contraire du FTP qui utilise lui TCP et le port 21. L’utilisation d’UDP, protocole « non fiable », implique que le client et le serveur doivent gérer eux-mêmes une éventuelle perte de paquets.

Les principales simplifications visibles du TFTP par rapport au FTP est qu’il ne gère pas le listage de fichiers, et ne dispose pas de mécanismes d’authentification, ni de chiffrement. Il faut connaître à l’avance le nom du fichier que l’on veut récupérer. De même, aucune notion de droits de lecture/écriture n’est disponible en standard.

On utilise le protocole TFTP notamment pour la mise à jour des firmwares sur les équipements réseau, la sauvegarde de la configuration de ces équipements réseau, mais aussi pour amorcer des stations de travail sans disque dur.

Ce tutoriel vaut pour les 2 premiers cas qui requiert un serveur TFTP basique. Si vous souhaitez amorcer un PC par le réseau, il vous faut préférer tftp-hpa.

Installation des paquets TFTP.

Passer en mode root à l’aide de la commande sudo et taper la ligne suivante dans une console

sudo apt-get install xinetd tftpd tftp

installer xinetd et tftpd

Installer TFTPD sous ubuntu

Une fois l’installation réalisée, nous allons configurer notre serveur TFTP. Pour cela créer le fichier /etc/xinetd.d/tftp puis l’éditer et saisir  les commandes suivantes :

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftpboot
disable         = no
}

fichier de configuration de TFTP avec Xinetd sous Ubuntu

Pour information voici une petite description de XINETD

xinetd fournit les même fonctionnalités que inetd : il démarre les programmes fournissant des services Internet. Au lieu de démarrer ces services au moment de l’initialisation du système, et de les laisser inactifs jusqu’à ce qu’il y ait une demande de connexion, on ne démarre que xinetd et celui ci écoute sur tous les ports nécessaires aux services listés dans ses fichiers de configuration.

Lorsqu’une requête arrive, xinetd démarre le service correspondant. À cause de la façon dont il fonctionne, xinetd (comme inetd) est aussi appelé le super-serveur. Les services listés dans les fichiers de configuration de xinetd peuvent être séparés en 2 groupes. Les services du premier groupe sont dit multi-threaded et ils nécessitent que le processus père crée un nouveau processus pour chaque nouvelle demande de connexion.

Chaque processus gère alors une connexion. Pour de tels services, xinetd continue d’écouter pour prendre en charge de nouvelles demandes de connexions, et de lancer de nouveaux processus. D’un autre côté, le deuxième groupe est composé des services pour lesquels un seul démon prend en charge toute les nouvelles requêtes de connexion.

De tels services sont appelés single-threaded et xinetd ne prendra plus en charge les requêtes destinées à ce serveur tant que le serveur sera en service. Les services de cette catégorie sont habituellement de type datagramme.

Jusqu’à présent, la seule raison de l’existence d’un super-serveur était de préserver les ressources système en évitant de créer de nombreux processus dont la plupart ne seront actifs que très peu de temps. Tout en remplissant ces fonctions, xinetd tire parti de l’idée du super-serveur pour ajouter des fonctionnalités telle que le contrôle d’accès et le logging.

De plus, xinetd ne se restreint pas aux services listés dans le fichier /etc/services. Par conséquent, tous le monde peut utiliser xinetd pour démarrer des services personnalisés.

Créer le répertoire /tftpboot à la racine de votre système à l’aide des commandes suivantes :

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

création d'un répertoire tftpboot sous Ubuntu

Pour prendre les informations en compte, relancer le service xinetd avec la commande suivante :

sudo /etc/init.d/xinetd reload

redémarrer xinetd sous ubuntu en ligne de commande

Démarrer ou re-démarrer xinetd  avec les commandes suivantes :

sudo /etc/init.d/xinetd start
sudo /etc/init.d/xinetd restart

redémarrer xinetd sous ubuntu en ligne de commande

Si vous utilisez la commande start et que le résultat affiché est Fail, cela veut dire que votre service est déjà lancée.

Pour tester le bon fonctionnement du serveur, nous allons créer un fichier à la racine de notre PC (j’ai effectué un test depuis un PC Windows) puis le transférer sur le serveur tftp :

$ tftp -i 1.10.8.37 put c:\test.txt

installer le client TFTP sous Windows

Sur les PC récent à partir de Windows 7, le client TFTP de Windows n’est plus installé par défaut. Il faut le rajouter manuellement, vous pouvez suivre ce tutoriel : Installer le client TFTP sur votre PC Windows

Ensuite utiliser cette commande pour voir si le fichier s’est bien copié.

$ ls -l /tftpboot/

Résultat :

total 4
-rwxrwxrwx  1 sydtux sydtux 28 2007-02-04 23:14 test.txt

Voilà, le serveur tftp est fonctionnel pour recevoir et mettre à disposition des fichiers. Cette étape est primordiale pour la suite du tutoriel qui propsera une solution en PERL, pour sauvegarder la configuration de vos switchs Nortel.

That’s All.

6 Potins

  1. Bonjour,

    Sous Windows 7 et suivant le paquet TFTP n’est pas installé par défaut. Vous pouvez suivre ce tutoriel pour l’installer sur votre ordinateur : Installer TFTP sur votre PC Windows.

    A bientôt.

  2. Bonjour .Merciii bcp pour ce tuto. j’ai trouvé un prob pendant le test . j’ai recu ce message « ‘tftp’ n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. » .
    J’ai besoin de votre aide .Merci à vouuuuuus!!

  3. Bonjour,

    Y-a-t-il un firewall d’activer sur votre Linux qui empêcherait la connexion ?

  4. Bonjour lorsque j’essaie d’effectuer le tftp, il me renvoie : « échec lors de la demande de connexion ». Cela pourrait être dû à quoi ? car mes 2 machines arrivent bien à se pinguer

  5. Bonjour,

    Merci beaucoup pour ces encouragements.

    A bientôt sur Quick-Tutoriel.com

  6. c’est bien c’est clair, c’est un travail qui fait gagner du temps!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *