Telnet
Telnet (terminal network ou telecommunication network, ou encore teletype network) est un protocole utilisé sur tout réseau TCP/IP, permettant de communiquer avec un serveur distant en échangeant des lignes de texte et en recevant des réponses également sous forme de texte.
Créé en 1969, telnet est un moyen de communication très généraliste et bi-directionnel. Il appartient à la couche application du modèle OSI et du modèle ARPA. Il est normalisé par l'IETF (RFC 15, 854 et 855).
Il était notamment utilisé pour administrer des serveurs Unix distant ou de l'équipement réseau, avant de tomber en désuétude par défaut de sécurisation (le texte étant échangé en clair) et l'adoption de SSH.
Détails du protocole
modifierTelnet est un protocole de type client-serveur s'appuyant sur TCP. Les clients se connectent généralement sur le port 23 du serveur.
Parmi les caractères envoyés par le serveur Telnet, il y a évidemment les caractères de texte à afficher, mais il y a aussi des séquences de caractères qui permettent de contrôler l'affichage, par exemple pour effacer le contenu de la ligne courante. Par souci de portabilité, Telnet définit des séquences d'échappement qui ne dépendent pas du type de terminal. Le protocole de présentation correspondant est appelé NVT (Network Virtual Terminal). Le client Telnet est censé interpréter ces séquences portables de contrôle du terminal.
NVT s'appuie sur :
- des caractères de contrôle empruntés au code ASCII, comme le caractère Form Feed de code hexadécimal 0C pour effacer l'écran ;
- des séquences de plusieurs caractères introduites par le code hexadécimal FF appelé IAC (interpret as command), comme la séquence hexadécimale FF F8 pour effacer une ligne.
NVT va au-delà des fonctionnalités d'affichage et permet par exemple d'envoyer de façon urgente des signaux d'interruption au serveur pour interrompre l'application en cours. Il permet aussi de négocier des options entre le client Telnet et le serveur Telnet : on peut ainsi négocier le type de terminal, ce qui permet d'utiliser des séquences de contrôle de l'affichage comme celles du terminal VT100 qui soient moins rudimentaires que celles que NVT propose.
NVT est conçu pour des caractères de texte sur 7 bits et n'est par défaut pas adapté à une transmission sur 8 bits. Ce protocole est repris sous une forme simplifiée pour la connexion de contrôle du protocole de transfert de fichier FTP.
Utilisation
modifierUne des utilisations majeures de la commande telnet
était de se connecter à des serveurs telnet, qui demandaient un identifiant, puis un mot de passe, et donnaient une ligne de commande sur la machine distante en échange. Pour cela elle nécessitait le lancement d'un démon sur la machine hôte, souvent appelé telnetd
. Cette utilisation est progressivement devenue marginale car le protocole Telnet n'est pas sécurisé (cf. Sécurité).
La commande telnet
reste une commande très pratique pour tester des serveurs. Vu la flexibilité du programme, il est possible d'utiliser la commande telnet
pour établir une connexion TCP interactive avec d'autres services tels que SMTP, HTTP, POP, IMAP, etc. en utilisant alors le port du protocole au lieu du port telnet standard.
Telnet est indispensable pour paramétrer certains matériels réseau n'ayant pas d'interface de gestion web, et reste utile en complément d'une telle interface. On peut ainsi configurer des commutateurs, des routeurs, des serveurs d'impression, des téléphones IP, etc.
Sécurité
modifierLe côté sommaire de Telnet fait que toute communication est transmise en clair sur le réseau, mots de passe compris. Des sniffeurs comme tcpdump ou Wireshark permettent d'intercepter les communications de la commande telnet
. Des protocoles chiffrés comme SSH ont été développés pour fournir un accès distant remplaçant Telnet et dont l'interception ne fournit aucune donnée utilisable à un éventuel espion du net.
Voir aussi
modifierArticles connexes
modifierRFC
modifier- RFC 854 TELNET protocol specification
- RFC 855 TELNET option specifications
- RFC 856 TELNET binary transmission
- RFC 857 TELNET echo option
- RFC 858 TELNET suppress Go Ahead option
- RFC 859 TELNET status option
- RFC 860 TELNET timing mark option
- RFC 861 TELNET extended options - list option
- RFC 885 Telnet end of record option
- RFC 1041 Telnet 3270 regime option
- RFC 1073 Telnet Window Size Option
- RFC 1079 Telnet terminal speed option
- RFC 1091 Telnet terminal-type option
- RFC 1096 Telnet X display location option
- RFC 1184 Telnet linemode option
- RFC 1205 5250 Telnet interface
- RFC 1372 Telnet remote flow control option
- RFC 2217 Telnet Com Port Control Option
- RFC 2941 Telnet Authentication Option
- RFC 2942 Telnet Authentication: Kerberos Version 5
- RFC 2943 TELNET Authentication Using DSA
- RFC 2944 Telnet Authentication: SRP
- RFC 2946 Telnet Data Encryption Option
- RFC 2952 Telnet Encryption: DES 64 bit Cipher Feedback
- RFC 4248 The telnet URI Scheme
- RFC 4777 IBM's iSeries Telnet Enhancements
Liens externes
modifier- telnetd : un démon Telnet écrit en Java
- The Telnet Protocol : détails du protocole de présentation NVT