Como acessar máquinas dentro de uma rede via ssh através da internet

1

Esta é provavelmente uma questão básica para a maioria de vocês por aí. Mas eu sou muito novo em redes com linux, etc Heres o cenário: Eu tenho 3 servidores web dentro de uma rede. digamos que eles tenham os seguintes nomes de host e endereço IP:

server1 = 192.168.0.1 server2 = 192.168.0.2 server3 = 192.168.0.3

Todo o tráfego entra no roteador e o DMZ é server1. exemplo: example.com me levará ao host local no server1 e eu posso ssh pela internet para server1 usando meu endereço IP estático e example.com. O que eu quero é que, se eu usar server1.example.com, ele irá para server1 e server2.example.com irá para server2, etc.

Eu acho que tudo isso é classificado usando o DNS com o BIND? Eu estou pelo menos no caminho certo? Alguém tem alguma informação sobre como eu posso configurar isso ou um link para um tutorial ou algo assim?

Eu percebo que eu poderia mudar a porta ssh para cada servidor, mas isso não é o ideal, porque todo o tráfego (http / ftp / ssh / etc) deve ser encaminhado para, por exemplo, server3 quando server3.example.com é usado.

O tunelamento para cada servidor via server1 também não é uma opção para mim porque os usuários do server3 não devem ter acesso ao server1.

Qualquer ajuda seria muito apreciada! Obrigado!

    
por YakobeYak 11.05.2011 / 15:38

4 respostas

2

Esta é uma explicação grosseiramente simplificada, mas o que você quer fazer não pode ser alcançado sem mudar as portas do lado de fora porque o firewall que está na frente de seus 3 servidores não "se importa" com o nome do host; ele só se preocupa com endereços IP e portas e, como tal, não tem como saber com qual servidor você deseja se conectar.

Agora, se você puder gravar alguns endereços IP públicos extras, poderá fazer NAT de 1: 1 (às vezes chamado de "modo DMZ") para que server1, server2, server3 efetivamente tenham seus próprios endereços IP públicos e você possa criar server1.example.com para resolver o endereço IP público NAT do server1 e assim por diante.

Pode haver um daemon SSH ou proxy reverso lá fora que "entenda" o protocolo SSH o suficiente para fazer isso pelo hostname, mas meu palpite não é (e talvez alguém bem versado no protocolo SSH v2 possa elaborar).

    
por 11.05.2011 / 16:34
0

Você pode vincular o sshd de cada servidor a uma porta diferente e a encaminhar as portas diferentes para o IP correto. Alternativamente, você poderia ssh no Server1 e de lá acessar os servidores 2 & 3.

    
por 11.05.2011 / 15:53
0

Você está dizendo que tem um servidor na DMZ, mas ele tem um endereço interno e você tem um endereço público disponível e um servidor atualmente acessível.

Se você tiver um IP, mas quiser usar o SSH em três servidores, provavelmente terá algum comprometimento na porta. Não é díficil. Qualquer cliente SSH pode usar outro argumento de porta.

O que eu normalmente recomendaria é usar o encaminhamento de porta em seu roteador para abrir três portas mapeadas para os IPs de seu servidor interno, digamos que a porta 220 vai para o servidor1, a porta 221 para o servidor2 e a porta 222 para o servidor 3.

Isso não terá nada a ver com sua veiculação na Web. Ou seu DNS. Você se conectaria ao seu servidor ssh como myhost.com na porta 221 ou qualquer porta que você deseja acessar. No próprio servidor, você ainda pode manter a porta em 22 para sshd, desde que seu roteador esteja mapeando externalIP: 220- > server1: 22 e assim por diante.

    
por 11.05.2011 / 16:02
0

A solução mais simples é escolher três números de porta e organizar o encaminhamento de porta em seu roteador (cabo / DSL).

por exemplo. se o endereço IP externo do seu roteador for 172.16.45.56

forward  172.16:45.56 port 17021 to 192.168.0.1 port 22
forward  172.16:45.56 port 17022 to 192.168.0.2 port 22
forward  172.16:45.56 port 17023 to 192.168.0.3 port 22

Da internet, você só precisa de SSH para 172.16: 45.56, porta 17022.

    
por 11.05.2011 / 16:42