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