IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème de firewall avec une application 'FTP like'


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 15
    Points
    15
    Par défaut Problème de firewall avec une application 'FTP like'
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --dport 1438 -j ACCEPT
    Où 1438 est le premier sur lequel le client doit se connecter.

    Voilà mon problème, est-ce que quelqu'un sait comment je peux régler ça ?
    Merci ^^

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Peut être que le firewall sait analyser et décoder le protocole FTP. Donc il sait quand il doit ouvrir dynamiquement le 2eme port.

    Dans le cas de ton protocole, le firewall ne sait peut être pas interpréter l'échange et donc il n'ouvre pas rien.

    Est ce que tu es full compliant avec FTP (du moins pour la négociation du 2eme port) ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Salut, merci pour ta réponse.

    En fait, je dis que mon application ressemble à un serveur FTP, car j'ai un canal de communication et un canal de données ; mais le protocole n'a rien à voir.

    Du coup, la seule chose qu'il me reste à faire c'est essayer d'ouvrir le port juste avant le listen() et de le fermer ensuite je suppose ?

    PS : j'ai essayé de placer l'application sur le port 21 pour vérifier, et ça n'a rien changer.

    Edit : J'ai essayé de faire la négociation du second port comme pour un serveur ftp avec
    227 Entering passive mode (h1,h2,h3,h4,p1,p2)
    Et lors de l'arrivée du client j'ai aussi envoyé un message genre ftp avec
    230 Welcome to FTP service.
    Mais le problème reste le même ; le port n'est pas ouvert.

    Edit 2 : J'ai fait en sorte que mon protocole colle parfaitement à ce que l'on peut faire sur un ftp jusqu'au PASV ; mais pareil mon parfeu bloque la connexion. Donc l'hypothèse serait soit que je n'ai pas fait quelque chose de correcte lors de l'ouverture de la seconde socket, soit que iptables 'connait' vsftpd et qu'il gère l'ouverture de socket dynamiquement.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/10/2008, 17h19
  2. Problème de lancement d'une application avec JWS
    Par petiteminette44 dans le forum JWS
    Réponses: 1
    Dernier message: 11/08/2008, 14h41
  3. [Windev] problème avec une application
    Par cbindep dans le forum WinDev
    Réponses: 1
    Dernier message: 24/03/2008, 16h27
  4. problème d'autorisation avec une application
    Par Sendo dans le forum Weblogic
    Réponses: 1
    Dernier message: 17/03/2008, 11h24
  5. [JBOSS] [Struts] Problème avec une application
    Par Tiercel dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 13/07/2004, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo