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

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).

Vus : 289
Publié par genma : 387