Limitar o acesso ao shell para o usuário do SSH apenas para telnet

0

Temos um servidor CentOS 7 executando um aplicativo que usa o telnet. Em vez de abrir a porta para permitir o acesso direto ao telnet, gostaríamos de uma opção mais segura de usuários usando o SSH para fazer login e se conectar ao telnet a partir de lá.

No entanto, esses usuários não precisam acessar mais nada. Assim, eu queria saber se é possível criar um shell personalizado que abre automaticamente a interface telnet ou limitar um shell para permitir apenas o comando telnet.

Claro que se houver outras soluções melhores disponíveis, eu adoraria ouvir sobre elas também!

O comando específico para o qual eles precisariam acessar é:

telnet <ip> 25568

Considerando que <ip> seria um dos poucos endereços IP locais configurados

    
por xorinzor 10.11.2016 / 17:25

1 resposta

1

Um método seria chsh sua conta para usar algo como o seguinte como seu shell de login, que faz um loop para sempre até que um número apropriado seja inserido, ponto em que o script se substitui pela chamada telnet . Você pode querer desabilitar o código de escape telnet ( telnet -E ... ) se os comandos oferecidos lá forem problemáticos e, caso contrário, dar uma olhada em cada opção telnet oferece para ver se algum deles deve ou não ser definido. Também pode ser prudente usar unset ou definir especificamente determinadas variáveis de ambiente transportadas pelo cliente SSH remoto (por exemplo, PATH , configurações de localidade, etc; inspecione-as com env > whatenvisset ou o script).

#!/bin/bash

PS3='number for remote host: '

while :; do
  select ipaddr in 192.0.2.4 192.0.2.5 192.0.2.6; do
    if [[ -n "$ipaddr" ]]; then
        exec /usr/bin/telnet "$ipaddr" 25568
    fi
  done
done

Isso seria fácil de automatizar remotamente, se necessário, via expect , embora talvez menos bonito do que usar dialog para lançar um menu mais gráfico de opções.

    
por 10.11.2016 / 19:23