• Aucun résultat trouvé

2Lecourrier `alamain TPn 3Protocoles:d´ecouverte1Exp´erimentationssurlesservicesr´eseau Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnne2010–2011,2 semestre

N/A
N/A
Protected

Academic year: 2022

Partager "2Lecourrier `alamain TPn 3Protocoles:d´ecouverte1Exp´erimentationssurlesservicesr´eseau Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnne2010–2011,2 semestre"

Copied!
3
0
0

Texte intégral

(1)

Universit´ e Paris Diderot – Paris 7 Programmation r´ eseau L3 Informatique Anne 2010–2011, 2

`eme

semestre

TP n

3

Protocoles : d´ ecouverte

1 Exp´ erimentations sur les services r´ eseau

1. D´eterminez le port associ´e au service discard.

2. En utilisant successivement les commandes host, nslookup et dig, d´eterminez l’adresse IP de www.free.fr, puis de www.informatique.univ-paris-diderot.

fr. Quels sont les noms d’hˆ otes associ´es aux adresses obtenues ?

3. ` A l’aide de la commande dig, d´eterminer les serveurs de courrier ´electronique du r´eseau

informatique.univ-paris-diderot.fr et free.fr. (voir la page de ma- nuel de dig).

4. ` A l’aide de la commande telnet, d´eterminez l’heure (service daytime, RFC 867) qu’il est sur la machine nivose et lucien.

5. ` A l’aide de la commande finger, affichez les informations de quelques utili- sateurs (RFC 1288).

2 Le courrier ` a la main

Le protocole SMTP (Simple Mail Transfer Protocol, RFC 2821, port tcp 25) sert ` a envoyer du courrier ´electronique (e-mail) ` a des utilisateurs locaux ou distants. Il s’agit d’un protocole dit requˆ ete-r´ eponse, dans lequel le dialogue consiste pour le client ` a envoyer une commande au serveur puis attendre la r´eponse de ce dernier, et de recommencer.

Remarque :

les techniques utilis´ees dans cette partie permettent, en th´eorie, d’envoyer des mails en se faisant passer pour quelqu’un d’autre.

Une telle activit´e est totalement ill´egale, et nous vous d´econseillons fortement de mettre ` a l’´epreuve les capacit´es d’investigation de nos administrateurs syst`eme et r´eseau.

Les commandes SMTP les plus utiles sont les suivantes :

HELO machine

: ` a envoyer au d´ebut d’une connexion SMTP. La chaˆıne machine est le nom de l’hˆ ote ` a partir duquel vous vous connectez.

MAIL FROM: utilisateur

: commence une transaction SMTP visant ` a en- voyer un message. La chaˆıne utilisateur est l’adresse de l’auteur du message (de la forme <user@domain>).

1

(2)

RCPT TO: utilisateur

: d´eclare un destinataire de la transaction courante ; peut ˆetre r´ep´et´ee plusieurs fois.

DATA

: d´eclare le d´ebut de l’envoi du message, lequel commence ` a partir de la ligne suivante et se termine par une ligne ne contenant que le caract`ere point

.

tout seul sur une ligne.

QUIT

: termine une connection SMTP.

Le message pass´e ` a la commande

DATA

doit avoir le format d´efini par le document de normalisation RFC 2822. Il doit commencer par une s´erie d’en-tˆetes (

From:

,

To:

,

Subject:

, etc.) suivis d’une ligne vide, suivie du corps du message lui-mˆeme.

1. En vous connectant directement au port SMTP d’une machine (par exemple nivose) ` a l’aide de la commande

telnet

, envoyez un mail ` a l’un de vos coll`egues.

2. R´ep´etez l’exp´erience pr´ec´edente en donnant des adresses diff´erentes dans l’enveloppe (commande

RCPT TO:

de SMTP) et dans le message (entˆete

To:

de RFC 822). Que se passe-t-il ?

3 Clients Java

En Java, il est possible d’ouvrir une connexion ` a un service de port donn´e sur une machine donn´ee en utilisant la classe java.net.Socket. Par exemple :

Socket s = new Socket(machine,port);

Les m´ethodes getOutputStream() et getInputStream() permettent de retrouver des flux d’entr´ees/sorties (respectivement de type OutputStream et InputStream) pour ´ecrire et lire sur cet objet de communication. De fa¸con ` a manipuler ces objets, regardez comment les utiliser avec les classes PrintStream, InputStreamReader et BufferedReader.

Ecrivez un programme Java qui se connecte au service ´ daytime d’une machine donn´ee en param`etre et r´ecup`ere la date pour l’afficher ` a l’´ecran.

4 Des applications de

pro

: mailer et wget

1. ´ Ecrivez un programme Java jmailer qui se connecte au service smtp du r´eseau et envoie un courrier ´electronique et qui lit et affiche les r´eponses du serveur (une r´eponse d’une ligne par

ordre

). N’oubliez pas de traiter les codes de retour attendus et d’afficher un message d’erreur si ils ne correspondent pas au bon comportement.

2. ´ Ecrivez un programme Java jwget qui prend en argument une URL (comme http://www.example.com/index.html), et r´ecup`ere la page WEB corres- pondante pour l’´ecrire dans le fichier correspondant (ici le fichier de nom index.html).

2

(3)

Pour r´ecup´erer le document d’URL http://machine/chemin il faut se connec- ter au service http sur la machine et envoyer la requˆete suivante :

GET /chemin

Attention :

Il est possible (comme ` a l’UFR) que la connexion directe ` a la machine soit interdite (pour des raisons de s´ecurit´e par exemple), dans ce cas votre fournisseur d’acc`es vous fournit g´en´eralement un interm´ediaire (serveur dit proxy). Si c’est le cas, il faut vous connecter sur le serveur interm´ediaire (` a l’UFR il s’appelle cache) et sur le port (` a l’UFR c’est le port 3128) qui lui correspond et envoyer la requˆete :

GET http://machine/chemin

Ceci pour faire en sorte que l’interm´ediaire effectue la requˆete ` a votre place et vous renvoie la r´eponse. . . Pour d´ecomposer une URL, nous vous conseillons de consulter la documentation de la classe java.net.URL.

Indication : La classe InetAddress vous permet d’avoir des informations sur la machine o` u vous ex´ ecutez votre programme, par exemple :

InetAddress.InetAddress.getLocalHost().getHostName();.

3

Références

Documents relatifs

Modi- fiez votre serveur pour que apr`es avoir v´erifi´e que le chemin de la requˆete com- mence par ”/” et ne contient pas la chaˆıne ”/../” 1 , il retourne au client le

Lancez la commande nc avec l’option -l 8080, cela ouvre un serveur sur votre machine locale sur le port 8080.. Tapez une ligne dans

Les hints prennent aussi le forme d’une structure addrinfo : vous pouvez indiquer des restrictions sur le type de socket que vous souhaitez utiliser (si vous n’avez aucune

Dans ce protocole, les informations binaires sont en g´en´eral cod´ees en paquets, et envoy´ees sur le r´eseau, l’octet de poids le plus fort en premier, c’est-` a-dire selon le

Ecrivez un programme Java ´ jdaytime qui se connecte au service daytime d’une machine donn´ ee en param` etre et r´ ecup` ere la date pour l’afficher ` a l’´ ecran.. Exercice

Lorsqu’il d´etermine que c’est n´ecessaire, le client SNTP envoie au serveur une requˆete sous forme d’un paquet UDP qui contient la date ` a laquelle ce message est transmis..

Testez votre serveur ` a l’aide d’un navigateur web et assurez-vous que votre programme est capable d’accepter plusieurs connections de suite.. Exercice 3 [Lecture

Dans ce protocole, les informations binaires sont en g´en´eral cod´ees en paquets, et envoy´ees sur le r´eseau, l’octet de poids le plus fort en premier, c’est-` a-dire selon le