Dans le monde des infrastructures actuelles, l’usage de Telnet pour l’administration distante est banni depuis longtemps au profit de SSH, principalement parce qu’il transmet l’intégralité du trafic réseau en clair, y compris les identifiants et mots de passe. Cependant, dans un laboratoire isolé, lors d’émulations de topologies matérielles (GNS3, EVE-NG) ou pour des tests applicatifs très spécifiques, disposer d’un démon Telnet local reste utile. Ce tutoriel décrit le déploiement de telnetd orchestré par le super-démon xinetd sur les distributions de la famille Debian/Ubuntu et Red Hat Enterprise Linux.
Pourquoi utiliser le super-serveur xinetd ?
Le démon Telnet d’origine ne dispose généralement pas de logique interne avancée pour la gestion continue d’un socket d’écoute réseau. On le confie donc à xinetd (eXtended InterNET services daemon). Ce dernier écoute sur le port 23 à la place du service et ne lance le processus in.telnetd qu’au moment exact où un client initie une connexion entrante. Cela permet d’économiser les ressources système et de centraliser le contrôle d’accès.
Installation et configuration sur Debian et Ubuntu
Avant toute manipulation, assurez-vous de connaître votre environnement système, notamment si vous devez verifier la version d’ubuntu ou de Debian en cours d’exécution.
Commencez par installer le paquet du serveur Telnet ainsi que xinetd à l’aide du gestionnaire APT :
apt-get update && apt-get install telnetd xinetd
Plutôt que d’encombrer le fichier global /etc/xinetd.conf, la bonne pratique consiste à créer un fichier de service dédié dans le sous-dossier /etc/xinetd.d/. Créez et éditez le fichier /etc/xinetd.d/telnet :
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
port = 23
}
Détail des directives clés :
- socket_type = stream : indique une communication basée sur un flux TCP fiable.
- wait = no : permet à xinetd de traiter chaque connexion concurremment sans bloquer le port.
- server : pointe vers le binaire d’exécution de Telnet invoqué à la demande.
- disable = no : active explicitement la prise en charge du service par le superviseur.
Appliquez les changements en redémarrant le service avec systemd :
systemctl restart xinetd
Déploiement sur RHEL, CentOS et Rocky Linux
Sur les distributions basées sur RHEL, la procédure est similaire mais les paquets diffèrent légèrement. Installez le paquet serveur et xinetd via le gestionnaire de paquets de la machine :
yum install telnet-server xinetd
Vérifiez que la directive disable = no est bien configurée dans /etc/xinetd.d/telnet, puis activez et démarrez le service xinetd :
systemctl enable –now xinetd
Validation du port d’écoute et diagnostic
Pour confirmer que le démon xinetd écoute correctement sur le port standard TCP 23, il est recommandé d’afficher les connection socket à l’aide de l’utilitaire ss ou de l’ancien netstat :
ss -tulpn | grep 23
Vous devez repérer une ligne indiquant un socket TCP en état LISTEN rattaché au processus xinetd. Testez ensuite la liaison depuis une autre machine du réseau local :
telnet 192.168.1.50 23
Considérations de sécurité
Par défaut sur la plupart des distributions modernes, la connexion directe du compte root via Telnet est bloquée par PAM et par la configuration de /etc/securetty. Connectez-vous impérativement avec un utilisateur standard non privilégié, puis basculez vers root si nécessaire avec su ou sudo. N’exposez jamais ce port sur une interface publique sans passer par un tunnel chiffré (VPN ou passerelle de rebond).




