Prohledávám server, který by měl mít docela jednoduchý firewall pomocí iptables :ve výchozím nastavení je vše vyřazeno kromě RELATED
a ESTABLISHED
pakety. Jediný typ NEW
povolené pakety jsou pakety TCP na portu 22 a 80 a to je vše (na tomto serveru není HTTPS).
Výsledek nmap na prvních 2048 portech dává 22 a 80 jako otevřené, jak očekávám. Několik portů se však jeví jako „filtrované“.
Moje otázka zní:proč se porty 21, 25 a 1863 zobrazují jako „filtrované“ a ostatní porty 2043 se nejeví jako filtrované?
Očekával jsem, že uvidím pouze 22 a 80 jako „otevřené“.
Pokud je normální vidět 21,25 a 1863 jako „filtrované“, tak proč se všechny ostatní porty také nejeví jako „filtrované“?
Zde je nmap výstup:
# 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
Opravdu nechápu, proč mám 2043 uzavřených portů:
Not shown: 2043 closed ports
a ne 2046 uzavřených portů.
Zde je lsof spuštěna na serveru:
# 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)
(všimněte si, že Java / Tomcat naslouchá na portu 8009, ale tento port je ZAHOŘEN firewallem)
Přijatá odpověď:
Příkaz „Filtered port“ z nmap se liší podle vaší metody skenování.
Standardní skenování (TCP Scan, pokud není privilegovaný uživatel, nebo Half-Open sken -sS, pokud superuživatel) závisí na protokolu TCP. (pojmenovaný 3-way hanshake)
-
Klient (vy) vydá SYN, pokud server odpoví SYN/ACK :znamená to, že port je otevřený !
-
Vydáte SYN, pokud server odpoví RST:znamená to, že port je zavřený !
- Zadáte SYN, pokud server neodpovídá nebo odpoví chybou ICMP:znamená to, že port je filtrován . Váš požadavek pravděpodobně zablokuje IDS / stavový firewall)
Chcete-li zjistit, jaký je skutečný stav portu, můžete:
- použijte -sV nebo -A možnost (detekce verze, pomůže vám určit, jaký je stav tohoto portu.
- použijte –tcp-flags SYN,FIN zkusit obejít fw.
- použijte jiné typy skenování (http://nmap.org/book/man-port-scanning-techniques.html)
Vynikající „Nmap Network Discovery ” kniha, kterou napsal její tvůrce Fjodor, to velmi dobře vysvětluje.
Cituji
filtrováno:Nmap nemůže určit, zda je port otevřený, protože filtrování
paketů brání jeho sondám v dosažení portu. Filtrování
může pocházet z vyhrazeného firewallového zařízení, pravidel routeru nebo hostitelského
softwaru firewallu. Tyto porty frustrují útočníky, protože
poskytují tak málo informací. Někdy reagují chybovými
zprávami ICMP, jako je typ 3 kód 13 (cíl je nedosažitelný:
komunikace je administrativně zakázána), ale mnohem běžnější jsou filtry, které jednoduše
zahodí sondy bez odpovědi. To nutí Nmap
opakovat to několikrát jen pro případ, že by byla sonda zahozena kvůli
zahlcení sítě spíše než kvůli filtrování. Tento druh filtrování dramaticky zpomaluje
skenování.open|filtered :
Nmap umístí porty do tohoto stavu, když není schopen
určit, zda je port otevřený nebo filtrovaný. K tomu dochází u typů skenování
, ve kterých otevřené porty nereagují. Nedostatek odezvy může
také znamenat, že paketový filtr zahodil sondu nebo jakoukoli odezvu, kterou
vyvolal. Nmap tedy s jistotou neví, zda je port otevřený nebo
filtrován. UDP, IP protokol, FIN, NULL a Xmas skeny
klasifikují porty tímto způsobem.closed|filtered :
Tento stav se používá, když Nmap není schopen určit
zda je port uzavřen nebo filtrován. Používá se pouze pro IP ID
Skenování nečinnosti popsané v části 5.10 – “Skenování nečinnosti TCP (-sl)