Salut,
Je développe une petite application qui fonctionne plus ou moins comme un FTP en mode passif.
Donc j'ai un port sur lequel le client se connecte une première fois et ensuite, je lui donne un second port sur lequel il doit aussi se connecter.
J'ai commencé par faire mes tests en local, je n'ai aucun problème. Seulement, lorsque je suis passé sur un environnement réel (donc un serveur avec un firewall) ; ça n'a plus fonctionné.
En effet, le port que je communique au client n'est pas ouvert sur le firewall.
A première vue, je me serai dit que c'est tout à fait normal ; cependant, j'ai un serveur ftp qui tourne en mode passif et qui fonctionne parfaitement. J'ai ouvert un petit telnet pour taper les commandes à la main et lorsqu'il me demande de me connecter sur le port 15657 par exemple, j'y arrive (alors que ce port n'est pas ouvert sur le firewall).
Ce qui me fait croire que c'est moi qui est raté quelque chose au niveau de l'ouverture de ma seconde socket ? J'ai fait des recherches mais je n'ai rien trouvé qui permette de faire fonctionner mon application.
J'ai vu que dans le fichier /proc/sys/net/ipv4/ip_local_port_range, on pouvait voir la plage de port utilisable pour régler le problème, mais même en utilisant un de ces ports, le firewall bloque la connexion.
Pour info, j'utilise iptables avec
Où 1438 est le premier sur lequel le client doit se connecter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 1438 -j ACCEPT
Voilà mon problème, est-ce que quelqu'un sait comment je peux régler ça ?
Merci ^^
Partager