Dans un environnement de production moderne, l’usage de Telnet pour administrer une machine distante est formellement proscrit au profit de SSH. Telnet transmet en effet l’intégralité des flux en clair sur le câble, identifiants et mots de passe compris. Cependant, dans le cadre de maquettes isolées, de tests de diagnostic de flux ou d’interactions avec des équipements embarqués spécifiques, disposer d’un démon Telnet géré par un super-serveur peut s’avérer pratique. Ce mémo détaille la mise en place de telnetd orchestré par xinetd sur les distributions de la famille Debian/Ubuntu ainsi que sur RHEL/CentOS.
Rôle du super-démon xinetd
Le démon xinetd (Extended Internet Services Daemon) agit comme un routeur d’écoute pour les services réseau qui ne nécessitent pas de fonctionner en continu en mémoire. Plutôt que de laisser tourner une dizaine de serveurs en tâche de fond, xinetd écoute sur les différents ports assignés. Dès qu’un paquet se présente sur l’un d’eux, il instancie à la volée le service approprié, lui transmet le socket de communication, puis libère les ressources une fois l’échange terminé.
Déploiement sous Debian et Ubuntu
Sur les distributions dérivées de Debian, les paquets nécessaires se nomment généralement telnetd et xinetd. Commencez par mettre à jour vos dépôts et installez les composants requis :
- Mise à jour des dépôts : apt update
- Installation du serveur et du superviseur : apt install telnetd xinetd
Définition du service pour xinetd
La configuration moderne de xinetd repose sur des fichiers modulaires placés dans le répertoire /etc/xinetd.d/. Plutôt que de modifier le fichier global, nous allons créer une déclaration propre dédiée au protocole :
Créez ou é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
}
Activez ensuite le service et appliquez les modifications à l’aide de systemd :
- Redémarrage du service : systemctl restart xinetd
- Activation au boot : systemctl enable xinetd
Déploiement sous Red Hat, CentOS et Rocky Linux
Sur l’écosystème RHEL, la procédure est similaire mais les paquets diffèrent légèrement. La commande dnf ou yum permet de déployer l’infrastructure en quelques secondes :
- Installation : dnf install telnet-server telnet xinetd
- Activation automatique du service géré : systemctl enable –now xinetd
Dans certains environnements récents basés sur systemd, telnet-server fournit directement son propre socket d’écoute (telnet.socket), rendant xinetd optionnel. Toutefois, xinetd conserve l’avantage d’offrir des options avancées de contrôle d’accès par adresse IP ou par plage horaire directement dans sa configuration.
Validation du port et diagnostic de l’écoute
Une fois le démon relancé, il convient de s’assurer que le service écoute convenablement sur le port TCP 23. Pour examiner l’état de vos ports ouverts, vous pouvez afficher les connection socket via l’utilitaire ss ou netstat :
Exécutez la commande suivante : ss -tlpn | grep :23. Vous devez voir une ligne indiquant que xinetd est en écoute sur 0.0.0.0:23 ou :::23.
Si vous effectuez des modifications sur les chemins des binaires ou les structures de répertoires d’administration, veillez à respecter l’intégrité de vos chemins, quitte à créer un lien symbolique linux si l’emplacement de in.telnetd varie d’une version à l’autre.
Rappels de sécurité indispensables
N’ouvrez jamais ce port sur une interface directement exposée à Internet ou sur un réseau d’entreprise non maîtrisé. Pour restreindre l’accès à un hôte de test précis, vous pouvez ajouter la directive only_from = 192.168.1.50 à l’intérieur du bloc service telnet de votre fichier xinetd, ou filtrer l’accès via nftables ou firewalld.




