Uma maneira rápida de usar um ssh-client ignorando as regras do ISP NAT + Firewall

0

Meu provedor doméstico está usando uma rede baseada em NAT, no meu roteador interno modifiquei o firmware do roteador. Então eu não tenho acesso a todos os recursos do roteador. Adicione isto ao fato de que eles estão bloqueando toda a saída de dados para a porta 22, então eu não tenho uma maneira fácil de usar o ssh-client. Após duas semanas de solicitação de atendimento ao cliente, recebi apenas uma visita técnica e o "profissional" não sabe o que fazer.

Eu sei que posso usar ferramentas como torsocks para conectar o ssh através do relays, mas isso é muito lento. E normalmente eu uso um ambiente com ssh + tmux + vim para programar em um host na nuvem.

Outra opção que tenho é usar o modem ISP interno como bridge. Ele pode resolver, mas eu precisaria de um roteador 5G, que eu não tenho aqui e é bastante caro na faixa de cobertura que eu tenho. E como eles têm controle remoto total para o software do roteador, não sei quando eles removerão essa opção.

Lembre-se de que o anonimato não é um problema, já que estou em minha casa e quero apenas acessar servidores com acesso legal.

Como posso usar um proxy local (e quais) para ignorar essa restrição de NAT?

Ou há uma configuração de relé mais rápida para resolvê-lo?

    
por ton 02.07.2017 / 13:02

2 respostas

1

Se você tiver a opção de mudar para um provedor menos draconiano, considere isso. Se suas conexões SSH de saída estiverem bloqueadas, provavelmente é pelo número da porta e não pela análise de pacotes (se for análise de pacotes, fuja!), Então você precisa de um servidor SSH em uma porta diferente para saltar.

Quando você tiver um servidor SSH externo confiável ao qual possa se conectar em uma porta diferente de 22, poderá usá-lo para se conectar a qualquer outro servidor SSH usando ProxyJump ou seu predecessor mais antigo (e mais poderoso), ProxyCommand .

ProxyJump na linha de comando:

ssh -J [email protected]:222 [email protected]

ProxyJump usando uma entrada em ~ / .ssh / config

Host final-target
  HostName final-target.example.com
  ProxyJump [email protected]:222
  User ton

ProxyJump para todos os hosts aos quais você deseja se conectar:

Host jump-box
  HostName external-jump-box.example.net
  Port 222
  User user1
Host *
  ProxyJump [email protected]:222

A especificação de um nome de usuário é desnecessária se for igual à que você usa em seu sistema local. Se você removê-lo, remova a linha User na sua configuração e / ou o nome de usuário e arroba ( @ ) onde ele aparece. Eu usei um nome de usuário separado para sua caixa de salto apenas para ilustrar como fazer isso.

(Isso pode criar um loop infinito. Se assim for, você terá que usar ProxyCommand. Deixe-me saber e eu vou documentar isso aqui também.)

O Windows pode fazer isso usando o PuTTY com seu plink. utilitário exe conforme descrito nesta pergunta sobre equivalente ao OpenSSH ProxyCommand no PuTTY .

    
por 31.07.2017 / 22:30
0

Eu tenho uma configuração como essa. Eu uso o meu modem ISP, e meu roteador com firmware modificado para redirecionar a porta de entrada 22 e outras conexões para o meu servidor. O modem no modo de ponte é uma obrigação, caso contrário, você teria que portar a partir do próprio modem, não o roteador modificado.

Você pode tentar usar outra porta se apenas a porta 22 estiver bloqueada. Os firewalls para filtrar o tráfego olhando dentro de cada pacote são mais caros e a empresa não tem tanta probabilidade de ter um. O fato de você poder usar torsocks para conectar diz que eles provavelmente estão apenas filtrando a porta 22.

hth!

    
por 02.07.2017 / 14:04

Tags