J'analyse un serveur qui devrait avoir un pare-feu assez simple en utilisant iptables :par défaut tout est DROPped sauf RELATED
et ESTABLISHED
paquets. Le seul type de NEW
les paquets autorisés sont les paquets TCP sur les ports 22 et 80 et c'est tout (pas de HTTPS sur ce serveur).
Le résultat de nmap sur les 2048 premiers ports donne 22 et 80 comme ouvert, comme je m'y attends. 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 à voir seulement 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 comme "filtrés" ! ?
Voici le nmap sortie :
# 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 que ce port est abandonné par le pare-feu)
Réponse acceptée :
L'instruction "Port filtré" de nmap diffère selon votre méthode d'analyse.
Le scan standard (TCP Scan si utilisateur non privilégié, ou Half-Open scan -sS si superutilisateur) s'appuie sur le protocole TCP. (nommé 3-way hanshake)
-
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é . Il est probable qu'un IDS / un pare-feu avec état bloque votre demande)
Pour savoir quel est l'état réel du port, vous pouvez :
- utiliser le -sV , ou -A option (détection de version, cela vous aidera à déterminer quel est l'état de ce port.
- utiliser –tcp-flags SYN,FIN pour essayer de contourner le fw.
- utiliser d'autres types de numérisation (http://nmap.org/book/man-port-scanning-techniques.html)
L'excellent "Nmap Network Discovery ” livre, é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 dispositif 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 par des messages d'erreur
ICMP tels que le code 13 de type 3 (destination inaccessible :
communication interdite par l'administration), mais les filtres qui
suppriment simplement les sondes sans répondre sont beaucoup plus courants. Cela oblige Nmap
à réessayer plusieurs fois juste au cas où la sonde serait abandonnée en raison de
la congestion du réseau plutôt que du filtrage. Ce type de filtrage ralentit
considérablement les analyses.open|filtered :
Nmap place les ports dans cet état lorsqu'il est incapable de
déterminer si un port est ouvert ou filtré. Cela se produit pour les types d'analyse
dans lesquels les ports ouverts ne donnent aucune réponse. L'absence de réponse peut
également signifier qu'un filtre de paquets a abandonné la sonde ou toute réponse qu'il a suscitée. Nmap ne sait donc pas avec certitude si le port est ouvert ou
filtré. Les scans UDP, IP protocol, FIN, NULL et Xmas
classent les ports de cette façon.fermé|filtré :
Cet état est utilisé lorsque Nmap est incapable de déterminer
si un port est fermé ou filtré. Il n'est utilisé que pour l'ID IP
Idle scan discuté dans Section 5.10, « TCP Idle Scan (-sl)