Serveur TFTP : service A-TFTPD
>>> Debian 8 et A-TFTPD
Description :

Cette article explique comment installer un serveur TFTP sur votre serveur Debian 8. Nous utiliserons dans cet article le paquet A-TFTPD.

>>> Debian 8 et A-TFTPD

Sommaire :

I) Explications
II) Installation
III) Configuration
IV) Tests du serveur TFTP


I) Explications

TFTP (pour Trivial File Transfer Protocol ou protocole simplifié de transfert de fichiers) est un protocole simplifié de transfert de fichiers.
Il fonctionne en UDP sur le port 69, au contraire du FTP qui utilise lui TCP. 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. En termes de rapidité, l’absence de fenêtrage nuit à l’efficacité du protocole sur les liens à forte latence. On réserve généralement l’usage du TFTP à un réseau local.
Les principales simplifications visibles du TFTP par rapport au FTP sont 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. À cause de ces fonctionnalités absentes, FTP lui est généralement préféré.
TFTP reste très utilisé pour la mise à jour des logiciels embarqués sur les équipements réseaux (routeurs, pare-feu, etc.) ou pour démarrer un PC à partir d’une carte réseau.
La dernière version de ce protocole est la version 2, définie dans RFC 1350. Elle est la plus utilisée.

II) Installation

Il existe plusieurs paquets réalisant la fonction de serveur TFTP :

  • tftpd
  • tftpd-hpa
  • atftpd

Nous utiliserons le paquet "atftpd" dans cet article.

Le "A" de Atftpd signifie "advanced". Le paquet ATFTPD autorise le client à créer un nouveau fichier sur le serveur. (voir service TFTPD qui ne gère pas cette option)

 Tapez les commandes suivantes pour installer le paquet :

aptitude install atftpd

III) Configuration

La configuration du service se fait via le fichier "/etc/inetd.conf".

 Editez le fichier :

vim /etc/inetd.conf

Vous obtenez ceci :

# /etc/inetd.conf:  see inetd(8) for further informations.
#
# Internet superserver configuration database
#
#
# Lines starting with "#:LABEL:" or "#<off>#" should not
# be changed unless you know what you are doing!
#
# If you want to disable an entry so it isn't touched during
# package updates just comment it out with a single '#' character.
#
# Packages should modify this file by using update-inetd(8)
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
#:INTERNAL: Internal services
#discard                stream  tcp     nowait  root    internal
#discard                dgram   udp     wait    root    internal
#daytime                stream  tcp     nowait  root    internal
#time           stream  tcp     nowait  root    internal

#:STANDARD: These are standard services.

#:BSD: Shell, login, exec and talk are BSD protocols.

#:MAIL: Mail, news and uucp services.

#:INFO: Info services

#:BOOT: TFTP service is provided primarily for booting.  Most sites
#       run this only on machines acting as "boot servers."
tftp            dgram   udp4    wait    nobody /usr/sbin/tcpd /usr/sbin/in.tftpd --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

#:RPC: RPC based services

#:HAM-RADIO: amateur-radio services

#:OTHER: Other services

Vous pouvez observer que la ligne "tftp" est beaucoup plus longue qu’avec le paquet "tftpd" (voir article -> 312).

Je souhaite modifier le répertoire cible du serveur TFTP, je veux que le répertoire soit "/var/sauvegardes".

tftp            dgram   udp4    wait    nobody /usr/sbin/tcpd /usr/sbin/in.tftpd --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /var/sauvegardes

 Créez maintenant le nouveau répertoire :

mkdir /var/sauvegardes

 On définit les droits d’écritures :

chown nobody:nogroup /var/sauvegardes
chmode 775 /var/sauvegardes

 Pour terminer on redémarre le service :

service inetd restart

IV) Tests du serveur TFTP

 Sur le switch tapez la commande "copy running-config tftp" pour copier la config sur le serveur TFTP.

Switch1#copy running-config tftp
Address or name of remote host []? 172.16.1.30
Destination filename [switch1-confg]?
!!
7235 bytes copied in 0.880 secs (8222 bytes/sec)

Votre fichier est copié.