Le blog de Genma
Vous êtes ici : Accueil » Informatique & Internet » Connaître les ports ouverts vers l’extérieur

Connaître les ports ouverts vers l’extérieur

D 26 février 2020     H 09:00     A Genma     C 2 messages   Logo Tipee

TAGS : Proxy Planet Libre

Prérequis : savoir ce qu’est un port réseau. Sinon, on pourra toujours lire la page Wikipedia Port (logiciel) en introduction.

Il y a quelques années (10 ans), j’écrivais un article Proxy automatique : connaître l’adresse dans lequel j’exposais une façon simple de trouver l’adresse et le port d’un proxy transparent se trouvant sur un réseau d’entreprise.

Récemment, connecté depuis un réseau "public" d’entreprise (une machine en BYOD, non référencé, connecté sur le premier câble réseau venu de l’openspace, est de facto sur un réseau public : pas d’accès aux dossiers et répertoires partagés, pas d’accès aux imprimantes, on a une IP attribué dans une plage différente d’une machine enregistrée), j’ai pu constater que les connexions depuis mon PC vers l’extérieur marchait bien pour une connexion SSH vers le port 22 d’un serveur, vers un VPN écoutant sur le port 443, mais que des connexions sur d’autres serveurs écoutant sur des ports non conventionnels ne marchaient pas. De même, mon client Thunderbird refuse toute connexion à mes différents comptes mails.

Un proxy ?

J’ai utilisé la technique évoqué dans mon article Proxy automatique : connaître l’adresse, je constate que ma machine parle bien à différents serveurs (dont des IP que je connais, vu que ce sont mes serveurs), donc pas de proxy transparent en intermédiaire.

Des ports ouverts et des ports fermés ?

Je me suis donc posé la question de savoir quels sont les ports ouverts vers l’extérieur.

Quand on cherche l’inverse, à savoir quels sont les ports ouverts sur une machine (comprendre : quels sont les ports accessibles publiquement sur Internet), on pense de suite à utiliser nmap (ou on trouve des tutoriaux). Mais dans mon cas, je suis à l’intérieur et je veux savoir par où je peux sortir.

La solution est bien d’utiliser nmap et de faire un scan d’une machine dont on connait les ports ouverts. Il existe "portquiz.net", un service qui avait une machine répondant sur l’ensemble des ports.

nmap -p- portquiz.net | grep -i open

Donc si un ou plusieurs ports sont bloqués entre ma machine qui se trouve sur le réseau public au sein d’une entreprise, la machine cible ne répond pas, indiquant ainsi que ce port ou ces ports sont bloqués.

Portquiz.net étant assez lent (car très probablement beaucoup sollicité), j’ai choisi une autre option, celle que de scanner une machine pour laquelle je connais précisément les ports ouverts.

nmap -p-mamachine.net | grep -i open

Et j’obtiens le résultat suivant :

22/tcp  open   ssh
80/tcp  open   http
443/tcp open   https

Depuis chez moi, derrière une Freebox, même manipulation :

22/tcp    open   ssh
25/tcp    open   smtp
53/tcp    open   domain
80/tcp    open   http
443/tcp   open   https
993/tcp   open   imaps

Quel résultat et conclusion

Le réseau public de l’entreprise permet donc bien un accès au web (port 80, 443) (je n’ai pas étudié la question d’un filtrage de site), un accès sur des serveurs en SSH via le port 22, mais c’est tout. Pas de messagerie possible (pas de IMAPs et de SMTPs), pas de résolution DNS possible (si ce n’est que de passer par les serveurs de résolution de nom fournis avec l’adresse IP, via le DHCP du réseau). Donc ce n’est pas un accès à Internet, mais un accès à un réseau public ouvert sur le web.

On pourra être étonné du fait que le port 22 soit le troisième port ouvert, alors que tout le reste est fermé. Les ports 80 et 443 permettent un accès au web, on comprend la nécessité de les ouvrir. Le port 22, cela veut dire que ce réseau doit être utilisé pour accéder à des machines serveurs dans des clouds publics (supposition avec une forte probabilité), pour des tests et autres usages dans le cadre de projets pour des clients.

J’ai beaucoup plus de ports visibles et accessibles (tous ceux qui sont bien ouverts sur ma machine).

2 Messages

  • Salut, il me semble que tu peux également découvrir cela avec la technique du firewalking.
    par exemple avec le script NSE "firewalk" de nmap

    pourrai tu essayer cette commande depuis ces 2 mêmes machines pour confirmer ou non tes résultasts et conclusions.

    nmap —traceroute —script=firewalk -p 22,25,53,80,443,587,993 —reason mamachine.net


  • Hello,

    Merci pour l’article :-)

    Pour ma compréhension, il y a des éléments qui m’échappent :-) Je me permet de te demander des précisions

    Tu parles d’un réseau public qui ne te permet pas de sortir par tous les ports que tu souhaites (pour moi un réseau public est ouvert "aux 4 vents") sur lequel tu veux savoir, justement, quels ports sont ouverts.
    Si ton PC est "enfermé" derrière quel type d’équipement est-ce ? Une sorte de DMZ ? (puisque ce n’est pas un proxy transparent)
    Du coup ces ports sont ouverts sur un Firewall positionné en sortie ?
    Serait-il possible de trouver l’ip de cet équipement ?

    Dernière question (promis :-), pourquoi scanner les ports d’une machine sur internet depuis une machine dans ce réseau public d’entreprise permet de déterminer les ports ouverts ? Nmap utilises le port 25 en local pour scanner le port 25 de la machine distante ? etc ?