Les pare-feu doivent répondre avec un message ICMP lorsqu'ils bloquent une demande. Cependant, ce n'est pas nécessairement le cas (vous serez intéressé par ce bel article ).
Vous pouvez tester de l'extérieur pour voir si un port est accessible via un pare-feu et, si oui, si quelque chose l'écoute. Voici trois scénarios différents impliquant une demande tcp que vous pouvez observer avec wireshark
, ou un autre renifleur de paquets, et ce que vous verrez:
1) Le pare-feu rejette la demande
Vous obtenez un message ICMP, et l'outil effectuant la demande devrait immédiatement vous dire quelque chose à cet effet ("inaccessible, admin interdit", etc.). Par «outil», j'entends le client que vous utilisez pour envoyer la demande (j'ai utilisé telnet
). Les détails du message 1 dépendent de la configuration du pare-feu, mais "port inaccessible" est probablement le plus courant.
"Aucune route vers l'hôte" peut indiquer cela, mais cela peut également indiquer des problèmes de routage plus subtils.
2) Le pare-feu supprime le paquet
Il n'y a pas de réponse, l'outil attend donc qu'il expire ou que vous vous ennuyiez.
3) Le pare-feu autorise les paquets (ou il n'y a pas de pare-feu), mais rien n'écoute sur le port.
Vous obtenez un message TCP RST / ACK en retour. Je suppose que le protocole TCP l'exige. En d'autres termes, si rien n'écoute sur le port, le système d'exploitation lui-même envoie cette réponse. Il peut être difficile de le distinguer du n ° 1 simplement en fonction de ce qu'un outil rapporte, car il peut dire la même chose dans les deux cas (cependant, il est très probable qu'il le distingue comme "connexion refusée" vs n ° 1, "réseau inaccessible"). ). Observés dans un renifleur de paquets sur la machine cliente, les scénarios # 1 (message de rejet ICMP) et # 3 (message TCP RST / ACK) sont clairement distincts.
La seule autre option ici est que le paquet soit autorisé par le pare-feu et que quelque chose écoute, donc vous obtenez une connexion réussie.
En d'autres termes: en supposant que votre réseau fonctionne en général correctement, si vous obtenez # 1 ou # 2, cela signifie qu'un pare-feu empêche activement l'accès au port. # 3 se produira si votre serveur ne fonctionne pas mais que le port est accessible, et bien sûr (implicitement) # 4 est une connexion réussie.
- Par exemple, "port inaccessible", "hôte interdit", diverses autres combinaisons hôte / port / admin et inaccessible / interdit ; recherchez-les dans le message car elles sont une indication explicite d'un pare-feu IP en jeu.
nc
signale "Connexion refusée" lorsque le port est accessible, mais il n'y a pas d'écouteur, et "Le réseau est inaccessible" lorsque la demande a été renvoyée par un pare-feu via icmp (ce qui signifie qu'il peut y avoir ou non un service sur le port ). Si le pare-feu supprime le paquet au lieu de le rejeter, ilnc
se bloquera pendant un certain temps.