[port] Scan localhost

lmhelp Messages postés 79 Statut Membre -  
lmhelp Messages postés 79 Statut Membre -
Bonjour,

J'ai cruellement besoin d'un coup de pouce !

Je voudrais savoir écrire en C (par exemple) une fonction qui prend en argument un numéro de port (expl. 7754) sur localhost et me dit si des connexions, sur ce port, à partir de l'extérieur sont acceptées ou pas.
Est-ce possible ?

Merci par avance pour votre aide.

8 réponses

dje-dje Messages postés 10442 Statut Modérateur 758
 
A mon avis le mieux est de tester de te connecter depuis l'exterieur sur ce port tu verras bien.
0
lmhelp Messages postés 79 Statut Membre 1
 
Merci pour ta réponse.

Le problème est que, lorsque j'essaie de me connecter à ce port alors même qu'il est filtré par mon firewall, j'attends très longtemps avant qu'il me dise que la connexion est refusée.

Je voudrais absolument éviter cette attente (je passe les détails mais sinon mon application est totalement impraticable).

Je voudrais que localhost lui-même sache qu'il n'est pas connectable de l'extérieur sur ce port...

J'attends vos réactions... merci.
0
lmhelp Messages postés 79 Statut Membre 1
 
Une autre façon de poser le problème peut-être :

supposons que l'on ait sur une même machine :
- une application A1,
- une autre application A2 qui écoute (listen) sur un port P.

Est-il possible d'empêcher l'application A1 de se connecter à P (connect) ?
0
lmhelp Messages postés 79 Statut Membre 1
 
Bonjour,

Je ne suis pas sûr de ce que j'avance mais j'ai cherché pendant des heures.

Sous Windows,

- la commande "nmap" suivante, exécutée sur localhost (W.X.Y.Z):
nmap -sT  -P0 -p NroDePort W.X.Y.Z
m'indique que le port "NroDePort" est OPEN et pas FILTERED (alors qu'il l'est).

- la commande "nmap" suivante, exécutée sur une autre machine de mon réseau local :
nmap -p NroDePort W.X.Y.Z
m'indique que le port "NroDePort" est FILTERED.

Bref, même "nmap" ne sait pas me dire que tel port sur ma machine est filtré par un firewall et donc non accessible depuis l'extérieur.

Je ne vois pas de solution à ce problème et j'ai comme la vague idée qu'il n'y en a pas et qu'il n'est pas possible de savoir en local si tel port de localhost est accessible ou pas l'extérieur.

Bref, si quelqu'un peut démentir tant mieux.

Bonne journée.
0
dje-dje Messages postés 10442 Statut Modérateur 758
 
C'est pour ca que je te disais de tester
D'autant plus que tu ne peux pas savoir si la "non-accessibilité" est due à un firewall materiel ou logiciel ou à un probleme de routage par exemple.

Pour tester un port spécifique depuis l'exterieur j'utilise parfois la commande telnet (sur le port 25 pour le SMTP par exemple)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
brupala Messages postés 115348 Date d'inscription   Statut Membre Dernière intervention   14 269
 
tu peux aussi utiliser l'utilitaire développé par seb_f sur frameip et qui permet de de créer un trame avec l'entête ip que l'on désire .
https://www.frameip.com/frameip/
0
lmhelp Messages postés 79 Statut Membre 1
 
Merci à dje-dje et à brupala.

=> A dje-dje :
o Exactement, je ne veux pas préjuger de la façon dont l'accès à mon port est bloqué.

o Telnet

J'ai fait l'essai suivant.
Ma machine a pour adresse 192.168.6.15.
Le port que je souhaite étudier est le port 6668.

1. Le port 6668 sur 192.168.6.15 n'est pas bloqué par mon firewall.
- Je lance sur 192.168.6.15 une application qui écoute sur le port 6668 (listen).
- Je lance "telnet 192.168.6.15 6668" sur 192.168.6.15
- Mon programme accepte la connexion.

2. J'indique maintenant dans mon firewall que je n'accepte plus les connexions sur 6668.
- La connexion est tout de même acceptée.
- Si je lance "telnet 192.168.6.15 6668" à partir d'une autre machine de mon réseau local, la connexion n'est pas acceptée.

J'ai donc le même problème avec telnet qu'avec "nmap".

=> A brupala :
J'ai installé cet utilitaire, merci à seb_f.
Cependant, je lance :
FrameIp -tcp_port_destination 6668 -ip_destination 192.168.6.15 -ip_source 192.168.6.15 -tcp_port_source 80
et j'ai l'erreur :
"Error number 202.1 : Unable to send your Ethernet frame."
Et je ne sais pas d'où provient l'erreur.

Voilà voilà...
0
lmhelp Messages postés 79 Statut Membre 1
 
Je rappelle simplement que je ne cherche pas un utilitaire EXTERIEUR à mon application, je souhaite implémenter le test suivant DANS mon application :
j'aimerais pouvoir tester,
dans un programme s'exécutant sur MA MACHINE,
qu'un port de MA MACHINE
est accessible à partir d'une AUTRE MACHINE *.

Je voudrais que ma machine s'auto-teste.

Mais j'ai l'impression que ce n'est pas possible.

* C'est-à-dire qu'une autre machine peut se connecter (connect) au port de ma machine que mon appli. est en train d'écouter (listen).
0
brupala Messages postés 115348 Date d'inscription   Statut Membre Dernière intervention   14 269
 
alors là,
il faudrait effectivement que tu développes une apllication genre ping ou plutôt echo tcp mais sur le port qui t'intérèsse :
cela supposerait que sur AUTRE MACHINE , il faut une partie de l'application capable de répondre en echo à MA MACHINE.
MA MACHINE envoie un paquet ip (tcp ou udp sur le port utile) vers AUTRE MACHINE et AUTRE MACHINE renvoie en echo (avec syn ack pour tcp si il faut) vers MA MACHINE : cela te permet donc de tester la connexion , mais ça n'est pas forcément significatif:
le firewall aura normalement un comportement différent suivant que la demande de connexion vient de l'intérieur ou bien de l'extérieur.
pour cela (lui faire croire que c'est une autre connexion) il faudrait que la connexion depuis MA MACHINE sorte sur un port autorisé ( par exemple 443) et que AUTRE MACHINE recevant la connexion sur 443 en renvoie une en echo sur le port que tu veux tester .
mais tester en boucle localhost ne testera rien de plus qu'un simple netstat , en aucun cas la connexion entre les deux.
0
lmhelp Messages postés 79 Statut Membre 1
 
Bonjour et pardon pour la réponse tardive.

... je ne vois pas ce que c'est "echo tcp"...

D'après ce que tu expliques, il faut donc bien une deuxième machine...

En fait, voilà :
- on a plusieurs hôtes qui exécutent chacun la même application.
- Lorsqu'un des hôtes fait un changement,
- il doit prévenir tous les autres hôtes de façon à ce qu'ils se mettent à jour
- et pour cela, il se connecte tour à tour au port P de chacun des hôtes.
- Ce que je voulais, c'est qu'avant de se joindre aux autres hôtes,
un nouvel hôte s'assure que les autres hôtes pourront se connecter à son port P le cas échéant.

Voilà, merci encore pour l'aide et bonne journée.
0
brupala Messages postés 115348 Date d'inscription   Statut Membre Dernière intervention   14 269 > lmhelp Messages postés 79 Statut Membre
 
0
lmhelp Messages postés 79 Statut Membre 1 > lmhelp Messages postés 79 Statut Membre
 
OK, merci.
0