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

Delphi Discussion :

[Delphi 2005] Ecouter et surveiller tous les ports


Sujet :

Delphi

  1. #1
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut [Delphi 2005] Ecouter et surveiller tous les ports
    Bonjour,

    Je dois réaliser un programme (avec une fonction de proxy) qui consiste à écouter sur tous les ports (par configuration, on devrait pouvoir spécifier un intervalle) et autoriser ou non les connexions à ces ports.

    C'est à dire par exemple que le programme lors de l'écoute du port 80 devra intercepter les connexions avant que les services appropriés n'en soit avertit et afficher quelque chose comme ceci (pour le moment sur la console, on ne pense pas encore à l'interface graphique) :

    [Port 80]
    Demande de connexion de *** On spécifie le nom d'hôte et son adresse IP ***.
    Autoriser la connexion ? (o/n)
    Je ne suis pas expert non plus en Indy (qui semble être la solution pour les problèmes de réseaux en Delphi) donc je ne sais pas comment :
    - écouter sur tous les ports, et surtout
    - intercepter les connexions à un port donné et proposer le message comme ci-dessus

    J'ai Indy 10 installé sur ma machine.

    Peut être auriez-vous des suggestions à me proposer.
    Toute aide serait la bienvenue

    D'avance, je vous remercie.

  2. #2
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Salut Giovanny,

    De ce que j'en comprends, je ne pense pas que ce soit un proxy que tu cherches à faire. Selon moi ce que tu décris est un pare-feu "en entrée seulement", sur une plage de ports donnée.

    Par principe, tu ne peux pas écouter les ports à surveiller, puisqu'il faut laisser les "services appropriés" le faire... (ces "services appropriés" et ton futur programme seront bien sur la meme machine ?).

    J'ai trouvé un pare-feu fait en Delphi qui fait ça au niveau socket. Je ne sais pas ce que ça vaut exactement..., mais je pense que le but est de comprendre le principe de fonctionnement d'un firewall, peu importe le langage.

    http://winsockfirewall.sourceforge.net/

    Ensuite avec Indy 10 y'a certainement moyen de faire simple, mais faut saisir le principe... Si quelqun le connait, qu'il n'hésite pas à venir faire un cours magistral sur ce fil !

    Bon courage.

  3. #3
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Citation Envoyé par DMO
    De ce que j'en comprends, je ne pense pas que ce soit un proxy que tu cherches à faire. Selon moi ce que tu décris est un pare-feu "en entrée seulement", sur une plage de ports donnée.
    En effet

    Citation Envoyé par DMO
    (ces "services appropriés" et ton futur programme seront bien sur la meme machine ?).
    Oui, ils seront sur la même machine.

    Citation Envoyé par DMO
    J'ai trouvé un pare-feu fait en Delphi qui fait ça au niveau socket. Je ne sais pas ce que ça vaut exactement...,
    Merci

    Je regarde cà

    Citation Envoyé par DMO
    Ensuite avec Indy 10 y'a certainement moyen de faire simple, mais faut saisir le principe... Si quelqun le connait, qu'il n'hésite pas à venir faire un cours magistral sur ce fil !
    +1

  4. #4
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    J'ai un peu regardé ce midi par curiosité : voici ce que j'ai compris :
    Il semble y avoir 2 façons de faire un pare-feu :
    1. En faire "un faux" en hookant Winsock.
    2. En faire "un vrai" en installant une device dans les basses couches du système.

    Pour le hookage, il semblerait que la librairie Synapse en soit capable. Mais ça ne semble pas être la meilleure piste.

    Pour le développement d'un vrai pare-feu, le principe (encore flou pour moi pour l'instant) serait de "choper" les accès dès leur arrivé dans les basses couches (liaison), avant même qu'ils n'atteignent les couches de plus haut niveau (TCP/IP) avec lesquelles on peut jouer avec Indy. Effectivement, Kerio et d'autres installent bien un espece de "pilote" dans le système. Le développement d'une telle DLL étant pas évident, j'ai trouvé WinPCap qui à priori ferait peut-être éventuellement l'affaire. J'ai trouvé ça en regardant le projet Owns qui l'utilise.

    Je ne sais pas si ce sont de bonnes pistes, mais j'espère en tous cas que ça t'aidera à démarrer.

    Bon dev'

    PS: tiens nous au courant stp (ça m'interesse )

Discussions similaires

  1. Se connecte à tous les ports UDP, même fermés
    Par yetimothee dans le forum Réseau/Web
    Réponses: 10
    Dernier message: 26/11/2008, 13h25
  2. Réponses: 7
    Dernier message: 29/06/2008, 00h14
  3. Tous les ports sont bloqué sauf le 80
    Par yonialhadeff dans le forum IIS
    Réponses: 1
    Dernier message: 01/03/2007, 08h47
  4. Bloquer tous les ports sauf 80,21,22,844
    Par biglittlekiss dans le forum Sécurité
    Réponses: 7
    Dernier message: 12/12/2006, 12h15
  5. [C#] Comment utiliser tous les ports COM ?
    Par Seb.26 dans le forum C#
    Réponses: 2
    Dernier message: 10/01/2006, 16h34

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