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é.