A porta está aberta na máquina A, mas não é visível da máquina B no Nmap

2

Eu tenho uma máquina CentOS virtualizada com um software que está escutando na porta 8080. Eu desliguei o SELinux e limpei todos os iptables (então agora não há regras definidas). Eu verifiquei com netstat -nap | grep 8080 que a porta está realmente aberta e é. O endereço IP é 192.168.1.3.

Da minha outra máquina, gostaria de me conectar a essa porta com um programa, mas ele falha. Ao executar nmap -p 8080 192.168.1.3 , a porta está fechada!

Quando eu verifico com o Wireshark, posso ver que o computador de conexão está enviando o pacote SYN, mas o computador que está respondendo (com IP 192.168.1.3) responde com um SYN / RESET e interrompe a conexão e não responde com um SYN / ACK e assim continua a transmissão. O número de seqüência está correto, o computador de envio envia 0 e o receptor recebe 1.

O estranho é que outras portas podem ser detectadas como abertas pelo Nmap a partir da máquina cliente, mas não 8080.

O que pode estar errado?

EDIT :

Ok, não sei em que acreditar agora. Isto é o que eu descobri:
O porgram que está escutando 8080 na "máquina do servidor" (vamos chamá-lo assim) é um webservice customizado construído em Java (usando bibliotecas de terceiros como EclipseLink etc). Ao fazer nmap localhost na "máquina do servidor", ele pode encontrar a porta aberta. Ao fazer nmap 192.168.1.3 da "máquina cliente", ele encontra a porta fechada (conforme descrito acima).
E a nova descoberta: acabei de criar um aplicativo java simples que usa apenas a classe ServerSocket para escutar 8080 e ENTÃO a porta pode ser descoberta a partir da "máquina cliente". Então, é algo com o aplicativo webservice? Por que a porta pode ser descoberta a partir da "máquina do servidor" (ao verificar ela mesma, localhost), mas não da "máquina cliente" ao executar o serviço da Web? E por que a porta 8080 pode ser descoberta a partir de AMBAS máquinas ao executar o aplicativo java simples que escuta no 8080?

netstat -ntpl
tcp    0    0 ::ffff:127.0.0.1:8080    :::*    LISTEN 3481/java



EDIT 2 :
Estúpido eu! Agora eu vejo, ::ffff:127.0.0.1:8080 significa que o programa só é acessível a partir do localhost! :-D
Onde eu mudo para que ele ouça de todos?

    
por Rox 21.02.2012 / 16:04

2 respostas

0

Pode ser que a porta 8080 esteja vinculada em algum outro lugar?

Em uma máquina host?

De qualquer forma, mostrar sua configuração de rede, máquinas viruais em uma ponte?

    
por 22.02.2012 / 08:11
0

Se é uma versão antiga do centos, pode ser um problema com "/etc/hosts.{allow,deny}", mas se ele tiver iptables, provavelmente não os está usando. Verifique se esses arquivos existem.

    
por 21.02.2012 / 17:04