Por que não consigo acessar o SSH a partir do meu IP público, mas os hackers-bots aleatórios podem?

0

Eu tenho um Raspberry Pi3 com Stretch Raspbian que está atrás de um roteador doméstico.

/var/log/auth.log no RPi mostra consistentemente tentativas de login malsucedidas com nomes de usuários genéricos (raiz, operador, webmaster e assim por diante), em portas aleatórias com números altos, 3 tentativas a cada 10 segundos aproximadamente, de um endereço chinês. Eu sei que isso não é surpreendente.

O que eu não entendo é como é que o PuTTY não consegue chegar ao mesmo servidor quando tento contatá-lo através do meu IP público?

Sou muito novato neste campo, mas com o meu conhecimento, este é um paradoxo completo.

Algumas notas técnicas adicionais:

  • iptables está intocado

  • O nmap para o meu endereço IP público fornece "todas as 1000 portas verificadas são filtradas"

  • um servidor LAMP funcional hospeda um Owncloud que funciona, mas apenas da LAN, pois qualquer tentativa de entrar em contato com meu endereço IP público falha miseravelmente.
  • minhas tentativas de se conectar ao meu IP público são feitas a partir da mesma LAN que o RPi.
  • a porta 22 é redirecionada para o RPi no roteador, e o firewall do roteador está completamente desligado para o propósito dos meus testes atuais.
  • no roteador, meu RPi está definido para estar na DMZ. Afaik, os resultados são os mesmos com esta desativação.

Onde meus pacotes são descartados e por quê?

Onde eu poderia procurar o registro que me mostraria?

Obrigado antecipadamente

    
por Alexandre Cariage 12.02.2018 / 23:50

1 resposta

2

Este é um problema comum causado pela incapacidade de fazer um NAT Hairpin. A maioria dos roteadores domésticos baratos lidam com isso simplesmente ativando o encaminhamento de porta. No entanto, os roteadores mais avançados precisam de regras separadas para resolver o problema.

Suas regras normais de NAT só funcionam fora da sua rede. Se você tentar se conectar de dentro da sua rede, há um problema de NAT.

Considere isso ...

  • Você tem Server A em sua rede local com IP 10.10.10.10 .
  • Você tem Computer A em sua rede local com IP 10.10.10.20 .
  • Você tem Router A com um LAN IP de 10.10.10.1 e WAN IP de 11.11.11.11 .
  • Você tem Computer B fora de sua rede com IP 12.12.12.12 .
  • Você tem port 22 encaminhado do seu IP da WAN para Server A .

De fora da sua rede, o tráfego fica assim:

O computador B tenta se conectar ao servidor A:

Source IP: 12.12.12.12   Src Port: 12345
Destination IP: 11.11.11.11    Dest Port: 22

Roteador A NATs o pacote e envia-o para o servidor A:

Source IP: 12.12.12.12   Src Port: 12345
Destination IP: 10.10.10.10   Dest Port: 22

O servidor A responde ao computador B:

Source IP: 10.10.10.10    Src Port: 22
Destination IP: 12.12.12.12   Dest Port: 12345

Roteador A NATs o pacote e envia para o computador B:

Source IP: 11.11.11.11   Src Port: 22
Destination IP: 12.12.12.12   Dest Port: 12345

Tudo funciona como pretendido. Agora, considere o mesmo cenário, mas de dentro da sua rede:

O computador A tenta se conectar ao servidor A:

Source IP: 10.10.10.20   Src Port: 12345
Destination IP: 11.11.11.11   Dest Port: 22

Roteador A NATs o pacote e envia-o para o servidor A:

Source IP: 10.10.10.20   Src Port: 12345
Destination IP: 10.10.10.10   Dest Port: 22

O servidor A responde ao computador A:

Source IP: 10.10.10.10   Src Port: 22
Destination IP: 10.10.10.20   Dest Port: 12345

O IP de origem está na mesma sub-rede que o IP de destino. Server A não envia o pacote de volta ao roteador, ele o envia diretamente para Computer A . Computer A descarta o pacote, porque veio de 10.10.10.10 e enviou o pacote original para 11.11.11.11 . Espera que o pacote retorne de 11.11.11.11 .

Para resolver o problema, você deve criar uma segunda regra de NAT mais específica para corresponder ao tráfego originado de dentro de sua rede. Ele virá depois da sua regra original de NAT. Você precisará fazer um NAT de origem que seja assim:

srcnat src-address=10.10.10.0/24 dst-address=10.10.10.10 dst-port=22 out-interface=LAN action=masquerade

Agora, vamos analisar isso de novo:

O computador A tenta se conectar ao servidor A:

Source IP: 10.10.10.20   Src Port: 12345
Destination IP: 11.11.11.11   Dest Port: 22

Roteador A NATs o pacote e envia-o para o servidor A:

Source IP: 10.10.10.1   Src Port: 12345
Destination IP: 10.10.10.10   Dest Port: 22

O servidor A responde ao computador A:

Source IP: 10.10.10.10   Src Port: 22
Destination IP: 10.10.10.1   Dest Port: 12345

Roteador A NATs o pacote e envia para o computador A:

Source IP: 11.11.11.11   Src Port: 22
Destination IP: 10.10.10.20   Dest Port: 12345

Tudo funciona conforme o esperado.

A maneira como você implementa essa segunda regra NAT depende do hardware e software do roteador. Sua milhagem pode variar.

    
por 13.02.2018 / 00:25