O mesmo IP em muitos sistemas em diferentes ambientes

6

Eu trabalho em um ambiente onde há vários locais e em cada local temos o mesmo esquema de endereçamento IP, ou seja, temos muitas máquinas (uma em cada local) que compartilham o mesmo endereço IP (os nomes de host são diferentes Apesar). Naturalmente, não há comunicação entre esses locais e também nenhum DNS. Eu me conecto a cada local, por sua vez, abrindo túneis VPN. Minha estação de trabalho é o Linux.

Estou tentando desenvolver um sistema que me permita trabalhar com segurança nesse ambiente. Eu gostaria de usar nomes de host em vez de endereços IP diretamente, pois temos uma convenção de nomenclatura fácil de lembrar. Os problemas que encontrei até agora são: 1) fazer login por engano em uma máquina diferente, porque um túnel estava aberto para o local errado e 2) ssh tendo um host diferente com o mesmo IP, mas um nome de host diferente em known_hosts e se recusando a se conectar.

Até agora, estou pensando em criar um arquivo / etc / hosts e ~ / .ssh / known_hosts diferente para cada local (por exemplo, /etc/hosts.location1) e usar um script de alternância de local para alternar automaticamente entre esses arquivos copiando a versão personalizada para o meu local de destino sobre o arquivo padrão (por exemplo, cp /etc/hosts.location1 / etc / hosts). Idealmente, esse script será eventualmente integrado ao software que eu uso para abrir VPNs para os diferentes locais.

Minha pergunta é: existe uma maneira melhor de fazer isso? Existe alguma funcionalidade na resolução de nomes ssh ou linux que estou perdendo?

Muito obrigado.

Editar: este é um ambiente de produção e estou procurando uma solução de estação de trabalho para esse problema.

    
por Dan Nestor 12.10.2013 / 11:26

3 respostas

1

Você menciona que você VPN para cada site. Cada site pode ter um servidor DNS (ou dois) que tenha seu próprio domínio de site (site1.mycorp.com, site2.mycorp.com) e use algo como Visualizações de vinculação ( link ) para fornecer endereços IP para hosts nomeados para redes VPN?

Dessa forma, você poderia fornecer a cada host em cada site um FQDN exclusivo ( barney.site1.mycorp.com e rubble.site2.mycorp.com ) e esses hosts só serão resolvidos corretamente quando você for VPNed para o site correto e essa visualização Bind responder. Em cada site, barney.site1.mycorp.com e rubble.site2.mycorp.com poderiam potencialmente ter o mesmo endereço IP. Mas eles não resolveriam externamente ou se você estivesse conectado à VPN errada.

Esta não é uma solução muito "workstation". Mas se você tiver a capacidade de adicionar nós (VMs ou hosts físicos) a cada site (que não necessariamente precisam fazer parte da produção), isso pode ser uma solução. Se você já tem um DNS de produção que está à vontade para modificar, talvez já seja possível aproveitar visualizações e nomenclatura presentes.

    
por 14.10.2013 / 05:38
0

Você pode fazer alguma coisa nos sites remotos, como soltar um arquivo em $ HOME ou editar o bashrc? Por exemplo, eu tenho em um site / etc / bashrc:

  [ "$PS1" = "\s-\v\\$ " ] && PS1="[SITE1 \u@\h \W]\$ "

que ajuda a evitar ambiguidades. Você poderia definir seu prompt para incluir cat .site_name , por exemplo, se você puder instalar esse arquivo.

Veja também o uso de .ssh / config para definições de nome de host. Você pode ter:

Host app1.site1
HostName 10.11.12.13
User service

e, em seguida, use ssh app1.site1 e confie na verificação rigorosa da chave do host para mantê-lo seguro. Estou supondo que o sshd tenha permissão para criar suas próprias chaves de host. Se as máquinas tiverem chaves de host idênticas, você terá problemas com isso.

Por fim, você pode escrever um script de wrapper ssh. Consulte a tabela de roteamento ( netstat -nr ) para localizar os pontos de extremidade da VPN e proibir o comportamento incorreto com base no IP do ponto de extremidade. Aproximadamente: safe_ssh site hostname e além de girar seus arquivos known_hosts, se o destino da sua rede remota não for para o valor do site especificado, salte com uma mensagem de erro. Você provavelmente poderia trabalhar com a multiplexação de conexão ssh se você quisesse que o script também exibisse a VPN.

    
por 17.10.2013 / 01:59
-1

Está dando a cada máquina um IP único (assim como é comum, presumivelmente o RFC 1918 IP) uma solução? Usamos essa abordagem, temos várias máquinas com um alias de IP RFC 1918, mas todas elas têm um IP "público" exclusivo.

    
por 16.11.2013 / 03:52