web-dev-qa-db-fra.com

Pourquoi certains ports signalés par nmap sont-ils filtrés et pas les autres?

J'analyse un serveur qui devrait avoir un pare-feu assez simple en utilisant iptables: par défaut, tout est GOUTTE en plus des paquets RELATED et ESTABLISHED. Les seuls types de paquets NEW autorisés sont TCP sur les ports 22 et 80 et c'est tout (pas de HTTPS sur ce serveur).

Le résultat de nmap sur les premiers 2048 ports donne 22 et 80 aussi ouverts que prévu. Cependant, quelques ports apparaissent comme "filtrés".

Ma question est: pourquoi les ports 21, 25 et 1863 apparaissent-ils comme "filtrés" et les 2043 autres ports n'apparaissent-ils pas comme filtrés?

Je m'attendais à ne voir que 22 et 80 comme "ouverts".

S'il est normal de voir 21,25 et 1863 comme "filtrés", alors pourquoi tous les autres ports n'apparaissent-ils pas aussi "filtrés"!?

Voici la sortie nmap:

# nmap -PN 94.xx.yy.zz -p1-2048

Starting Nmap 6.00 ( http://nmap.org ) at 2014-06-12 ...
Nmap scan report for ksXXXXXX.kimsufi.com (94.xx.yy.zz)
Host is up (0.0023s latency).
Not shown: 2043 closed ports
PORT     STATE    SERVICE
21/tcp   filtered ftp
22/tcp   open     ssh
25/tcp   filtered smtp
80/tcp   open     http
1863/tcp filtered msnp

Je ne comprends vraiment pas pourquoi j'ai 2043 ports fermés:

Not shown: 2043 closed ports

et non 2046 ports fermés.

Voici un lsof lancé sur le serveur:

# lsof -i -n
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
named    3789 bind   20u  IPv4     7802       TCP 127.0.0.1:domain (LISTEN)
named    3789 bind   21u  IPv4     7803       TCP 127.0.0.1:953 (LISTEN)
named    3789 bind  512u  IPv4     7801       UDP 127.0.0.1:domain 
sshd     3804 root    3u  IPv4     7830       TCP *:ssh (LISTEN)
sshd     5408 root    3r  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
sshd     5411    b    3u  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
Java    16589    t   42u  IPv4 88842753       TCP *:http-alt (LISTEN)
Java    16589    t   50u  IPv4 88842759       TCP *:8009 (LISTEN)
Java    16589    t   51u  IPv4 88842762       TCP 127.0.0.1:8005 (LISTEN)

(notez que Java/Tomcat écoute sur le port 8009 mais ce port est GOUTTE par le pare-feu)

40
Cedric Martin

L'instruction 'Port filtré' de nmap diffère selon votre méthode de scan.

L'analyse standard (analyse TCP si utilisateur non privilégié ou analyse semi-ouverte -sS si superutilisateur) repose sur le protocole TCP. (nommé hanshake à 3 voies)

  • Un client (vous) émet un SYN, si le serveur répond SYN/ACK: cela signifie que le port est ouvert !

  • Vous émettez un SYN, si le serveur répond RST: cela signifie que le port est fermé !

  • Vous émettez un SYN, si le serveur ne répond pas, ou répond avec une erreur ICMP: cela signifie que le port est filtré . Un pare-feu IDS/statefull bloquera probablement votre demande)

Pour déterminer quel est le statut réel du port, vous pouvez:

L'excellent livre " Nmap Network Discovery", écrit par son créateur Fyodor l'explique très bien. Je cite

filtré: Nmap ne peut pas déterminer si le port est ouvert car le filtrage de paquets empêche ses sondes d'atteindre le port. Le filtrage peut provenir d'un périphérique de pare-feu dédié, de règles de routeur ou d'un logiciel de pare-feu basé sur l'hôte. Ces ports frustrent les attaquants car ils fournissent si peu d'informations. Parfois, ils répondent avec des messages d'erreur ICMP tels que le code 13 de type 3 (destination inaccessible: communication administrativement interdite), mais les filtres qui suppriment simplement les sondes sans répondre sont beaucoup plus courants. Cela force Nmap à réessayer plusieurs fois au cas où la sonde serait abandonnée en raison d'un encombrement du réseau plutôt que d'un filtrage. Ce type de filtrage ralentit considérablement les analyses.

ouvert | filtré: Nmap place les ports dans cet état lorsqu'il n'est pas en mesure de déterminer si un port est ouvert ou filtré. Cela se produit pour les types de scan dans lesquels les ports ouverts ne donnent aucune réponse. L'absence de réponse pourrait également signifier qu'un filtre de paquets a abandonné la sonde ou toute réponse qu'elle a provoquée. Donc Nmap ne sait pas avec certitude si le port est ouvert ou en cours de filtrage. Les analyses UDP, IP, FIN, NULL et Xmas classent les ports de cette façon.

fermé | filtré: cet état est utilisé lorsque Nmap n'est pas en mesure de déterminer si un port est fermé ou filtré. Il est uniquement utilisé pour l'analyse d'inactivité de l'ID IP décrite à la section 5.10, "Analyse d'inactivité TCP (-sl)

28
Florian Bidabe

pourquoi les ports 21, 25 et 1863 apparaissent-ils comme "filtrés" et les 2043 autres ports n'apparaissent-ils pas comme filtrés?

Parce que dans votre FAI, votre routeur, votre administrateur réseau, tout ce qui se trouve entre eux ou vous-même les filtre. Ces ports ont une histoire assez mauvaise, le 1863 est le port utilisé par le protocole de messagerie instantanée de Microsoft (aka MSN et ses amis) qui, je crois, peut (ou peut-être pas) avoir défini une règle spécifique. Le SMTP semble que votre FAI est le coupable et le FTP m'a complètement sidéré, car je n'ai aucune idée de ce qui pourrait leur arriver.

10
Braiam

Par défaut, Nmap analyse uniquement les 1 000 ports les plus courants pour chaque protocole (tcp, udp). Si votre port est en dehors de cela, il ne le scannera pas et ne le signalera donc pas. Cependant, vous pouvez spécifier les ports que vous souhaitez analyser avec l'option -p.

1