Bonjour,
Tout d’abord résumons l’architecture:
- J’ai une machine Debian directement derrière une box (connectée à internet), qui joue le role de passerelle entre la box et mon réseau local. Celle-ci joue le rôle de NAT pour une connexion internet à tous les PC locaux
- J’ai installé un serveur tftp sur l’un de mes pc locaux
- J’ai un autre PC local qui joue le rôle de client
Dans un premier temps, j’ai testé le serveur tftp dans mon réseau local, la passerelle ne filtre rien car c’est censé être digne de confiance, et donc les transferts ont bien lieu.
Maintenant, je voudrais avoir accès depuis le net au serveur tftp de mon réseau local. Pour cela j’ai:
- Rediriger le port UDP 69 de ma box vers la passerelle Debian
- Configurer iptables de la passerelle pour rediriger le flux vers mon pc local serveur
- J’ai chargé le module ip_conntrack_tftp
Et le soucis en traçant via wireshark:
- Un pc local client demande un transfert de fichier en s’adressant directement à l’adresse public de la box
- Cette demande traverse la box, la passerelle debian
- le PC local serveur TFTP recoit bien la demande de transfert d’un fichier sur son port 69 et envoie en conséquence le premier bloc de donnée
A noter que son port source n’est pas 69 mais un port source aléatoirement choisi par le serveur pour effectuer le tranfert. - Ce paquet émis traverse la passerelle Debian à destination de l’adresse privée de la box
- Le pc local client ne reçoit jamais le paquet avec le premier bloc de donnée et refait une requête pour obtenir le fichier et ainsi de suite…
Il semblerait que la box ne transmettent pas le paquet émis par le pc local serveur tftp, auriez vous une idée de comment remédier à cela? De l’explication du problème?
Où ais je fait une erreur ou un oubli?
Merci.