Scanner de ports

Vingt ports bien connus, une connexion TCP à chacun, depuis le serveur de sysosx — et trois réponses honnêtes, pas deux. Un port peut être ouvert (quelque chose répond), fermé (l’hôte refuse activement) ou filtré (silence — généralement un pare-feu qui laisse tomber les paquets, pas la preuve qu’il n’y a rien). La cible par défaut est scanme.nmap.org, l’hôte public que le projet nmap fait tourner précisément pour que les gens apprennent le scan ; pour tout autre hôte, scannez vos propres serveurs ou ceux que vous êtes autorisé à tester.

Vous voulez que ce soit surveillé en continu ? Surveillez-le gratuitement avec myeventwatch — alertes d’expiration et de panne, sans carte.

Ce que mesure le scan

Un scan de ports est souvent décrit comme « vérifier quelles portes sont ouvertes », et la métaphore est assez juste pour être utile — avec une correction. Une porte peut être ouverte, verrouillée, ou simplement sans réponse : frapper et n’entendre rien n’est pas la même chose que trouver la porte verrouillée, et un scanner qui ne signale qu’ouvert et fermé cache le troisième cas. Ce scanner signale donc ouvert, fermé et filtré comme trois états distincts. Ouvert signifie que la connexion a réussi, donc un service écoute et accepte les connexions. Fermé signifie que l’hôte a envoyé une réinitialisation — il est vivant et il n’a rien sur ce port. Filtré signifie que la seconde complète d’attente s’est écoulée en silence, ce à quoi ressemble de l’extérieur un pare-feu qui laisse tomber les paquets ; le port peut avoir un service derrière ce pare-feu, et le scan ne peut pas dire le contraire. Garder filtré séparé, c’est la différence entre un résultat sur lequel vous pouvez agir et un résultat qui vous induit discrètement en erreur.

Le scan est délibérément étroit. Il sonde une liste fixe d’une vingtaine de ports — web (80, 8080, 8443, 443), messagerie (25, 110, 143, 993, 995), DNS (53), accès à distance (22, 23, 3389, 5900), partage de fichiers (445), bases de données (3306, 5432, 27017) et quelques autres — avec de simples connexions TCP et rien d’autre. Pas de lecture de bannières, donc le scan n’apprend jamais (ni ne divulgue) la version d’un service ; pas d’UDP, dont les réponses « filtrées » sont bien plus bruyantes ; et aucun moyen de fournir vos propres ports, parce qu’une entrée de ports arbitraires transforme un outil de premier regard en un service général de cartographie. La cible elle-même est résolue une fois et chaque connexion va à cette unique adresse épinglée, de sorte qu’un nom qui change en plein scan ne peut pas rediriger les sondes ailleurs. Sous le capot, la page appelle GET /api/check/port-scan sur le serveur de sysosx, qui exécute les vingt connexions en parallèle et met le résultat en cache dix minutes.

Lire un résultat

Commencez par les ports ouverts — ce sont la surface d’attaque réelle, les services que l’internet peut atteindre. Un 22 ou un 3389 ouverts signifient que l’accès à distance est joignable de partout, ce qui peut être voulu (un serveur que vous administrez) ou peut être la première chose à restreindre à vos propres adresses. Un port de base de données ouvert (3306, 5432, 27017) face à l’internet n’est presque jamais voulu et mérite une attention immédiate : les bases de données sont faites pour être jointes par des applications, pas par tout l’internet. Les ports 80 et 443 ouverts sont normaux pour un serveur web ; les ports de messagerie ouverts sont normaux pour un serveur de messagerie ; tout le reste d’ouvert devrait pouvoir s’expliquer lui-même. Les ports fermés n’ont besoin de rien : l’hôte est vivant et refuse, ce qui est l’état attendu pour la majeure partie de la liste sur la plupart des serveurs. Les ports filtrés ne méritent un second regard que si vous attendiez quelque chose là — un service que vous faites tourner et que le scan ne peut pas voir est généralement une règle de pare-feu qui fait son travail, ou un service lié à la mauvaise interface, et le scan seul ne peut pas distinguer les deux. Un résultat sans aucun port ouvert est un résultat normal, pas une erreur : il signifie qu’aucun des vingt services habituels n’est joignable depuis le point de vue de ce serveur, ce qui est exactement l’allure d’un hôte durci.

Outils liés : le noteur SSL pour la configuration TLS du port 443 une fois que vous savez qu’il est ouvert, le bilan de santé du site pour la joignabilité et les enregistrements ensemble, et le vérificateur de propagation DNS quand la question est de savoir où pointe un nom plutôt que ce qui répond dessus.

Lecture complémentaire : ce que les ports ouverts disent d’un serveur — comment lire un scan comme un opérateur, quels ports ouverts sont normaux et lesquels sont un appel à 3 heures du matin en attente de se produire.

Questions fréquentes

En quoi est-ce différent d’exécuter nmap ?

Nmap scanne tout, de toutes les façons : plages complètes de ports, UDP, détection de versions, empreinte du système d’exploitation. Cet outil fait une seule chose étroite depuis le serveur de sysosx — des connexions TCP à une liste fixe d’une vingtaine de ports bien connus, et rien d’autre. Pas de lecture de bannières, pas de détection de versions, pas d’UDP, pas de ports personnalisés. Cette étroitesse est le but : il répond à « qu’est-ce qui écoute sur les ports habituels ? » sans devenir un scanner polyvalent que n’importe qui peut pointer sur n’importe quoi.

Que signifient vraiment ouvert, fermé et filtré ?

Ouvert signifie qu’une connexion TCP a réussi — quelque chose écoute et accepte les connexions sur ce port. Fermé signifie que l’hôte a activement refusé la connexion (un paquet de réinitialisation), ce qui est la façon dont répond un hôte vivant qui n’a rien sur ce port. Filtré signifie que le port n’a donné aucune réponse du tout en une seconde — généralement un pare-feu qui laisse tomber les paquets en silence. Filtré n’est pas fermé : un port filtré peut avoir un service derrière un pare-feu, et la seule affirmation honnête est « pas de réponse ». Le tableau de résultats garde les trois états séparés exactement pour cette raison.

Pourquoi seulement vingt ports, et pourquoi ne puis-je pas ajouter les miens ?

Parce qu’un scanner de ports avec une entrée de ports arbitraires est un outil pour cartographier n’importe quel hôte sur internet, et ce site ne sera pas cela. La liste couvre les ports qui comptent pour un premier regard — web, messagerie, DNS, bases de données, accès à distance, partage de fichiers — et le serveur refuse tout ce qui est en dehors. Si vous avez besoin d’un scan complet d’un hôte qui vous appartient, exécutez nmap depuis votre propre machine, où vous contrôlez la portée et les conséquences.

Pourquoi scanme.nmap.org est-il la valeur par défaut ?

Parce qu’il existe exactement dans ce but : le projet nmap le fait tourner comme une cible publique que tout le monde peut scanner, pour apprendre comment fonctionne le scan. C’est le seul hôte sur internet où scanner ne demande aucune discussion d’autorisation. Pour tout autre hôte, la règle est simple : scannez vos propres serveurs, des serveurs que vous êtes autorisé à tester, ou des cibles de test publiques — jamais l’infrastructure d’un inconnu.

Pourquoi le résultat est-il mis en cache dix minutes, et pourquoi cinq scans frais par heure ?

Un scan, ce sont vingt connexions TCP en parallèle, pas une seule poignée de main, donc il coûte plus cher que les autres vérifications et il est plus facile d’en abuser pour des sondages en masse. La mise en cache de dix minutes signifie qu’une vérification répétée du même hôte ne coûte rien, et la limite de scans frais, plus stricte (cinq par heure par visiteur, deux par minute au maximum), garde l’outil utilisable pour un humain qui vérifie ses propres serveurs sans devenir un service de sondage. Un résultat en cache est étiqueté comme tel ; les ports ouverts d’un hôte changent rarement d’une minute à l’autre.