Pergunta

Estou desenvolvendo um sistema que possui um console interativo de gerenciamento de telnet. Os requisitos determinam que desativamos o acesso ao Telnet e adicionamos SSH. Alterar o console de gerenciamento em um programa independente que podemos usar para o SSH Login exigiria que um fornecedor se envolva. Eu estava pensando em uma solução mais barata que seria algo assim:

  1. Bloqueie o console de gerenciamento Telnet do acesso externo, mas deixe -o em execução disponível para conexões de localhost.

  2. Escreva um shell de login (em C ++, ou talvez algo tão simples quanto isto se tiver sorte) que atua como um proxy. O shell de login telnet para localhost e enviará todos os comandos que recebe do usuário sobre o telnet e enviará todos os displays e solicita que ele receba do servidor Telnet de volta ao usuário.

  3. Alterar /etc /passwd para iniciar este shell proxy quando o usuário efetuar login sobre o SSH.

O que estou pensando é possível? Existem armadilhas horríveis em que ficarei preso? Existem alternativas melhores? Estou usando o OpenSSH como o daemon SSH.

Foi útil?

Solução

Restringir o telnet às conexões locais parece um bom plano, especialmente se você não quiser tocar no código. As etapas 2 e 3 são desnecessárias, no entanto. Você pode simplesmente invocar o comando "telnet" no shell remoto depois de estabelecer a conexão. Isso pode ser feito automaticamente criando um .ssh/rc Script no diretório inicial do usuário.

MAS, Um problema em potencial com essa abordagem é que as seqüências de controle de telnet podem não passar corretamente. Portanto, uma alternativa é túnel a conexão Telnet através da conexão SSH segura usando o encaminhamento da porta. Com essa estratégia, você continuará executando o Telnet em seu cliente e servidor, mas a conexão é criptografada usando o SSH. Para configurar isso, invocar o cliente SSH como este:

ssh -L 23:localhost:23 user@host

Substitua "User@host" pelo usuário/host do servidor SSH. O efeito deste comando é que a porta 23 (telnet) no cliente a caixa será aberta. E conexões feitas a ele serão encaminhadas para a porta 23 no servidor via ssh. Então, no seu cliente, você telnet para localhost e a conexão será encaminhada para o servidor Telnet em execução na mesma caixa que o Daemon SSH.

Observe que você pode alterar o primeiro "23" para outra coisa (por exemplo, 1123) se as configurações de segurança no cliente impedir que você use a porta 23 lá. Nesse caso, você apontaria seu cliente Telnet para localhost: 1123 ou qualquer outra coisa e ele será encaminhado para a porta 23 no sistema remoto. Red Hat Magazine tem um Bom tutorial Ao usar o encaminhamento de porta SSH para casos de uso como este.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top