Porta SSH filtrada na máquina somente a partir da rede local ao usar o endereço IP explícito

3

Para descrever a situação, preciso definir três máquinas. Na rede local eu tenho uma máquina (LAPTOP) e uma máquina (SERVER) conectada por WAN e LAN ao roteador, respectivamente. A terceira máquina é um VPS externo (VPS).

Estou tentando SSH no SERVER do LAPTOP usando um endereço IP explícito. Para fazer isso, eu configurei servidores openssh (todas as máquinas estão executando o Ubuntu) ouvindo a porta 22. No roteador, dei um endereço IP reservado para SERVER e adicionei uma regra de encaminhamento de porta para a porta de entrada 22 à porta 22 do SERVER. / p>

O que está funcionando: - SSH de VPS para SERVER - SSH de LAPTOP para SERVER usando o nome de host local interno para a rede local

O que não está funcionando: - SSH de LAPTOP para SERVER usando endereço IP explícito.

Para tentar depurar, executei o nmap para ver se a porta está sendo filtrada. Eu corri o seguinte comando no VPS e no LAPTOP

nmap -sS -p 22 xx.xx.xx.xx

onde os xs indicam o IP externo literal do roteador da rede local. O resultado é o seguinte:

VPS: 22 / tcp open ssh
LAPTOP: 22 / tcp filtrado ssh

Apenas para verificar se uso o nome do host local do LAPTOP, a porta está aberta como deveria. Por que a porta é filtrada quando SSH'ing do LAPTOP ao usar o IP externo explícito? A solicitação de saída está sendo filtrada pelo meu roteador?

    
por Pankrates 31.12.2016 / 11:55

1 resposta

2

Seu problema vem do fato de que seu roteador provavelmente aplica as regras de encaminhamento de porta ( DNAT chain in iptables) antes do NAT ( SNAT chain in iptables).

Esta postagem do stackexchange explica o problema em detalhes e mostra como confirmá-lo usando tcpdump . Basicamente você deve ver que você envia seu pacote SYN para seu IP externo, mas recebe o IP interno SYN/ACK do SERVER .

Editar: Como corrigir: Não conecte ao seu IP externo de dentro da sua rede interna. Use o IP interno de SERVER diretamente.

    
por 01.01.2017 / 01:56