Telnet
| Pile de protocoles | |
|
|
| Modèle Internet | |
| Modèle OSI | |
| modifier |
Telnet (TErminal NETwork ou TELecommunication NETwork, ou encore TELetype NETwork) est un protocole réseau utilisé sur tout réseau prenant en charge le protocole TCP/IP. Il appartient à la couche application du modèle OSI et du modèle ARPA. Il est normalisé par l'IETF (RFC 854 et RFC 855). Selon l'IETF, le but du protocole Telnet est de fournir un moyen de communication très généraliste, bi-directionnel et orienté octet.
telnet est aussi une commande permettant de créer une session Telnet sur une machine distante. Cette commande a d'abord été disponible sur les systèmes Unix, puis elle est apparue sur la plupart des systèmes d'exploitation.
Sommaire |
Détails du protocole [modifier]
Telnet 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 [modifier]
Une 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. #Non sécurisé).
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.
Utiliser Telnet sous Windows Vista et Windows 7 [modifier]
Depuis Windows Vista, le protocole Telnet n'est plus activé par défaut. Microsoft explique son choix de le désactiver pour des raisons de sécurité, mais aussi car de moins en moins d'utilisateurs y feraient appel. Il reste malgré tout possible de l'activer, que ce soit sous Windows Vista ou Windows 7 : il faut exécuter la commande pkgmgr.exe /iu:TelnetClient ou pkgmgr /iu:"TelnetClient" en tant qu'Administrateur. De la même manière, on peut installer le serveur Telnet en exécutant la commande pkgmgr.exe /iu:TelnetServer ou pkgmgr /iu:"TelnetServer". La commande telnet peut aussi être activée dans le panneau de configuration Programmes/programmes et fonctionnalités, section à gauche de la fenêtre, Activer ou désactiver des fonctionnalités Windows, en cochant Client Telnet et Serveur Telnet.
Non sécurisé [modifier]
Le 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 [modifier]
Articles connexes [modifier]
RFC [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