1 votes

Comment chrooter le service tftp ?

J'ai installé tftp sur Ubuntu 10.04 avec le fichier /etc/xinetd.d/tftp ci-dessous.
Je peux me connecter au serveur tftp en utilisant

tftp 10.1.1.54
get pxelinux.0

et le fichier est rechargé sans problème. Quand j'essaie :

get /pxelinux.0

Je reçois un

Error Code 2: Access violation

C'est un problème car l'environnement de démarrage PXE de HP demande le pxelinux.0 avec le début /. Je soupçonne qu'il essaie d'utiliser le répertoire racine du serveur comme racine / au lieu d'utiliser /tftpboot comme racine. J'ai regardé la documentation, mais je ne vois pas de moyen de chrooter tftp pour qu'il interprète correctement le slash principal.

Merci d'avance.

service tftp
{
protocol        = udp
port            = 69
socket\_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server\_args     = /tftpboot
disable         = no
}

2voto

Eric Noob Points 531

Vous pouvez utiliser le -s à tftpd pour accomplir ce que vous voulez.

Si j'ai un répertoire /tftpboot comme ça :

# ls /tftpboot
afile

Et je cours tftpd comme ça :

# tftpd -l -s /tftpboot

Puis ceci :

tftp> get afile

est équivalent à ceci :

tftp> get /afile

Vous devez modifier le server_args de votre fichier de configuration :

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = -s /tftpboot
disable         = no
}

0voto

theotherreceive Points 8185

Cela pourrait être un problème de permissions, est-ce que /tftpboot et pxelinux.0 sont lisibles par tous ?


Editar: Avez-vous essayé d'utiliser le argument -s à tftpd pour définir le répertoire ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X