Login de Telnet como usuário do linux com um prompt

0

Estou tentando descobrir a configuração da porta 23 em um servidor Ubuntu. Ele foi configurado pelo meu antecessor de uma maneira bastante complicada e agora preciso migrar a funcionalidade para uma nova máquina. Eu sei mais ou menos como funciona, mas não conheço os detalhes, que é o que preciso saber agora. A funcionalidade aproximada é esta:

  • Os usuários fazem login no servidor como um usuário comum do Linux pela porta 23 (sempre com o mesmo usuário). Mais detalhes sobre isso abaixo ...
  • Uma vez logado, eles são apresentados com um aviso para algumas informações
  • Eles inserem informações no prompt e, em seguida, efetuam o logout

Eu posso ver que o shell padrão é bash (nome de usuário e número modificados para privacidade):

# grep theuser /etc/passwd
theuser:x:1111:1111::/home/theuser:/bin/bash

E posso ver que o script .bash_profile redireciona o usuário para os prompts no login:

$ cat /home/theuser/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/scripts

export PATH
unset USERNAME

/home/theuser/scripts/prompts
exit

Portanto, não há mistério lá. No entanto, a questão que tenho é como a porta 23 pode ser ligada ao prompt de login de um usuário comum do Linux? Eu sei com certeza que este é o caso, porque eu posso fazer o login da seguinte forma:

$ telnet localhost 23
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
machinename login: theuser
Password:
Last login: Fri Mar 24 14:25:48 CST 2017 from localhost on pts/5
prompt 1:

Se eu verificar os processos em execução na porta 23, obtenho:

$ netstat -tulpn | grep 23
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      2222/inetd

Portanto, a conexão é tratada por inetd . Mas isso não me ajuda porque eu não sei o que o inetd está fazendo. Se eu olhar em /etc/inetd.conf , vejo a seguinte linha:

telnet      stream  tcp nowait  root    /usr/sbin/tcpd  /usr/sbin/in.telnetd

Mas isso não ajuda muito. Eu já sabia que telnet estava sendo executado nesta máquina. Eu preciso saber como o telnet está configurado para redirecionar o usuário para um prompt de login.

    
por mulllhausen 24.03.2017 / 06:49

1 resposta

2

Ter um servidor TELNET escutando na porta TCP 23 não é "complicado". É normal (desde que se desconsidere a anormalidade do uso do TELNET neste século). Esse é o número de porta conhecido para o serviço TELNET.

E in.telnetd não está "configurado" para "redirecionar" o usuário para um prompt de login. Apresentar uma interface de login para clientes conectados é o que faz . Sua página de manual (q.v.) é bastante explícita:

Telnetd operates by allocating a pseudo-terminal device […] for a client, then creating a login process which has the slave side of the pseudo-terminal as stdin, stdout and stderr. Telnetd manipulates the master side of the pseudo-terminal, implementing the telnet protocol and passing characters between the remote client and the login process.

O processo de login está executando o programa login , apresentando esse prompt de login.

    
por 24.03.2017 / 23:17

Tags