Configurer un serveur TFTPD

Auteur : Olivier BOYER - oboyer () ajoute ! org

Mots clés

NetBSD, service, tftp, dhcp, inetd

Introduction

Ce document décrit comment configurer le service TFTP sur un NetBSD 1.6.x ou 2.X. Le périphérique qui est configuré via TFTP est un serveur d'impression HP JetDirect EX.

Le serveur TFTP écoute sur le port udp/69.

Nous utiliserons le service TFTP livré par défaut avec les versions NetBSD supérieures à 1.6. Il s'agit de celui de l'ISC (Internet Software Consortium), disponible à l'URL : http://www.isc.org/sw/dhcp/

Présentation de la maquette

Les éléments suivants sont mis en oeuvre :

  • un service DHCP
  • un service TFTP
  • un service SYSLOG qui écoute sur l'interface LAN
  • un serveur d'impression HP JetDirect EX

Le serveur d'impression HP JetDirect EX obtient son adresse IP (jd.leaves.org) via DHCP, et télécharge son fichier de configuration (jd.cfg) par TFTP. Les logs des actions effectuées par le serveur d'impression HP JetDirect EX sont envoyées par syslogd au serveur smoking.leaves.org.

Note

Toutes les commandes présentées ici, sont à executer, sauf mention contraire, en tant qu'administrateur de la machine.

Pré-requis

Ce document suppose que :

  • le service DHCP soit déjà configuré et fonctionnel sur la machine
  • le service SYSLOG soit convenablement configuré et écoute sur l'interface LAN du serveur.
  • les noms des machines jd.leaves.org et smoking.leaves.org soient convenablement résolus en adresse IP.

Configuration du serveur TFTP

Créer un compte utilisateur dédié

Le service TFTP par nature n'est pas sécurisé, puisqu'il ne nécessite aucune authentification de l'utilisateur pour télécharger les fichiers.

Par défaut, le service TFTP tourne sous l'identité du compte nobody. Il vaut mieux créer un autre utilisateur, plus spécifique.

Procédez comme suit :

# groupadd -g 114 tftp
# useradd -b /nonexistent -s /sbin/nologin -c "tftp pseudo-user" -u 114 -g tftp tftp

Créer le répertoire racine du serveur TFTP

Dans notre configuration, le daemon tftpd(8) va exécuter l'appel système chroot(2) au démarrage. Cela permet d'éviter que d'autres fichiers que ceux dans le répertoire racine soient accéder via le protocole TFTP.

Si le client distant inclus le répertoire dans le nom du fichier à transmettre, il sera nécessaire de créer un lien symobolique du répertoire racine vers . dans le répertoire racine.

Dans notre configuration, le répertoire racine du server est : /var/chroot/tftpboot

# mkdir /var/chroot/tftpboot
# chown root:wheel /var/chroot/tftpboot
# chmod 755 /var/chroot/tftpboot

Le “standard de fait” pour le répertoire racine du service TFTP est : /tftpboot

Nous allons donc créer un lien symbolique de : /var/chroot/tftpboot vers /tftpboot

# cd /
# ln -s var/chroot/tftpboot tftpboot

Activer le service TFTP

Le daemon tftpd utilisé ici n'est pas autonome. Il est lancé par le super daemon réseau inetd. Pour l'activer, modifier comme suit le fichier /etc/inetd.conf :

#default#tftp  dgram  udp  wait  root  /usr/libexec/tftpd  tftpd -l -s /tftpboot
tftp  dgram  udp  wait  root  /usr/libexec/tftpd  tftpd -l -u tftp -g tftp -s /var/chroot/tftpboot

Relancer le daemon inetd pour prendre en compte les modifications :

# /etc/rc.d/inetd reload

Modifier le fichier /etc/dhcpd.conf

Le serveur d'impression HP JetDirect EX à besoin :

  • d'une adresse IP obtenue via le service DHCP,
  • d'un fichier de configuration téléchargé via le service TFTP.

Pour configurer le serveur d'impression HP JetDirect EX, modifier comme suit le fichier /etc/dhcpd .conf :

##
## bootp options
##

allow bootp;

##
## Clients settings
##
host jd {
   # HP JetDirect Ex print server
   # Manage an HP Laser Jet printer
   hardware ethernet 08:00:09:xx:xx:xx;
   fixed-address jd.leaves.org;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.0.255;
   option routers 192.168.0.254;
   option log-servers smoking.leaves.org;
   # name of the HP JetDirect Ex config file
   filename "/var/chroot/tftpboot/jd.cfg";
}

Relancer le daemon dhcpd pour prendre en compte les modifications :

# /etc/rc.d/dhcpd restart

Liens

 
doc/netbsd/tftpd.txt · Dernière modification: 2009/12/23 22:36 (édition externe)     Haut de page