Démon tftpd
Objectif
Fournit la fonction serveur pour le protocole Trivial File Transfer Protocol.
Syntaxe
/usr/sbin/tftpd [ -c ] [ -n ] [ -p ] [ -v ] [ -t ] [ -s ] [ -x ] [ -z ] [ -d Répertoire] [ -r Option]
Descriptif
Remarque: le démon tftpd est normalement démarré par le démon inetd . Il peut également être contrôlé à partir de la ligne de commande, à l'aide de commandes SRC.
Le démon /usr/sbin/tftpd exécute le serveur TFTP (Trivial File Transfer Protocol). Les fichiers envoyés via TFTP se trouvent dans le répertoire indiqué par le chemin d'accès complet indiqué sur la ligne de commande tftp ou utftp .
Les modifications apportées au démon tftpd peuvent être effectuées à l'aide de l'outil SMIT (System Management Interface Tool) ou du contrôleur SRC (System Resource Controller), en éditant le fichier /etc/inetd.conf ou /etc/services . Le démon tftpd est démarré par défaut lorsqu'il est supprimé de la mise en commentaire dans le fichier /etc/inetd.conf .
Le démon inetd extrait ses informations du fichier /etc/inetd.conf et du fichier /etc/services .
Après avoir modifié le fichier /etc/inetd.conf ou /etc/services, exécutez la commande refresh -s inetd ou kill -1 InetdPID pour informer le démon inetd des modifications apportées à son fichier de configuration.
Le serveur tftpd doit disposer d'un ID utilisateur avec le moins de privilèges possible. L'ID personne autorise le moins de droits et correspond à l'ID utilisateur par défaut.
Le démon tftpd doit être contrôlé à l'aide de l'outil SMIT (System Management Interface Tool) ou en modifiant le fichier /etc/inetd.conf . entréetftpdsur la ligne de commande n'est pas recommandée.
Le serveur tftpd est une application à unités d'exécution multiples qui peut gérer la négociation d'option (RFC2349). Cette fonction permet à un client de négocier une taille de fichier à transférer. Il permet également un délai d'attente et une taille de bloc plus importante. La taille de bloc (blksize) est négociée uniquement pour les demandes de lecture (RRQ). Par conséquent, les performances de temps d'amorçage des noeuds sans disque à l'aide de TFTP peuvent s'améliorer de manière significative.
La négociation de l'option Taille de transfert (tsize) pour les demandes de lecture et d'écriture permet de connaître la taille du fichier avant le transfert, ce qui génère un message d'erreur si l'allocation est dépassée avant le début du transfert. L'option de délai d'attente (timeout) permet au client et au serveur de négocier un délai d'attente de retransmission (entre 1 et 255 secondes). Le client tftp doit également prendre en charge RFC2349 pour que la négociation d'option ait lieu.
Fichiertftpaccess.ctl
Le fichier /etc/tftpaccess.ctl est recherché pour les lignes commençant parallow:oudeny:. Les autres lignes sont ignorées. Si le fichier n'existe pas, l'accès est autorisé. Les répertoires et fichiers autorisés, à l'exception des répertoires et fichiers refusés, sont accessibles. Par exemple, le répertoire /usr peut être autorisé et le répertoire /usr/ucb peut être refusé. Cela signifie que tout répertoire ou fichier du répertoire /usr , à l'exception du répertoire /usr/ucb , est accessible. Les entrées du fichier /etc/tftpaccess.ctl doivent être des noms de chemin absolus.
Le fichier /etc/tftpaccess.ctl doit être accessible en écriture seule par le superutilisateur et lisible par tousgroupsetothers(c'est-à-dire, appartenant àrootavec des droits d'accès de 644). L'utilisateurnobodydoit pouvoir lire le fichier /etc/tftpaccess.ctl . Sinon, le démon tftpd ne peut pas reconnaître l'existence du fichier et autorise l'accès à l'ensemble du système. Pour plus d'informations, reportez-vous à l'exemple de fichier tftpaccess.ctl , qui se trouve dans le répertoire /usr/samples/tcpip .
L'algorithme de recherche suppose que le nom de chemin local utilisé dans la commande tftp est un nom de chemin absolu. Il recherche le fichier /etc/tftpaccess.ctl à la rechercheallow:/. Il recherche à plusieurs reprises les noms de chemin d'accès autorisés avec chaque nom de chemin d'accès partiel construit en ajoutant le composant suivant à partir du nom de chemin d'accès au fichier. Le nom de chemin le plus long correspondant est celui autorisé. Il fait ensuite la même chose avec les noms refusés, en commençant par le nom de chemin autorisé le plus long correspondant.
Par exemple, si le chemin d'accès au fichier est /a/b/c et que le fichier /etc/tftpaccess.ctl contientallow:/a/betdeny:/a, une correspondance autorisée serait faite (/a/b) et aucune correspondance refusée commençant par/a/bet l'accès serait autorisé.
Si le fichier /etc/tftpaccess.ctl contientallow:/aetdeny:/a/b, une correspondance autorisée serait faite (/a) et une correspondance refusée commençant par/a(/a/b) et l'accès serait refusé. Si le fichier /etc/tftpaccess.ctl contientallow:/a/bet également contenudeny:/a/b, l'accès serait refusé car les noms autorisés font l'objet d'une recherche en premier.
Manipulation du démon tftpd avec le contrôleur des ressources système
Le démon tftpd est un sous-serveur du démon inetd , qui est un sous-système du contrôleur de ressources système (SRC). Le démon tftpd est membre du groupe de sous-systèmes SRC tcpip . Ce démon est activé lorsqu'il n'est pas mis en commentaire dans le fichier /etc/inetd.conf et peut être manipulé par les commandes SRC suivantes:
| Article | Descriptif |
|---|---|
| startsrc | Démarre un sous-système, un groupe de sous-systèmes ou un sous-serveur. |
| stopsrc | Arrête un sous-système, un groupe de sous-systèmes ou un sous-serveur. |
| lssrc | Extrait le statut d'un sous-système, d'un groupe de sous-systèmes ou d'un sous-serveur. |
Indicateurs
| Article | Descriptif |
|---|---|
| -c | Indique le nombre maximal d'unités d'exécution simultanées par processus, en excluant l'unité d'exécution initiale. |
| -d Répertoire | Indique le répertoire de destination par défaut. Le répertoire spécifié sera utilisé comme répertoire de base pour le stockage des fichiers uniquement. Ce répertoire par défaut sera utilisé uniquement si aucun chemin d'accès complet n'est spécifié. Le répertoire par défaut pour l'extraction des fichiers est toujours /tftpboot. |
| -i | Consigne l'adresse IP de la machine appelante avec des messages d'erreur. |
| -n | Permet à l'utilisateur distant de créer des fichiers sur votre machine. Les utilisateurs distants ne sont autorisés à lire des fichiers avec des droits de lecture pour d'autres utilisateurs que si cet indicateur n'est pas spécifié. |
| -P | Indique le numéro de port de la demande entrante. |
| -r Option | Indique une négociation d'option tftp à désactiver. Plusieurs indicateurs -r peuvent être utilisés. Par exemple, la ligne suivante du fichier /etc/inetd.conf désactive la négociation d'option pour tsize et blksize: |
| -S | Active le débogage de niveau socket. |
| -t | Indique la valeur de délai d'attente pour les datagrammes. |
| -v | Consigne les messages d'information lorsqu'un fichier est transféré avec succès par le démon tftpd . Cette consignation permet de savoir qui transfère à distance des fichiers vers et depuis le système à l'aide du démon tftpd . |
| -X | Indique le nombre maximal de délais d'attente d'un datagramme. |
| -Z | Indique la taille de segment maximale autorisée pour les transferts. |
Exemples
Remarque: Les arguments du démon tftpd peuvent être spécifiés à l'aide de SMIT ou en éditant le fichier /etc/inetd.conf .
- Pour démarrer le démon tftpd , entrez ce qui suit:startsrc -t tftpCette commande démarre le sous-serveur tftpd .
- Pour arrêter normalement le démon tftpd , entrez ce qui suit:stopsrc -t tftpCette commande permet à toutes les connexions en attente de démarrer et aux connexions existantes de se terminer, mais empêche le démarrage de nouvelles connexions.
- Pour forcer l'arrêt du démon tftpd et de toutes les connexions tftpd , entrez ce qui suit:stopsrc -f -t tftpCette commande arrête immédiatement toutes les connexions en attente et les connexions existantes.
- Pour afficher un rapport de statut abrégé sur le démon tftpd , entrez ce qui suit:lssrc -t tftpCette commande renvoie le nom du démon, l'ID de processus et l'état (actif ou inactif).