Perché alcune porte segnalate da nmap vengono filtrate e non le altre?


38

Sto scansione di un server che dovrebbe avere un piuttosto semplice firewall utilizzando iptables : di default tutto è caduto oltre RELATEDe ESTABLISHEDpacchetti. L'unico tipo di NEWpacchetti consentiti sono i pacchetti TCP sulla porta 22 e 80 e il gioco è fatto (nessun HTTPS su quel server).

Il risultato di nmap sulle prime porte 2048 dà 22 e 80 come aperti, come mi aspetto. Tuttavia, alcune porte vengono visualizzate come "filtrate".

La mia domanda è: perché le porte 21, 25 e 1863 vengono visualizzate come "filtrate" e le altre 2043 porte non vengono visualizzate come filtrate?

Mi aspettavo di vedere solo 22 e 80 come "aperti".

Se è normale vedere 21,25 e 1863 come "filtrati", allora perché anche tutte le altre porte non vengono visualizzate come "filtrate" !?

Ecco l' output di 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

Davvero non capisco perché ho 2043 porte chiuse:

Not shown: 2043 closed ports

e non 2046 porte chiuse.

Ecco un lsof lanciato sul server:

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

(notare che Java / Tomcat è in ascolto sulla porta 8009 ma che la porta è DROPped dal firewall)


Ottieni gli stessi risultati quando esegui la scansione di altri host?
Creek,

@Creek: ah, ho appena provato su slashdot.org e ho aperto 80 e 443 ma filtrato anche 25 / smtp . Ma poi mi hai dato l'idea di provare a nmap quello stesso server non dal mio computer di casa ma da un altro server che possiedo: non ottengo le 3 porte filtrate ma poi ottengo 53 / dominio / chiuso , 443 / https / chiuso e 953 / rndc / chiuso . (entrambi i miei server dedicati sono ospitati presso OVH / Francia).
Cedric Martin,

1
Se vuoi davvero vedere cosa nmapsta facendo, dovresti scansionare usando i privilegi di root, usando SYN scan ( -sS) e --packet-trace. Inoltre, prenditi un paio di minuti e leggi la pagina man, rimarrai sorpreso di quali gemme ci sono
Creek,

Inoltre, aprirei temporaneamente quelle porte e vedrei se i pacchetti li raggiungono.
Mark Hurd,

Risposte:


25

L'istruzione "porta filtrata" di nmap varia in base al metodo di scansione.

La scansione standard (Scansione TCP se utente non privilegiato o Scansione semiaperta -sS se superutente) si basa sul protocollo TCP. (chiamato hanshake a 3 vie)

  • Un client (tu) emette un SYN, se il server risponde SYN / ACK: significa che la porta è aperta !

  • Emetti un SYN, se il server risponde a RST: significa che la porta è chiusa !

  • Emetti un SYN, se il server non risponde o risponde con errore ICMP: significa che la porta è filtrata . Probabilmente un firewall IDS / statefull blocca la tua richiesta)

Per capire qual è lo stato reale della porta, puoi:

L'eccellente libro " Nmap Network Discovery ", scritto dal suo creatore Fyodor, lo spiega molto bene. quoto

filtrata: Nmap non può determinare se la porta è aperta perché il filtro pacchetti impedisce alle sue sonde di raggiungere la porta. Il filtro potrebbe provenire da un dispositivo firewall dedicato, regole del router o software firewall basato su host. Queste porte frustrano gli aggressori perché forniscono così poche informazioni. A volte rispondono con messaggi di errore ICMP come il codice di tipo 3 13 (destinazione irraggiungibile: comunicazione amministrativamente vietata), ma i filtri che semplicemente rilasciano i probe senza rispondere sono molto più comuni. Ciò costringe Nmap a riprovare più volte nel caso in cui la sonda fosse caduta a causa della congestione della rete anziché del filtro. Questo tipo di filtro rallenta notevolmente le scansioni.

open | filtered: Nmap posiziona le porte in questo stato quando non è in grado di determinare se una porta è aperta o filtrata. Ciò si verifica per i tipi di scansione in cui le porte aperte non rispondono. La mancanza di risposta potrebbe anche significare che un filtro di pacchetti ha lasciato cadere la sonda o qualsiasi risposta suscitata. Quindi Nmap non sa con certezza se la porta è aperta o filtrata. Le scansioni UDP, protocollo IP, FIN, NULL e Natale classificano le porte in questo modo.

chiuso | filtrato: questo stato viene utilizzato quando Nmap non è in grado di determinare se una porta è chiusa o filtrata. Viene utilizzato solo per la scansione inattiva dell'ID IP discussa nella Sezione 5.10, "Scansione inattiva TCP (-sl)


Quindi, come posso filtrare la porta 22? Supponiamo che io
stia

"Unfilter"? Beh, non intercetti il ​​traffico diretto a 22 sul tuo firewall, quindi non verrà filtrato ... In questo caso verrai "aperto" o "chiuso" come risposta al probe nmap
Florian Bidabe,

Cosa stai scannerizzando?
Florian Bidabe,

Sto usando questo comando: sudo nmap -oG - -T4 -A -p22 -v pi.eazyigz.com | grep ssh
IgorGanapolsky

1
"-T4" non è necessario, già specificato in "-A" ... per quanto riguarda il probe, sudo nmap implica che viene utilizzata una scansione Syn (-sS). "-A" è una versione più breve di "-T4" + "- sV" + "- O". Se il rilevamento del servizio (-sV) non riesce a sondare il server SSH, è probabile che la porta sia chiusa (nessun ascolto ssh), altrimenti tra il client e il server DEVE esserci qualcosa che intercetta il probe e rilascia i pacchetti (un firewall host, un IDS, o dispositivi di rete non configurati
correttamente

10

perché le porte 21, 25 e 1863 appaiono come "filtrate" e le altre 2043 porte non appaiono come filtrate?

Perché nel tuo ISP, router, amministratore di rete, qualsiasi cosa tra loro o te li sta filtrando. Queste porte hanno una storia piuttosto brutta, il 1863 è la porta utilizzata dal protocollo di messaggistica istantanea di Microsoft (aka MSN e amici) che credo tu possa (o non avere) impostato una regola specifica. Quello SMTP sembra che il tuo ISP sia il colpevole e FTP mi ha completamente sbalordito, dal momento che non ho idea di cosa potrebbe accadere a loro.


1
Grazie per la spiegazione! Quindi, "filtrato" fondamentalmente significa che c'è l'equivalente di un iptables s' rifiutare qualche parte (ISP, router, ecc)? E l'ISP / router o qualunque cosa stia rifiutando invece di DROPping perché è più pulita? Per quanto riguarda la porta 25: è filtrata anche per me, per esempio, da slashdot.org (quando la mappa dalla mia connessione di casa, ma non quando la mappa dal mio server dedicato).
Cedric Martin,

6
@CedricMartin, ce l'hai esattamente al contrario. "Filtrato" significa che il pacchetto viene eliminato (nessuna risposta), mentre "chiuso" significa che il pacchetto viene rifiutato (viene inviata una risposta "non raggiungibile" della porta ICMP).
Segna il

@Mark: quindi se l'ho capovolto la mia domanda originale rimane: sul mio server, usando iptables , lascerò cadere tutto tranne le porte 22 e 80. Come mai solo 3 porte appaiono come "filtrate" !?
Cedric Martin,

@CedricMartin modifica la tua domanda e aggiungi le tue regole iptables.
Braiam,

1

Per impostazione predefinita, Nmap analizza solo le 1.000 porte più comuni per ciascun protocollo (tcp, udp). Se la tua porta è al di fuori di quella, allora non la scansionerà e quindi non la segnalerà. Tuttavia, è possibile specificare le porte che si desidera scansionare con l'opzione -p.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.