Use IP estático único para várias máquinas

2

Atualmente tenho um modem DSL em casa que tem um IP estático (digamos 77.77.77.77 ).
Este modem está conectado a um roteador sem fio que possui algumas máquinas conectadas a ele.

Por motivos de simplicidade, de agora em diante, refiro-me à rede por trás de 77.77.77.77 as home-net

Meu objetivo é conseguir ssh em qualquer máquina atrás de home-net sem recorrer a feios port-forwarding e mapeamentos de portas.

Para implementar isso, Meu plano é:

  • Adicione a entrada 77.77.77.77 home-net a hosts em qualquer máquina que eu queira ssh de
  • Configure o port-forwarding no home-net router para consultas DNS
  • Uma máquina (na mesma rede) executando bind recebe essas consultas DNS e as resolve para os IPs da LAN

Não entendo completamente como implementá-lo ... Espero que uma consulta DNS seja enviada para home-net solicitando o sistema em questão (exemplo pc1 ) que seria encaminhado para a máquina em execução bind que resolverá isso para algum IP da LAN ... No entanto, não tenho certeza se isso é suficiente para resolver o problema.

Ainda não consegui implementar ou testar isso..Sadly, configurar um servidor DNS usando bind parece ser muito mais complicado do que eu imaginava ..

Minhas perguntas são:

  • É possível usar este único IP estático para ssh em qualquer máquina em home-net sem port-forwarding ?
  • Essa configuração funcionaria?
  • Existe uma maneira mais fácil de fazer isso?
por Guru Prasad 06.01.2014 / 03:35

4 respostas

7

Tudo na sua pergunta está completamente errado.

My goal is to be able to ssh into any machine behind home-net without resorting to ugly port-forwarding and port mappings.

A única maneira de contornar isso é ter vários endereços IP públicos. Se você tiver apenas um único IP, como é típico para conexões residenciais do ISP, deverá recorrer ao encaminhamento de porta.

Mas há outra maneira que descreverei abaixo.

Towards implementing this, My plan is:

  • Add entry 77.77.77.77 home-net to hosts on any machine I want to ssh from
  • Set up port-forwarding on home-net router for DNS queries
  • A machine (on the same network) running bind receives these DNS queries and resolves them to LAN IPsIf you s

Aqui está tudo o que há de errado com o acima.

  • Seu arquivo /etc/hosts é usado para resolução de DNS apenas nesse sistema local. Não tem nada a ver com qualquer outro sistema. Outros sistemas não têm como acessar esse arquivo.
  • Você pode encaminhar o encaminhamento 53 para um bind em execução na sua rede. Pode até mesmo retornar IPs de LAN como você está descrevendo. O problema é que esses IPs da LAN não farão bem fora de sua rede, a menos que sejam IPs públicos atribuídos pelo ISP. Você não pode se conectar a eles de fora. Simplificando muito - basicamente, os IPs no intervalo 192.168.X.X são um intervalo particular e não podem ser roteados para a Internet pública.

Agora, nem tudo está perdido. Se você quiser criar um caminho para sua rede de fora, é possível, e a maneira de fazer isso é através de VPNs. O OpenVPN pode fazer isso e vale a pena investigar.

Uma visão geral rápida para você começar a pesquisa:

  • Você pode configurar um servidor OpenVPN em um sistema em sua rede e abrir uma porta para ele. Configure isso como uma VPN "com ponte" em uma caixa Linux na mesma sub-rede em que sua rede doméstica está (192.168.1.0/24 seria típica, verifique seu roteador). Você precisará procurar em um provedor de DNS dinâmico como como DynDNS ou EasyDNS e possuem ddclient configurado também.
  • Você precisará configurar um cliente OpenVPN em um laptop ou outro sistema que conecte a partir do lado de fora.
  • Ao abrir o cliente OpenVPN, você estará conectado à sua rede doméstica por meio de uma VPN. Você até obterá um IP do seu roteador doméstico.
por 06.01.2014 / 05:46
5

Se eu estiver entendendo sua solução proposta corretamente, a resposta é não, isso não funcionará a menos que você envie o ssh para a frente. Mesmo se você obtivesse os IPs da rede doméstica, eles não seriam roteáveis da perspectiva do cliente externo, porque eles não são endereços publicamente roteáveis. Seu cliente poderia formatar um pacote com um IP home-net como o destino, mas o primeiro roteador chegará a ele.

O DNS tem pouco ou nada a ver com o problema ou com as soluções, mas considere que não é possível definir servidores DNS específicos de domínio na maioria dos sistemas operacionais cliente, para que o cliente precise ser configurado para usar o bind de redes domésticas instância para todas as consultas, não apenas para os endereços de rede doméstica.

No final, você ainda precisa encaminhar as portas para cada máquina em que deseja ssh, ou não poderá se conectar.

Se você puder obter um registro de DNS, poderá criar subdomínios e apontá-los para diferentes regras de encaminhamento de porta em seu roteador (cada um dos quais leva a um host diferente), mas isso ainda exigirá uma regra de encaminhamento de porta para cada host você planeja se conectar.

Considere criar um único servidor no qual você esteja ssh e, a partir daí, ssh em outros servidores internos. Isso não pode ser realizado sem encaminhar o tcp22 nesse servidor pelo roteador ou configurá-lo como um host DMZ, onde todo o tráfego não solicitado que não corresponder a uma regra de encaminhamento será direcionado. Certifique-se de bloqueá-lo se você adotar essa abordagem.

    
por 06.01.2014 / 04:32
1

Esconda a fealdade em ssh config no cliente usando ProxyCommand .

Isso requer um único ssh encaminhado pela porta para atuar como "proxy". Exemplo de configuração do cliente ssh para um dos seus servidores iniciais:

$ cat ~/.ssh/config
Host friendlyname1 friendlyname2  # optional
Hostname 10.10.10.10              # ip of home server
# works best if you configure ssh keys authentication to [email protected]
ProxyCommand ssh -W %h:%p [email protected]

Agora, ssh root@friendlyname1 ou ssh [email protected] funcionaria. Por trás dos bastidores, o cliente ssh primeiro se conectará ao usuá[email protected] e de lá a 10.10.10.10

    
por 14.06.2018 / 08:05
0

Você não pode simplesmente configurar um servidor DNS inicial e criar alguns registros SRV:

$ORIGIN home-pc.net.
@           SOA etc... etc...
...
_ssh._tcp   SRV 1 0 22 server1.home-pc.net.
            SRV 2 0 22 server2.home-pc.net.
            SRV 3 0 22 server3.home-pc.net.
            SRV 4 0 22 server4.home-pc.net.

ou ainda não entendi como os registros SRV funcionam? : P

    
por 07.01.2014 / 06:44