logo rss

GNU/Linux - Installer et configurer un serveur TFTP

Tux logo

TFTP pour Trivial File Transfer Protocol est un protocole simplifié de transfert de fichiers qui permet a un ou plusieurs clients d'échanger des fichiers avec un hôte distant.

C'est un vieux protocole mais qui est toujours très utilisé dans de nombreuses applications réseau.

Je l'utilise personnelement pour mettre à jour les firmware de mes périphériques réseau. (Les commutateurs Cisco par exemple).

Nous verrons ici comment mettre en place un serveur TTFP sous la distribution Debian.

Schéma Réseau

  • OS : Debian 11 (bullseye)
  • Tftp server : atftpd
  • Network Protocol : UDP 69
  • RĂ©pertoire TFTP : /srv/tftp
GNU/Linux | Debian tftp server architecture
Architecture d'un serveur TFTP sous Debian

Installation

  • Mettre Ă  jour la liste des paquets :
root@server:~# apt update
  • Installer le serveur atftpd :
root@server:~# apt install atftpd
  • CrĂ©er un dossier /srv/tftp si manquant. Ce dernier sera notre rĂ©pertoire racine de notre partage tftp :
root@server:~# ls /srv/tftp || mkdir -p /srv/tftp

Configuration

Configuration réseau

  • Éditer le fichier /etc/network/interfaces (remplacer ens224 par sa propre interface rĂ©seau) :
allow-hotplug ens224 iface ens224 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.254 dns-nameservers 192.168.1.254
  • RedĂ©marrer :
root@host:~# reboot

Configuration TFTP

  • Éditer le fichier /etc/default/atftpd et vĂ©rifier que l'on a les paramètres suivants :
USE_INETD=true # OPTIONS below are used only with init script OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /srv/tftp"
  • RedĂ©marrer le service atftpd :
root@server:~# systemctl restart atftpd.service
  • Ajouter les droits de lecture/Ă©criture pour rendre les fichiers dans /srv/tftp lisibles et modifiables :
root@server:~# chmod -R ugo+rw /srv/tftp/

VĂ©rification depuis un client

Pour vérifier le bon fonctionnement de notre serveur nous pouvons utiliser un client tftp.

  • Depuis un hĂ´te Debian, installer le client tftp :
root@client:~# apt update && apt install tftp
  • Se connecter au serveur tftp :
user@client:~$ tftp 192.168.1.10
  • Afficher l'Ă©tat :
tftp> status Connected to 192.168.1.10. ode: netascii Verbose: off Tracing: off Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
  • TĂ©lĂ©charger un fichier :
tftp> get c1000-universalk9-mz.152-7.E4.bin
  • Envoyer un fichier :
tftp> put c1000-universalk9-mz.152-7.E4.bin
  • Quitter la session :
tftp> quit

Serveur DHCP

Dans certaines situations on peut également avoir besoin de paramétrer un serveur DHCP, nous allons ici voir comment.

  • Installer le service dhcpd :
root@client:~# apt update && apt install isc-dhcp-server
  • Éditer le fichier /etc/dhcp/dhcpd.conf, ici avec un pool d'adresses de 192.168.10.10 Ă  192.168.10.20 :
option domain-name "example.org"; default-lease-time 600; max-lease-time 7200; ddns-update-style none; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.20; }
  • Éditer le fichier /etc/default/isc-dhcp-server pour prĂ©ciser sur quelle interface rĂ©seau le service fonctionnera :
INTERFACESv4="ens224" #INTERFACESv6=""
  • RedĂ©marrer le service dhcpd :
root@client:~# systemctl restart isc-dhcp-server.service
  • Afficher les attributions dhcpd :
root@client:~# grep dhcpd /var/log/syslog
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

adresse mail de contact