Como descobrir quais portas estão bloqueadas?

7

Eu tenho raiz em duas máquinas A e B e gostaria de saber quais portas não podem ser acessadas em B de A. Existe alguma maneira de executar um aplicativo de linha de comando em B que escuta em todas as portas e, em seguida, execute nmap de A talvez? Portas podem ser bloqueadas pelos roteadores então apenas checar iptables não será suficiente.

Um simples nmap dá

Starting Nmap 5.21 ( http://nmap.org ) at 2013-04-18 09:32 BST
Nmap scan report for B (xxx.xxx.xxx.xxx)
Host is up (0.00038s latency).
rDNS record for xxx.xxx.xxx.xxx: B
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Se eu apenas escanear a porta 5900 de A, obtenho

nc -v -w 1 B -z 5900
nc: connect to B port 5900 (tcp) failed: Connection refused

E de B eu recebo

nc -v -w 1 localhost -z 5900
Connection to localhost 5900 port [tcp/*] succeeded!

Também executando o nmap a partir de B, obtenho

nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2013-04-18 09:57 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00024s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
631/tcp  open  ipp
5900/tcp open  vnc
    
por Anush 18.04.2013 / 10:19

1 resposta

2

Quando você usa nmap , há uma diferença entre uma porta "filtrada" e uma porta "fechada". Isso deve mostrar todas as portas não acessíveis como "filtradas" e aquelas em que ninguém está ouvindo devem ser listadas como "fechadas".

Se você tem um roteador intermediário entre o qual responde a solicitações TCP em vez de soltá-las, você pode descobrir ligando todas as portas ( warning , pode ficar sem recursos do sistema fazendo isso! Talvez tente com ~ 1000 portas de cada vez):

for i in {1..65535} ; do nc -l $i & done
    
por 18.04.2013 / 10:30

Tags