Um túnel SSH pode ser usado para proteger a comunicação entre um cliente e um servidor que não pode ser protegida de outra forma; por exemplo, quando toda ou parte da fonte do aplicativo não está disponível ou é considerado muito caro modificá-la para adicionar comunicação criptografada.
Com base nas perguntas que vi nos últimos meses, percebi que o processo de configuração e uso de um túnel SSH não é bem compreendido. A seguir, tento explicar como funciona.
Primeiro, deixe-me descrever o método inseguro existente: algum aplicativo em uma estação de trabalho se conecta a um serviço em execução no VOS e escuta alguma porta, chamemos de 12345. Essa é a linha verde na figura 1, indo da estação de trabalho para o VOS. Os dados enviados por essa conexão não são criptografados, portanto, qualquer pessoa com acesso a qualquer rede pela qual a conexão passe tem o potencial de capturar e ler os dados.
Para proteger essa comunicação, a primeira coisa a ser configurada é a conexão SSH, que atuará como túnel. Ela vai da estação de trabalho até a porta que o serviço SSH em execução no VOS está escutando, cujo padrão é a porta 22 (linha vermelha na figura 1). O cliente SSH na estação de trabalho precisa ser configurado para não solicitar que o serviço SSH no VOS configure um pseudoterminal, caso contrário, você acabará com uma sessão de login e não um túnel. A configuração de um túnel SSH não impedirá que alguém capture os dados, mas o que for capturado será criptografado.
O cliente SSH na estação de trabalho também precisa ser configurado com duas informações adicionais. Primeiro, a porta na estação de trabalho que atuará como entrada do cliente do aplicativo para o túnel, chamada porta 24680, mas qualquer porta não utilizada pode ser usada. Segundo, o endereço IP e a porta com os quais o serviço SSH no VOS se conectará quando uma conexão for estabelecida através do túnel. Em nosso exemplo, o endereço IP seria 127.0.0.1 e a porta seria 12345. A configuração exata dependerá do cliente.
O aplicativo cliente em execução na estação de trabalho agora precisa ser configurado para se conectar ao host local da estação de trabalho (127.0.0.1) e à porta de entrada do túnel, 24680. Não há alterações no serviço do aplicativo em execução no VOS, ele ainda precisa estar em execução e escutando na porta 12345. As etapas são:
1) Inicie ou confirme se o serviço do aplicativo está em execução no VOS
2) Inicie ou confirme se o serviço SSH (sshd) está em execução no VOS
3) Inicie o cliente SSH na estação de trabalho e configure a conexão do túnel (linha vermelha)
4) Inicie o cliente do aplicativo na estação de trabalho e faça com que ele se conecte à porta de entrada do túnel SSH (linha azul)
5) O processo sshd no VOS faz automaticamente uma conexão com o serviço de aplicativo em execução no VOS (linha laranja)
