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.