CHAPITRE III : LE PROTOCOLE TELNET MANSOURI Asma 1 Services Internet & Intranet ISET Beja-2011.
-
Upload
corinne-santos -
Category
Documents
-
view
116 -
download
1
Transcript of CHAPITRE III : LE PROTOCOLE TELNET MANSOURI Asma 1 Services Internet & Intranet ISET Beja-2011.
1
CHAPITRE III :
LE PROTOCOLE TELNET
MANSOURI Asma
Services Internet & Intranet
ISET Beja-2011
2
Plan
1. Généralité
2. La notion de terminal virtuel
3. Le principe d'options négociées
4. Les règles de négociation
3
1. Généralité
Le protocole Telnet est un protocole standard d'Internet utilisé pour émuler une connexion d'un client sur un serveur
Il utilise TCP comme protocole de transport pour le transfert des commandes et réponses du serveur
On peut également définir Telnet comme un ensemble de logiciels qui émule un accès par terminal sur une machine distante
4
Une session Telnet suppose un client qui joue le rôle de terminal déporté et un serveur Telnet qui reçoit la requête et qui ouvre la connexion en écoutant sur le port TCP 23
Cela permet entre autre d'intervenir et de maintenir des systèmes à plusieurs milliers de kilomètres et d’administrer par ligne de commande à distance
Plusieurs modes de connexion sur un serveur Telnet sont possibles parmi lesquels : telnet adresse_IP_du_Serveur telnet Nom_du_Serveur telnet adresse_IP_du_Serveur port telnet Nom_du_Serveur port
1. Généralité (Suite)
5
De nombreuses autres options sont disponibles: Pour les connaître, une aide du système utilisé est indispensable
Il est également vivement conseillé de consulter les RFC suivantes 854 (Spécifications du Protocole Telnet) et 855 (Spécification des Option de Telnet)
Il est impératif de disposer d'un mot de passe pour se connecter sur une machine distante, il faut fournir un mot de passe
Le port est souvent définit par défaut sur les systèmes et il n'est pas nécessaire de le préciser
1. Généralité (Suite)
6
Lorsque l'on demande une session Telnet, le système lance une connexion et affiche les messages de la figure suivante sur laquelle on peut lire : La tentative de connexion à la machine par son adresse IP ou par son
nom Un caractère d‘échappement
nous est indiqué, très important
dans les plates-formes Unix ou
Linux Dans ce cas, les versions du
système et du noyau sont
affichées Ces informations sont souvent
utiles pour des utilisateurs avertis
Sur les plates-formes Unix ou Linux, le serveur Telnet est actif par l'intermédiaire d'un démon (daemon en anglais) telnetd
1. Généralité (Suite)
7
Une fois les login et mot de passe saisis, la date du jour, le terminal de connexion et un message d'invite s'affichent indiquant que l'on est bien connecté et les saisies des opérations peuvent commencer
Au fur et à mesure que l'utilisateur tape sur le clavier, les caractères sont reçus par le serveur Telnet et transmis au système d'exploitation sur lequel il s'exécute
1. Généralité (Suite)
8
Ce protocole est un protocole de base, sur lequel s'appuient certains autres protocoles de la suite TCP/IP (FTP, SMTP, POP3, ...)
La transmission de données à travers Telnet consiste uniquement à transmettre les octets dans le flux TCP Le protocole Telnet précise tout de même que les données doivent
par défaut ( si aucune option ne précise le contraire) être groupées dans un tampon avant d'être envoyées ligne par ligne
Le protocole Telnet repose sur trois concepts fondamentaux : Le paradigme du terminal réseau virtuel (NVT, Network Virtual
Terminal) ; Le principe d'options négociées ; Les règles de négociation.
1. Généralité (Suite)
9
2. La notion de terminal virtuel
Aux débuts d'Internet, le réseau (ARPANET) était composé de machines dont les configurations étaient très peu homogènes (claviers, jeux de caractères, résolutions, longueur des lignes d'affichage)
D'autre part, les sessions des terminaux possédaient également leur propre façon de contrôler les flux de données en entrée/sortie
Ainsi, au lieu de créer des adaptateurs pour chaque type de terminal afin qu'il puisse y avoir une interopérabilité de ces systèmes, il a été décidé de mettre au point une interface standard, appelée NVT (Network Virtual Terminal), fournissant une base de communication standard
Le protocole Telnet consiste ainsi à créer une abstraction du terminal, permettant à n'importe quel hôte de communiquer avec un autre hôte sans connaître ses caractéristiques
10
3. Le principe d'options négociées
Les spécifications du protocole Telnet permettent de prendre en compte le fait que certains terminaux puissent proposer des services additionnels, non définis dans les spécifications de base, afin de pouvoir utiliser des fonctions avancées
Ainsi, ces fonctionnalités se traduisent en termes d'options (RFC 855 à 861)
Le protocole Telnet propose donc un système de négociations d'options permettant l'utilisation de fonctions avancées sous forme d'options de part et d'autre en initiant des requêtes pour en demander l'autorisation au système distant
11
Les options de Telnet affectent séparément chaque direction du canal de données
Ainsi, chaque extrémité peut définir les options qu'elle : veut utiliser (DO) refuse d'utiliser (DON'T) veut que l'autre extrémité utilise (WILL) refuse que l'autre extrémité utilise (WON'T)
De cette façon, chacune des parties peut émettre une demande d'utilisation d'une option. L'autre partie doit alors répondre si elle accepte ou non l'utilisation de l'option
Dans le cas où la requête concerne une désactivation d'option, le destinataire de la requête ne doit pas refuser pour être totalement compatible avec le modèle NVT
3. Le principe d'options négociées(Suite)
12
Le protocole Telnet supporte 255 codes d'options extensible (Le RFC 855 explique comment documenter toute nouvelle option)
Voici quelques exemples d'options courantes :Code
décimalNom RFC
1 echo (écho) 857
24 terminal type (type de terminal) 1091
31 window size (taille de fenêtre) 1073
32 terminal speed (vitesse du terminal) 1079
33 remote flow control (contrôle de flux à distance)
1372
34 line mode (mode ligne) 1184
36 environment variables (variables d'environnement)
1408
3. Le principe d'options négociées(Suite)
13
4. Les règles de négociation
Des règles de négociation d'options permettent d'éviter des situations de bouclage
Les requêtes ne doivent être émises que lors d'un changement de mode
Lorsqu'une des parties reçoit une requête de changement de mode, il ne doit l'acquitter que s'il ne se trouve pas déjà dans le mode approprié
Une requête ne doit être insérée dans le flux de données qu'à l'endroit où elle prend effet
14
CHAPITRE IV : LE PROTOCOLE FTP
MANSOURI Asma
Services Internet & Intranet
ISET Beja-2011
15
Plan
1. Le rôle du protocole FTP 2. Le modèle FTP 3. Les commandes FTP 4. Les réponses FTP 5. Les modes FTP
5.1. Le mode Actif 5.2. Le mode Passif
6. Authentifications FTP 6.1. Authentification FTP anonyme 6.2. Authentification FTP de base
7. Serveurs FTP ProFTPd – VsFTPd – PureFTPd
16
Introduction
Le protocole FTP (File Transfer Protocol) est un protocole de transfert de fichier
1971 : La mise en place de ce protocole FTP (décrit dans le RFC 141) entre les machines du MIT (Massachussetts Institute of Technology)
De nombreux RFC ont ensuite apporté des améliorations au protocole de base, mais les plus grandes innovations datent de juillet 1973
Le protocole FTP est actuellement défini par le RFC 959 (File Transfer Protocol (FTP) - Specifications)
17
1. Le rôle du protocole FTP
Le protocole FTP définit la façon selon laquelle des données doivent être transférées sur un réseau TCP/IP
Le protocole FTP a pour objectifs de : permettre un partage de fichiers entre machines
distantes permettre une indépendance aux systèmes de fichiers
des machines clientes et serveur permettre de transférer des données de manière efficace
18
2. Le modèle FTP
Le protocole FTP s'inscrit dans un modèle client-serveur Une machine envoie des ordres (le client) et une autre attend des
requêtes pour effectuer des actions (le serveur)
Lors d'une connexion FTP, deux canaux de transmission sont
ouverts : Un canal pour les commandes (canal de contrôle) Un canal pour les données
Ainsi, le client comme le serveur possèdent deux processus permettant de gérer ces deux types d'information : le DTP (Data Transfer Process) est le processus chargé d'établir la
connexion et de gérer le canal de données. Le DTP côté serveur est appelé SERVER-DTP, le DTP côté client est appelé USER-DTP
le PI (Protocol Interpreter) est l'interpréteur de protocole permettant de commander le DTP à l'aide des commandes reçues sur le canal de contrôle
19
Le Protocol Interpreter est différent sur le client et sur le serveur
Le SERVER-PI est chargé d’écouter les commandes provenant d'un USER-PI sur le canal de contrôle sur un port donné: Etablir la connexion pour le canal de contrôle Recevoir les commandes FTP du USER-PI Répondre et piloter le SERVER-DTP
Le USER-PI est chargé d’établir la connexion avec le serveur FTP: Envoyer les commandes FTP Recevoir les réponses du SERVER-PI Contrôler le USER-DTP si besoin
2. Le modèle FTP (Suite)
20
Lors de la connexion d'un client FTP à un serveur FTP:
Le USER-PI initie la connexion au serveur selon le protocole Telnet Le client envoie des commandes FTP au serveur, ce dernier les
interprète, pilote son DTP, puis renvoie une réponse standard Lorsque la connexion est établie, le serveur-PI donne le port sur
lequel les données seront envoyées au Client DTP Le client DTP écoute alors sur le port spécifié les données en
provenance du serveur
2. Le modèle FTP (Suite)
21
Les ports de contrôle et de données étant des canaux séparés Il est possible d'envoyer les commandes à partir d'une machine et
de recevoir les données sur une autre Il est possible donc de transférer des données entre deux serveurs
FTP en passant par un client pour envoyer les instructions de contrôle et en transférant les informations entre deux processus serveurs connectés sur le bon port
Dans cette configuration, le protocole impose que les canaux de contrôle restent ouverts pendant tout le transfert de données Ainsi un serveur peut arrêter une transmission si le canal de contrôle
est coupé lors de la transmission
2. Le modèle FTP (Suite)
22
2. Le modèle FTP (Suite)
23
3. Les commandes FTP
Toutes les communications effectuées sur le canal de contrôle suivent les recommandations du protocole Telnet
Ainsi les commandes FTP sont des chaînes de caractères Telnet (en code NVT-ASCII) terminées par le code de fin de ligne Telnet <CRLF> La séquence <CR>+<LF>, Carriage Return (retour chariot)
suivi du caractère Line Feed, notée <CRLF>
Si la commande FTP admet un paramètre, celui-ci est séparé de la commande par un espace (<SP>)
24
Les commandes FTP permettent de préciser : Le port utilisé Le mode de transfert des données La structure des données La nature de l'action à effectuer (Retrieve, List, Store, ...)
On distingue trois types de commandes FTP : Les commandes de contrôle d'accès (USER, PASS, …) Les commandes du paramétrage de transfert (PORT,
PASV,…) Les commandes de service FTP (RETR, STOR, …)
3. Les commandes FTP (Suite)
25
4. Les réponses FTP
Les réponses FTP permettent d'assurer la synchronisation entre client et serveur FTP A chaque commande envoyée par le client, le serveur
effectuera éventuellement une action et renverra systématiquement une réponse
Les réponses sont constituées d'un code à 3 chiffres indiquant la façon suivant laquelle la commande envoyée par le client a été traitée et dont voici les significations : Le premier chiffre indique le statut de la réponse (succès ou
échec) Le second chiffre indique ce à quoi la réponse fait référence Le troisième chiffre donne une signification plus spécifique
(relative à chaque deuxième chiffre)
26
5. Les modes FTP
L'une des questions les plus courantes lorsqu'on s'occupe de Firewall ou de problèmes de connexions via Internet est la différence entre FTP Actif et FTP Passif et comment essayer au mieux de supporter les deux
FTP est basé exclusivement sur TCP, il n'y a pas d'UDP ...
Le service FTP est inhabituel dans la mesure où il utilise 2 Ports différenciés, un Port pour les données et un Port pour les commandes de contrôle
Traditionnellement, c'est le Port 21 qui est utilisé pour les commandes et le Port 20 pour le transfert des données
La confusion vient du fait que selon le mode utilisé (Actif ou Passif), ce n'est pas toujours le Port 20 qui est utilisé pour les données
27
Avec le mode FTP actif, c’est le client qui établit la connexion pour les commandes et c’est le serveur qui établit celle des données
Le client se connecte sur le port 21 pour établir une connexion de commandes à partir de son port source supérieur à 1023 (noté N)
Une fois la connexion établie, le client envoie une commande permettant au serveur de connaitre le port à utiliser pour envoyer les données et le client commence alors à écouter sur ce port N+1
Le serveur se connecte alors sur le port N+1 à partir de son port source 20
5. Les modes FTPa. Le mode actif
28
5. Les modes FTP (Suite)
a. Le mode actif
1. Le client initie la connexion et se connecte sur le port 21 du serveur à partir d’un port source supérieur à 1023 (N)
2. Le serveur répond au client avec le port 21 sur le port N du client
3. Le serveur initie la connexion de données avec le port 20 sur le port N+1 du client
4. Le client répond au serveur (ACK) à partir de son port N+1 sur le port 20 du serveur
29
Avec le mode FTP passif, c’est le client qui initie les deux connexions (commandes et données) au serveur Cela résout le problème des pare-feu car seuls les flux déjà
établis ou existants sont autorisés à entrer
Lorsqu’une connexion mode passif est établie, le client ouvre deux ports : l’un supérieur à 1023 (noté N) et l’autre N+1 Le premier port contacte le serveur FTP sur son port 21 et
envoie par la même occasion une commande « PASV » qui permet au serveur d’ouvrir un port supérieur à 1023 (noté P) et de renvoyer le résultat au client avec la commande « PORT P »
Le client peut alors à partir du second port ouvert (N+1) établir une connexion sur le port P du serveur pour le transfert de données
5. Les modes FTP (Suite)
b. Le mode passif
30
5. Les modes FTP (Suite)
b. Le mode passif
1. Le client initie la connexion sur le port 21 du serveur à partir d’un port source >1023 (N) et envoie une requête « PASV »
2. Le serveur répond avec le port 21 sur le port N du client et répond aussi à la requête « PASV » par un « PORT P »
3. Le client connait le port de données du serveur (P) et peut s’y connecter à partir de son port N+1
4. La réponse du serveur au client pour les données se fait du port P (côté serveur) au port N+1 (côté client)
31
Alors que le mode Passif résout la plupart des problèmes du point de vue du client, il crée tout un tas d'autres problèmes du côté du Serveur
Le principal problème étant le besoin de devoir accepter les connexions entrantes vers un n° de Ports élevés du Serveur Heureusement, beaucoup de Logiciels Serveurs FTP permettent
de spécifier une étendue de Ports que le Serveur pourra utiliser pour les connexions de données
Le second problème est la compatibilité et la résolution des problèmes des clients, selon qu'ils supportent (ou non) le mode FTP Passif
5. Les modes FTP (Suite)
b. Le mode passif
32
6. Authentifications FTPa. Authentification FTP anonyme
On peut configurer notre serveur FTP pour autoriser l'accès anonyme aux ressources FTP
Si on sélectionne l'authentification anonyme pour une ressource, toutes les demandes concernant cette ressource sont traitées sans demander ni le nom d'utilisateur ni de mot de passe
33
Pour établir une connexion FTP avec notre serveur Web à l'aide de l'authentification de base, les utilisateurs doivent ouvrir une session en utilisant un nom d'utilisateur et un mot de passe correspondant à un compte valide
Si le serveur FTP ne parvient pas à vérifier l'identité d'un utilisateur, il renvoie un message d'erreur
L'authentification FTP est assez peu sécurisée, car l'utilisateur transmet son mot de passe et son nom d'utilisateur sur le réseau sans les crypter
6. Authentifications FTPb. Authentification FTP de base
34
7. Serveur FTP
On trouve de nombreux serveurs FTP pour Linux/Unix/BSD comme : ProFTPd Pure-FTPd VsFTPd Wing FTP Server
Sous Windows, on trouve : FileZilla Server Wing FTP Server
35
7. Serveur FTPa. ProFTPd
ProFTPd est un serveur FTP libre, puissant et parfaitement sécurisé
Distribué selon les termes de la licence GNU GPL
Bien documenté et la plupart des configurations sont proches de celles des exemples fournis avec le logiciel
Son unique fichier de configuration, proftpd.conf, utilise une syntaxe similaire à celle d‘Apache permettant ainsi d'homogénéiser les fichiers de configuration
36
Le logiciel permet de configurer plusieurs serveurs FTP virtuels et a la possibilité d'être utilisé dans un environnement dédié (chroot)
Il peut être lancé comme un démon ou comme service inetd
ProFTPd est compatible IPv6
Son architecture est modulaire, ce qui a permis d'écrire des extensions pour le support de la cryptographie SSL/TLS (protocole FTPS) et l'extension de l'authentification via des bases RADIUS, LDAP ou SQL
Le module SQL permet, en outre, le stockage en base de données des opérations effectuées sur le serveur FTP
La version 1.3.2 apporte également, via le module mod_sftp, le support des protocoles SFTP et SCP issus de SSH
7. Serveur FTP (Suite)a. ProFTPd
37
7. Serveur FTP b. VsFTPd
VsFTPd, forme raccourcie de Very Secure FTP Daemon, est un serveur FTP libre simple et sécurisé
Il a été développé dans l'optique de la meilleure sécurité possible afin de combler les failles des serveurs FTP classiques
Il bénéficie de toutes les options habituelles des serveurs FTP classiques (proFTPd, Pure-FTPd...) et prend en charge l’IPv6 ainsi que SSL
Contrairement aux autres serveurs FTP, aucune faille de sécurité n'a jamais été remarquée dans VsFTPd Ce serveur est notamment utilisé à grande échelle par des
entreprises
38
La configuration par défaut de VsFTPd est très restrictive : Seul le compte anonyme est autorisé à se connecter au
serveur, et en lecture seule Les utilisateurs ne peuvent accéder qu'à leur compte
Fonctions de VSFTPd : Configuration accessible Utilisateurs virtuel Adresses IP virtuelles Limitation de la bande passante IPv6 Support du chiffrement au travers de SSL intégré Il est distribué selon les termes de la licence GNU GPL
7. Serveur FTP (Suite) b. VsFTPd
39
7. Serveur FTPc. Pure-FTPd
Ce programme (Pure-FTPd) sous licence BSD intègre depuis sa conception l'aspect sécurité Il propose l'exécution avec séparation des privilèges et peut s'exécuter
en environnement non-root en exécutant sa propre version de l'appel chroot()
Pure-FTPd propose comme fonctionnalités: le contrôle de la bande passante, l'établissement de quotas de téléchargement, les alias de répertoires, la création d'hôtes virtuels
On peut également afficher des messages personnalisés (bannières et fortunes) lors de la connexion des utilisateurs
Pure-FTPd peut exécuter un script à la suite d'une upload
40
Il peut également refuser des utilisateurs si la charge système devient trop importante
Il supporte également la création d'utilisateurs virtuels n'ayant pas de compte sur le système. Une option anti-warez permet de réagir face à un répertoire accessible en écriture
Les utilisateurs peuvent utiliser les protocoles SSL/TLS afin de chiffrer l'envoi de leur identifiant et mot de passe vers le serveur (nécessite un client FTP compatible)
Plusieurs serveurs FTP Pure-FTPd indépendants peuvent s'exécuter de façon concurrente sur la même machine
7. Serveur FTP (Suite)c. Pure-FTPd