Pode ssh internamente, mas não externamente

3

Eu tenho um roteador / modem Netgear C6300 (Firmware versão 2.01.14), e estou tentando com todas as minhas forças ssh em meu pi framboesa externamente. Aqui está minha configuração de encaminhamento de porta:

Eupossosshinternamenteusandossh192.168.0.84,masexternamenteemcanyouseeme.comeurecebo"Erro: não pude ver seu serviço na porta (22). Meu sshd_config tem a linha Port 22 e as linhas ListenAddress Em outras palavras, eu não toquei neste arquivo. O que está acontecendo aqui?

    
por ocket8888 13.06.2016 / 07:37

1 resposta

2

Várias coisas vêm à minha mente.

O encaminhamento na sua captura parece OK. Você poderia tentar configurá-lo para TCP em vez de TCP/UDP , porque ssh é um protocolo TCP.

dyndns

Tem certeza de que usa o nome de host atualizado dinamicamente ou o endereço IP público correto? Para encontrar seu endereço IP público, abra um console no Raspberry ou SSH (internamente) nele e use curl icanhazip.com .

sshd_config

Certifique-se, em /etc/ssh/sshd_config , que o sshd escuta a interface correta, caso você tenha vários. Comente a linha ListenAddress a.b.c.d com # e reinicie o serviço ( /etc/init.d/sshd restart ou systemctl restart sshd , dependendo da sua distribuição). Edit: desculpe, você já disse isso.

Editar:

roteamento

Se você não conseguir obter uma saída de curl icanhazip.com , é provável que o seu Raspberry não saiba como acessar a Internet. Por isso, não pode responder à sua tentativa de conexão do lado de fora. Adicione uma rota, e. g. com ip route add default via <your modem's IP address> e tente novamente.

iptables

Certifique-se de que o firewall interno do Raspberry permita o SSH a partir de endereços externos. iptables -S lhe dará uma lista de regras. Procure linhas como

-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
# SSH only allowed from the internal network, if iptables policy INPUT is DROP

Nesse caso, permita todo o tráfego de entrada com iptables -P INPUT ACCEPT ou iptables -I INPUT -p tcp --dport 22 -j ACCEPT .

DS Lite (Dual Stack Lite)

Internamente, na sua rede doméstica, você usa endereços IPv4. No seu exemplo 192.168.0.x. No entanto, seu ISP pode usar o IPv6 em sua rede. O roteador traduz seus endereços IPv4 para IPv6. Isso geralmente resulta na incapacidade de se conectar à sua rede doméstica a partir do controle remoto.

Se curl icanhazip.com fornecer um endereço IPv6, e. g. 2001:a61::35:2 , pode ser um indicador. Além disso, talvez seu C6300 mostre informações sobre isso. (Eu uso um AVM Fritz! Box 7360, e ele exibe explicitamente "Fritz! Box usa um túnel DS-Lite").

Para ter 100% de certeza, ligue para o seu ISP.

Editar:

No caso de você estar por trás de um túnel DS-Lite, as seguintes opções lembram-se, no entanto, de se conectar de volta à sua casa a partir do controle remoto:

  • peça ao seu provedor / ISP para mudar sua linha para um não-DS-Lite
  • use autossh para conectar seu computador doméstico a outro host, e. g. no trabalho (pergunte ao seu empregador antes), o seu servidor web, o seu VPS. Configure autossh de maneira que ele crie um túnel reverso, e. g. %código%. Então você pode ssh para yourvps.com e ssh de lá de volta para casa via ssh -R 10000:localhost:22 [email protected] .

Editar:

Netgear C6300 específico

Parece haver um bug nos firmwares até ou até a versão 2.01.14 do Firmware, que tornará as portas abertas visíveis apenas se a opção "Responder ao ping na porta WAN da Internet" na "Configuração avançada" > "WAN Setup" está ativado.

    
por 13.06.2016 / 08:41