Vous n'êtes pas identifié.
Topic (non résolu) contrôlé le 17.08.2006 par calimarno.
Bonjour,
jai beaucoup de difficultés a faire marcher un simple serveur tftp sur mon PC.
TFTP est lancé par xinetd.d (qui est bien actif)
Le fichier de config de mon serveur tftp est le suivant: (/etc/xinetd.d/tftp)
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = /tftp disable = no per_source = 11 cps = 100 2 flags = IPv4 }
Lorsque je lance le client tftp pour tester si mon serveur fonctionne, et que je fait un get nom_de_fichier
j'obtiens l'erreur suivante:
Error code 2: Only absolute filenames allowed
Selon la RFC1350 relative au tftp, c'est une erreur de violation d'acces.
Le répertoire racine du serveur /tftp est en 777.
Quelqu'un peut il m'eclairer?
ya t'il d'autres services a lancer pour executer tftpd?
Hors ligne
Question bête: lors de ton test, tu as bien inclus le /tftp dans le nom du fichier que tu demandais ? tftp a un comportement assez non-standard de ce point de vue. Le répertoire racine n'a pas la même sémantique qu'un chroot, il est la pour des raisons de sécurité mais il faut quand même l'inclure dans le chemin complet d'une requête.
Hors ligne
Salut,
essaye vsftp : http://doc.ubuntu-fr.org/applications/vsftpd
Bonne journée.
Hors ligne
Question bête: lors de ton test, tu as bien inclus le /tftp dans le nom du fichier que tu demandais ? tftp a un comportement assez non-standard de ce point de vue. Le répertoire racine n'a pas la même sémantique qu'un chroot, il est la pour des raisons de sécurité mais il faut quand même l'inclure dans le chemin complet d'une requête.
Merci, c'est déjà ca de trouvé.
Effectivement j'vais adopté la semantique chroot.
Maintenant, le code d'erreur est 0: Permission denied... pourtant mon repertoire racine est en 777, les fichiers désirés egalement.
Hors ligne
Salut,
essaye vsftp : http://doc.ubuntu-fr.org/applications/vsftpd
Bonne journée.
Merci du conseil, vsftp est un excellent serveur securisé FTP .
Mais FTP (port 21) et TFTP (port 69) sont deux protocoles différents.
Et dans mon application, j'ai une carte embarqué qui doit venir telecharger des applis distantes par TFTP.
Merci quand même
Hors ligne
Excuse,
Savais pas que tftp est un protocole. On apprends tous les jours.
http://www.ietf.org/rfc/rfc1350.txt
http://www.ietf.org/rfc/rfc959.txt
Merci et a+.
Hors ligne
Le cas échéant, tu peux peut-être essayer atftp, qui peut entre autres s'executer indépendemment d'inetd (ta config actuelle le fait tourner en root), tu auras peut-être plus de chances avec.
Pour comprendre le problème actuel, avec les formidables messages d'erreurs bien fournis et bien détaillés, il reste peut-être la technique du strace pour comprendre ce qui n'a pas marché: crées un script wrapper, par exemple:
#!/bin/bash strace -f /usr/sbin/in.tftpd $* 2>>/tmp/tftp-log
que tu chmod 555, puis change la config de xinetd pour invoquer ce wrapper a la place de /usr/sbin/in.tftpd, et reload xinetd, puis re-teste une requête. Tu auras la trace des appels système dans /tmp/tftp-log, ou tu pourras (avec de la chance) trouver quel est le path exact que tftp a essayé d'ouvrir, et vérifier s'il était correct ou pas.
Hors ligne
Merci, je devrais pouvoir m'en sortir avec cette méthode
Hors ligne
En analysant ton probleme, j'ai comparé ta config du service tftp avec la mienne.
Elle differe sur un point: la ligne server_args = /tftp
A moins que tu n'es résolu ton probleme, essaye server_args = -s /tftp
l'option -s est decrite dans man tfpd.
N'oublie de relancer xinetd
Si on l'enleve, j'ai le meme message d'erreur que toi.
Hors ligne