Encaminhamento de porta do servidor Windows SSH para Telnet para vários usuários

1

Eu tenho várias instalações com uma estrutura de banco de dados especializada (Intersystems Caché) que contém seu próprio servidor Telnet em execução na porta 23. Embora o produto seja executado no Windows Server 2008, AIX e Linux (RedHat Enterprise Linux, especificamente), as instalações que eu apoio estão utilizando exclusivamente o sistema operacional Windows Server 2008. Este é o único sistema de linha de comando suportado para o produto neste momento; O SSH ou qualquer outra forma de interface criptografada não é suportada. A interface Telnet - dependendo do tamanho da instalação - pode atender até várias centenas de usuários / sessões por vez. Não me sinto confortável com essa comunicação não criptografada e gostaria de configurar um sistema externo (para o framework) no servidor para permitir a criptografia.

O que eu gostaria de fazer é restringir a porta telnet do Caché para escutar a porta 23 somente no host local (127.0.0.1) e configurar um daemon do servidor SSH no próprio servidor para responder a todas as solicitações da rede em geral na porta 22 e encaminhar esses pedidos para a porta 23 no host local, permitindo, assim, a comunicação da linha de comando criptografada para o produto, mesmo que ele não o suporte diretamente.

Eu tenho pesquisado isso por vários dias, tanto através de buscas padrão do Google (e eu sou bastante bom em falar no Google) e também aqui no serverfault / stackoverflow sem sucesso. Todos os exemplos que eu encontrei 1) fazem o encaminhamento direto de porta sem criptografia para muitos usuários / sessões, ou 2) descrevem apenas como fazer o encaminhamento / encapsulamento de porta SSH para um único usuário / sessão.

Por # 2 acima, tentar configurar centenas de túneis SSH encaminhados individualmente seria um pesadelo administrativo; Preciso de uma solução do lado do servidor em uma única porta que manipule várias sessões & Comercial. Para a pesquisa que eu fiz, configurar um daemon do servidor OpenSSH no servidor windows parece ser a melhor opção (e eu tentei - sem sucesso - configurar o sshd_config para suportar este cenário) mas se houver uma opção melhor eu estou aberto para todas as sugestões.

Eu também considerei configurar uma pequena máquina virtual Linux para fazer a tradução, mas as instalações não têm ninguém versado em administração Linux e ainda temos várias instalações que executam o produto em um ambiente físico (não virtual) uma solução virtual secundária do Linux não beneficiaria esses sites.

** Esqueci de mencionar: como o aplicativo baseado em Caché possui seu próprio sistema de segurança fora do próprio servidor Windows, muitos dos usuários individuais do aplicativo não possuem credenciais de login baseadas no Windows para o servidor. O (s) túnel (s) SSH não deve (m) tentar iniciar um shell no próprio servidor, ele deve apenas criptografar / descriptografar rapidamente e criar um túnel para a porta Telnet. Espero ter explicado isso bem o suficiente; se não, por favor, deixe-me saber e vou tentar explicá-lo mais claramente.

Qualquer ajuda seria muito apreciada. Obrigado pelo seu tempo!

    
por zmerch 26.05.2015 / 18:16

1 resposta

1

Como você parece estar concentrado em ter uma sessão de telnet criptografada, minha sugestão para uma alternativa seria usar uma ferramenta como stunnel . O Stunnel é um proxy TLS que permite adicionar TLS / SSL sobre protocolos tcp simples (como o telnet). Você obtém todos os benefícios da criptografia e autenticação fornecida por certificados.

O desafio com stunnel seria que não há muitos clientes telnet compatíveis com TLS. Uma maneira de resolver isso seria instalar o stunnel nas máquinas clientes também. Stunnel pode trabalhar em qualquer direção. Pode adicionar ou remover TLS. Assim, seus clientes podem se conectar à instância stunnel local com o cliente telnet. Sua instância de stunnel local criaria um túnel TLS para seu servidor, o que faria uma conexão com o servidor de banco de dados.

    
por 26.05.2015 / 19:55