Saudações,
Esponho algumas questões de uma situação que estou enfrentando e explanando o resultado de minhas pesquisas para ver se alguém enxengar algumas outras saídas.
Tenho dois servidores em um data center, sendo um servidor Linux e um Windows, como única conexão possível tenho somente a porta 22 liberada para conexões remotas e manutenção destas 2 maquinas.
Para sanar a solução instalei um vnc no windows e fiz um túnel para os serviços locais do linux, para me conectar configuro os tuneis no cliente, conecto no sevidor linux via ssh, minimizo e utilizo os serviços como localhost no cliente. Até aí sem problemas.
A minha empresa estipulou que esse seria o modelo para outros servidores que estão em outros locais e todos eles devem se autenticar por um par de chaves rsa no servidor da empresa, e este servidor repassar as conexões para o servidor que antes fazia os tuneis.
Gerei um par de chaves até o servidor da empresa(gateway ssh) com passphrase, e gerei outro par de chaves do gateway até o servidor com frase em branco. O servidor na firewall somente aceita conexões do gateway, até então ok.
Para acessar o serviço do servidor tenho um tuneis configurados do cliente para o gateway, e do gateway para o servidor.
No cliente:
Porta Tunel
8081 localhost:8081(tomcat)
5901 localhost:5901(vnc)
No gateway:
Porta Tunel
8081 localhost:8080(tomcat)
5901 192.168.0.2:5900(vnc)
Até então tudo funciona perfeito, porém agora tenho mais 2 conjuntos
de 2 servidores.Deixando os túneis assim
Túneis no cliente:
Porta Tunel
8081 localhost:8081(tomcat)...|__Serv. 1e2
5901 localhost:5901(vnc)........|
8082 localhost:8082(tomcat)......|__Serv. 3e4
5902 localhost:5902(vnc)...........|
8083 localhost:8083(tomcat)........|_Serv. 5e6
5903 localhost:5903(vnc).............|
No gateway:
Porta Tunel
8081 localhost:8080(tomcat)
5901 192.168.0.2:5900(vnc)
8082 localhost:8080(tomcat)
5902 192.168.0.2:5900(vnc)
8083 localhost:8080(tomcat)
5903 192.168.0.2:5900(vnc)
Esta solução funciona, mas quando um usuário conecta em um servidor e acessa localhost:8081 e outro usuário conecta em outro servidor e acessa localhost:8082. Se o segundo usuário (que acessa 8082) resolve acessar 8081, o serviço roda, por que o túnel está estabelecido pelo
primeiro usuário.
Aí me surgem duas questões:
1. Tem alguma maneira de bloquear um usuário de ver o túnel de outro usuário?
2. Tem alguma forma de nao ter que criar todos estes túneis no cliente, deixando somente 8081 e o gateway fazer a conexão para o servidor correto sem que interfira na conexão de outro usuário?
Ainda estou pesquisando soluções, porém ainda sem sucesso.
Estou aberto a críticas, idéias, sugestões etc, pois creio ainda que este não seja o melhor modelo de gestão para os servidores.
Grato pela atenção
Rangel Perez Sardinha