Servidor Telnet

Em um ambiente de rede, é sempre importante salientar o uso de ferramentas que possam facilitar procedimentos de manutenção, gerenciamento e execução de procedimentos em uma determinada máquina, sem estar na frente dela. Uma das formas de se obter isso é através da possibilidade de acessos remotos para executar alguma tarefa.

Desenvolvido em 1969, o telnet é um protocolo de rede utilizado na Internet ou em redes locais para estabelecer comunicação com hosts remotos e utiliza a arquitetura cliente-servidor. É um protocolo antigo e está disponível em muitos sistemas operacionais e equipamentos de rede, como switches e roteadores, por exemplo, onde é utilizado para a configuração dos mesmos. Uma outra utilidade para o uso do telnet é testar, por exemplo, se um determinado serviço está no ar sem utilizar programas específicos do serviço.

Como falei sobre o daemon inetd no outro post, mas não falei sobre nenhuma configuração, aqui vou falar sobre a instalação e a configuração do servidor telnet, (que envolve configuração do inetd). No acesso via telnet, iremos ter uma interface cliente (quem solicita o login remoto) e a interface servidor (que disponibiliza o acesso na porta 23/TCP).

Para a configuração desse serviço, é necessário instalar o pacote telnet (interface cliente) e o telnetd (interface servidor). Para instalar no Debian:

# apt-get install telnet telnetd

Após a instalação, a seguinte linha é adicionada automaticamente no arquivo /etc/inetd.conf:

Onde:

telnet – nome do serviço. O inetd associa nomes de serviços a números de portas consultando o arquivo /etc/services (para serviços TCP e UDP) ou o arquivo /etc/rpc e o daemon portmap (para serviços RPC).

stream – tipo de socket de rede utilizado pelo protocolo. Geralmente, é utilizado stream ou dgram, mas os valores possíveis aqui são:

stream – para serviços TCP

dgram – para serviços UDP

raw – somente leva os pacotes, sem realizar o processamento da pilha TCP/IP (encapsula/desencapsulamento do pacote) e enviando direto para a aplicação que será a responsável por retirar os cabeçalhos e analisar o pacote

rdm – reliably delivered message – entrega confiável de mensagens

seqpacket – sequenced packet socket – socket de pacotes sequenciados

tcp – tipo de protocolo de comunicação utilizado pelo serviço, geralmente tcp ou udp. Os tipos de protocolos que podem ser utilizados nesse campo são listados no arquivo /etc/protocols.

nowait/wait – wait geralmente repassa múltiplos sockets para um único daemon, enquanto nowait dispara um daemon filho para cada novo socket. Sockets do tipo dgram precisam usar a opção wait, enquanto daemons de sockets tipo stream, os quais geralmente são multi-threaded, devem usar a opção nowait.

telnetd.telnetd – usuário e grupo que executarão o processo

/usr/sbin/tcpd – programa utilizado pelo TCPWrappers que implementa controle de acesso baseado na origem da conexão, além de registrar em log as tentativas de conexão no serviço

/usr/sbin/in.telnetd – O caminho completo do daemon a ser executado quando uma conexão é recebida.

Para iniciar o serviço telnet, é necessário reiniciar o daemon inetd que no caso do Debian tem o nome de openbsd-inetd:

# /etc/init.d/openbsd-inetd stop
Stopping internet superserver: inetd.

# /etc/init.d/openbsd-inetd start
Starting internet superserver: inetd.

Após iniciar o serviço, vamos verificar se o servidor telnet está no ar:

# netstat -anlt | grep 23
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN

As opções ‘anlt’ do netstat significam:

a – listar todos os sockets

n – mostrar em númerico, isto é, não resolver nomes

l – exibir somente sockets em estado LISTEN

t – exibir somente protocolo tcp

E o grep 23, é referente à porta padrão que o telnet trabalha – informação obtida consultando o arquivo /etc/services:

# cat /etc/services | grep 23
telnet          23/tcp

Outra forma de checar se o serviço está no ar, é utilizando o comando fuser, que exibe o PID do processo e o nome do usuário que está utilizando. A opção -v no comando é de verbose (exibir com mais detalhes).

Com o serviço no ar, vamos realizar um acesso telnet ao servidor, com usuário comum – padrão o telnet não permite conexões como root:

$ telnet nixi
Trying 192.168.0.108…
Connected to nixi.
Escape character is ‘^]’.
Debian GNU/Linux 5.0
nixi login: nixi
Password:
Linux nixi 2.6.26-2-686 #1 SMP Thu Sep 16 19:35:51 UTC 2010 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
nixi@nixi:~$

Para desconectar do servidor, basta executar o comando logout:

$ logout

Configuração do telnet via xinetd

O inetd também pode ser configurado via xinetd e, aproveitando o telnet, vejamos como fica a configuração via xinetd (que esse é o padrão para sistemas Red Hat). Aqui, vou configurar no Debian e é necessário instalar o pacote:

# apt-get install xinetd

Um detalhe importante, em produção, é necessário escolher se você quer trabalhar com o inetd ou com o xinetd; no caso, quando instalei o pacote xinetd, o pacote openbsd-inetd foi removido.

O arquivo que determina como o xinetd irá se comportar é o xinetd.conf; nele, é possível configurar onde serão registrados os logs, e também indicar em qual diretório os arquivos de configuração de cada serviço irão ficar (o default é /etc/xinetd.d). Normalmente, não é necessário fazer nenhuma mudança nesse arquivo, a não ser que queira fazer ajustes para personalizar a forma como o xinetd irá trabalhar para você. Para isso, consulte a página do manual:

# man 5 xinetd.conf

Vejamos agora como fica a configuração para o serviço telnet:

# cd /etc/xinetd.d/
# vim telnet
service telnet
{

flags = REUSE
log_type = FILE /var/log/telnet.log
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.telnetd

}

Os parâmetros utilizados no arquivo correspondem aos mesmos utilizados no inetd:

flags: Recebe as opções passadas em linha de comando para o daemon.

log_type: Indica o caminho completo e o arquivo que irá registrar os eventos telnet.

socket_type: Especifica o tipo de socket usado, como: dgram, stream ou raw.

protocol: Indica o protocolo usado pelo serviço.

wait: wait geralmente repassa múltiplos sockets para um único daemon, enquanto nowait dispara um daemon filho para cada novo socket.

user: Usuário que executará o serviço.

server: O caminho completo do daemon a ser executado quando uma conexão é recebida.

Após salvar o arquivo, é necessário reiniciar o serviço:

# /etc/init.d/xinetd restart

Para checar se o serviço está no ar, utilizar os comandos netstat e fuser, mencionados acima.

Bem, para finalizar… utilizar o cliente telnet para testar se um determinado serviço está no ar ou configurar um equipamento de rede é bem funcional; porém ao longo dos anos vulnerabilidades vem sendo descobertas; o fato da conexão não ser criptografada, ou seja, as informações de acesso passar pela rede em texto claro, possibilita a captura e análise destas através de algum mecanismo de sniffer na rede.

Por conta dessas falhas, a utilização do protocolo telnet não é recomendada; em caso de acesso remoto, é melhor utilizar o SSH, que irei comentar em outro post.

Ahnn apesar do protocolo ser inseguro… tem uma coisa legal prá quem é fã de Star Wars!🙂

# telnet towel.blinkenlights.nl 23

Tem mais lugares para fazer telnet. Veja a referência ‘Places to Telnet’, e enjoy it😉 !

Referências:
Manual Completo do Linux – Guia do Administrador
Evi Nemeth et al – Editora: Pearson Books

Introdução aos serviços de Rede – Prof. Carlos Maziero

Configurando o xinetd

Guia Foca GNU/Linux – Servidor telnet

Places to Telnet

0 Responses to “Servidor Telnet”



  1. Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
novembro 2010
S T Q Q S S D
« out   dez »
1234567
891011121314
15161718192021
22232425262728
2930  

Flickr Photos

Morning Silence

Mais fotos

%d blogueiros gostam disto: