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

0

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

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

O que eu não entendo é como o PuTTY não consegue acessar o mesmo servidor quando tento entrar em contato 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 contato com meu endereço IP público falha miseravelmente.
  • minhas tentativas de conexão com meu IP público são feitas na mesma LAN que os RPi's.
  • a porta 22 é redirecionada para o RPi no roteador e o firewall do roteador está completamente desligado para os meus testes atuais.
  • no roteador, meu RPi está definido para estar na DMZ. Afaik, os resultados são os mesmos com esta configuração desativada.

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

Onde eu poderia procurar o log que me mostraria?

desde já, obrigado

Alexandre Cariage
fonte
Obrigado por apontar isso, vou verificar a duplicata e comentar novamente ou resolver a postagem.
Alexandre Cariage
Tente nmaping todo o intervalo de portas de fora da sua rede. (Como na casa de um amigo). Acredito que o problema descrito seja chamado "NAT hairpinning".
Tim_Stewart 12/02

Respostas:

2

Esse é um problema comum causado pela incapacidade de executar um NAT com gancho de cabelo. A maioria dos roteadores domésticos baratos lida com isso simplesmente ativando o encaminhamento de porta. No entanto, os roteadores mais avançados realmente precisam de regras separadas para resolver o problema.

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

Considere isto...

  • Você tem Server Ana sua rede local com IP 10.10.10.10.
  • Você tem Computer Ana sua rede local com IP 10.10.10.20.
  • Você tem Router Aum LANIP de 10.10.10.1e um WANIP de 11.11.11.11.
  • Você tem Computer Bfora da sua rede com IP 12.12.12.12.
  • Você port 22enviou do seu IP da WAN para Server A.

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

O NAT do roteador A envia o pacote 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

O roteador A envia NAT ao pacote e o envia ao 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

O NAT do roteador A envia o pacote 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 Anão envia o pacote de volta ao roteador, ele o envia diretamente para Computer A. Computer Adescarta o pacote, porque ele veio 10.10.10.10e enviou o pacote original para 11.11.11.11. Ele espera que o pacote retorne 11.11.11.11.

Para resolver o problema, você deve criar uma segunda regra NAT mais específica para corresponder ao tráfego originado dentro da sua rede. Ele virá após a regra NAT original. Você precisará fazer um NAT de origem parecido com este:

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

Agora, vejamos isso novamente:

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

O NAT do roteador A envia o pacote 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

O NAT do roteador A envia o pacote para o computador A:

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

Tudo funciona como pretendido.

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

Appleoddity
fonte
"problema comum causado pelo hairpin NAT" - O que é o "hairpin NAT" exatamente? Eu pensei que era uma solução , você diz que é uma causa. Por favor, trate minhas dúvidas. Não tenho conhecimento para ter certeza de que sua resposta está tecnicamente correta. Ainda acho que se beneficiaria de mencionar que alguns roteadores domésticos implementam a solução certa por padrão, tudo o que é necessário é definir uma regra de encaminhamento de porta, como na interface da web do roteador. Obviamente, o roteador do OP não é um deles.
Kamil Maciorowski
2
@KamilMaciorowski hairpinning NAT (também conhecido como loopback NAT) é o que você está tentando fazer - use uma porta para frente de dentro da rede privada para outro computador na rede privada. O problema é que nem todos os roteadores suportam isso. Dependendo do roteador, você pode habilitá-lo ou pode precisar mudar para um roteador compatível.
Gordon Davisson
É um problema bobo. Use o IP local com o qual você deseja se comunicar ou configure um registro DNS na máquina host que aponte internamente para o IP para o qual você deseja ser direcionado. Esse é bem o post BTW. Tim
Tim_Stewart
Obrigado @Appleoddity pela explicação clara que me fez entender o que acontece em termos de pacotes! Mas, para a regra NAT, não sei como vou defini-la no meu roteador (não consigo fazer logon através do telnet); portanto, usarei a solução de registro DNS de Tim_Stewart, obrigado Tim.
Alexandre Cariage 14/02