2 Corrigé du DS du 20 mai 2000
Tous documents autorisés (y compris ordinateurs).
2.1 Manipulation de protocoles Internet
Imaginez, vous vous retrouvez en stage dans une entreprise où les dinosaures
n'ont pas encore complètement disparus. Vous n'avez accès qu'à un
ordinateur de type 8086 sur lequel agonise un vieil OS (Operating System).
Internet est disponible au travers d'un modem à 300bits/s et le seul
outil réseau dont vous disposez est un émulateur de terminal à la
telnet
. Bien sûr, ce logiciel antédiluvien n'autorisait qu'une
connexion sur le port 23 mais à l'aide d'un éditeur binaire vous avez
réussi à obtenir deux exécutables telnet110
et telnet25
qui permettent de se connecter respectivement sur le port 110 et
le port 25. Ce n'est pas tout, le logiciel d'émulation de terminal
n'est pas interruptible, il ne se termine que lorsque l'on se
déconnecte proprement de la station sur laquelle on s'est connecté
(e.g. par un exit
). Cela signifie que, par exemple, si vous
faites un cat
d'un fichier énorme vous n'avez plus qu'à attendre
la fin de l'affichage avant de pouvoir vous déconnecter. Il est possible
de réamorcer la machine mais alors vous en avez pour un quart d'heure,
le temps que la bête de course vérifie ses 2 Mo de mémoire bit par bit.
Maintenant que vos conditions
de travail sont précisées, venons en à votre mission. Votre entreprise vient
d'acheter un logiciel à prix d'or (pour le portable du patron) et la
clef de la licence a été envoyée sur la boite aux lettres de l'entreprise
(onkool@giveyourmoney.com
, identification onkool
, mot de
passe pazankor
). Vous devez trouver le message où se trouve
la clef et répondre à l'expéditeur du message (dont vous ignorez l'adresse)
pour obtenir un droit d'accès au support technique du logiciel. Malheureusement
cette boite aux lettres est la seule de l'entreprise et vous savez que le patron
a la fâcheuse habitude de se faire envoyer des messages contenant un exécutable
qui affiche une fleur en pot ou un feu d'artifice virtuels. Ces messages
frisent allègrement le méga-octet. Enfin vous devez faire cela en temps
limité puisque le chef veut pouvoir se servir de son logiciel (un truc
permettant de prévoir ses bénéfices sur ses stock-options) pour hier
(enfin il vous donne encore un quart d'heure).
Vous vous dites que ce n'est pas une situation réaliste ? Vous avez raison
la réalité est souvent bien pire.
Répondez aux question suivantes pour vous aider à remplir votre mission :
-
Combien de temps devrez vous approximativement attendre si
vous récupérez, par mégarde, un message contenant un exécutable ?
Une dizaine d'heures avec comme hypothèse un message d'un
méga-octet et un débit de 30 octets par seconde (300 divisé par 10,
certes il n'y a que 8 bits dans un octets mais il faut prendre en
compte un éventuel bit de stop et les entêtes dans les protocoles
TCP/IP).
- Pouvez-vous deviner l'adresse du serveur POP pour
la boite aux lettres que vous désirez consulter ?
Généralement le nom de la machine permettant de consulter
sa boite aux lettres via POP possède un alias de nom pop
, donc
ici le nom complet serait pop.giveyourmoney.com
.
- Donnez le script de la session permettant de se connecter
à la boite aux lettres et de trouver le nombre de messages reçus.
On peut imaginer une session comme ci-dessous :
> telnet110 pop.giveyourmoney.com
+OK midas Cyrus POP3 v1.5.14 server ready
user onkool
+OK Name is a valid mailbox
pass pazankor
+OK Maildrop locked and ready
list
+OK scan listing follows
1 2840
2 4120
3 1439
4 3517
5 1842
.
- Vous comptez 5 messages, comment procédez-vous pour trouver
le bon message en étant sûr de respecter les délais (pas plus
d'un quart d'heure pour trouver le message et y répondre) ?
Il ne faut surtout pas utiliser la commande retr !
Il faut taper la commande top i 0 pour chaque message i
et regarder le sujet du message (la commande top i 0
n'affiche que les entêtes du message). Éventuellement on peut
remplacer le 0 par, disons, 10 pour regarder le début
des messages si le sujet n'est pas explicite.
Il est aussi possible de s'aider des tailles des messages (données
par la commande list
) et de n'afficher que les messages
courts.
- Donnez le script vous permettant d'implanter le procédé
décrit plus haut (en supposant que le message cherché est le
troisième). Allez jusqu'à l'affichage du message de la clef
et à la déconnexion du serveur de messagerie.
On peut imaginer une session comme ci-dessous :
top 1 0
+OK Message follows
From: maman@alacampagne.fr
Subject: Bon anniversaire
etc.
.
top 2 0
+OK Message follows
From: toutcuir@rdv.minitel.com
Subject: Rendez-vous au parc, grand fou ...
etc.
.
top 3 0
+OK Message follows
From: picsou@parysilesous.com
Subject: Clef du logiciel WURZLUG
etc.
.
retr 3
+OK Message follows
From: picsou@parysilesous.com
Subject: Clef du logiciel WURZLUG
La clef est 0123456789
.
quit
+OK
Si on utilise la seconde solution, il faut juste transformer
les 3 top
en retr
et supprimer le quatrième retr
.
- Dans quelle partie du message trouvez-vous la clef du logiciel
? Même question pour l'adresse de l'expéditeur du message.
La clef se trouve dans le corps du message et l'adresse
dans les entêtes, plus exactement dans l'entête From:
ou
dans l'entête Reply-to:
.
- Trouvez l'adresse de la machine serveur de messagerie pour
le domaine
giveyourmoney.com
(il existe une méthode exacte
pour trouver cette adresse).
Soit giveyourmoney.com
correspond à une adresse
dans le DNS, soit il existe un enregistrement de type MX dans
le DNS correspondant à giveyourmoney.com
. Il faut donc
regarder si la commande host giveyourmoney.com retourne
une adresse. Si oui, on utilise cette adresse sinon on utilise
celle retournée par host -t MX giveyourmoney.com.
- Donnez le script permettant d'envoyer un message concernant
le support technique à l'expéditeur de la clef (en supposant que
son adresse est
picsou@parysilesous.com
).
On peut imaginer une session comme ci-dessous :
> telnet25 mailhost.giveyourmoney.com
220 midas ESMTP Sendmail 8.9.3 ready
helo dino
250 midas Hello, pleased to meet you
mail from: onkool@giveyourmoney.com
250 onkool@giveoyourmoney.com... Sender ok
rcpt to: picsou@parysilesous.com
250 picsou@parysilesous.com... Recipient ok
data
354 Enter mail, end with "." on a line by itself
Subject: Support technique
Veuillez valider le support technique. Merci
Le responsable technique d'ONKOOL.
.
250 MAA25122 Message accepted for delivery
quit
221 midas closing connection
2.2 Serveur X11
Dans la série les situations impossibles, voici l'épisode intitulé
"retour à la civilisation". Vous vous retrouvez sur une machine Linux
de l'EUDIL. Cette machine de nom minimax
possède une configuration
minimale mais avec, tout de même, un serveur X11. Vous souhaitez avoir sur
votre écran l'application xsql présente sur weppes
et une fenêtre
ouverte sur une session de la machine NT servntapp1
(certes il s'agit
d'une situation un peu tirée par les cheveux : qu'iriez vous faire sur
servntapp1
?). Malheureusement l'application Xnest
n'est pas
disponible sur minimax
, aussi vous allez devoir utiliser celle
d'une Lyderic
:
-
Donnez la liste des commandes à taper et des éventuelles
actions à faire avec la souris pour lancer xsql
de
weppes
sans permettre à quiconque connecté sur
weppes
d'utiliser votre écran (il est important de
savoir que minimax
n'utilise aucun montage NFS,
i.e. il a son propre espace disque y compris pour les
utilisateurs).
Sur minimax
, taper xauth list
,
récupérer la clef avec un copier souris, taper
rlogin weppes
pour se connecter sur weppes
.
Dans la session rlogin
sur weppes
taper
xauth add
et coller derrière la clef avec
la souris, valider la commande. Taper
export DISPLAY=minimax:0
, puis envoyer l'application
xsql
.
- Même question mais on suppose que le copier/coller à la
souris ne fonctionne plus sur
minimax
.
Sur minimax
, taper
xauth extract xauth.minimax minimax:0
.
Transférer le fichier xauth.minimax
sur weppes
en utilisant la commande ftp
.
Taper rlogin weppes
pour se connecter sur weppes
.
Dans la session rlogin
sur weppes
taper
xauth merge xauth.minimax
, puis taper
export DISPLAY=minimax:0
et enfin envoyer l'application
xsql
.
- Utilisez le
Xnest
de Lyderic12
pour obtenir
une session de servntapp1
sur votre écran. Donnez
la liste des commandes à taper pour arriver à vos fins
(cette fois vous vous contenterez de xhost pour
l'authentification X11).
D'abord permettre l'accès de Lyderic12
sur
l'écran minimax:0
en tapant xhost +Lyderic12
sur la station minimax
. Se connecter sur Lyderic12
par un rlogin
, taper export DISPLAY=minimax:0
dans
la session rlogin
et lancer la commande
Xnest :2 -query servntapp1
.
- Donnez les noms complets des deux écrans X11 affichés
sur
minimax
.
L'écran X11 principal se nomme minimax:0
et l'écran
du Xnest
s'appelle Lyderic12:2
, pas
minimax:2
car il s'exécute sur Lyderic12
et non
sur minimax
.
2.3 Question de réflexion
Le but est de transférer le fichier
ftp://ftp.eudil.fr/pub/linux/kernel/v2.2/linux-2.2.15.tar.gz
dans un sous-répertoire Kernel
du répertoire /tmp
utilisant
uniquement la commande telnet
(j'ai bien dit telnet
pas
nc
). Vous pouvez utiliser deux sessions telnet
simultanées
et comme je suis pas chien je vous donne les deux commandes à lancer :
-
Première fenêtre :
telnet ftp.eudil.fr 21
.
- Seconde fenêtre :
telnet <machine> 21
.
où <machine>
est la station lydericXX
, gayantYY
ou
phinaertZZ
sur laquelle vous êtes connecté. En comptant l'identification
et les quit
finaux vous avez une grosse douzaine d'ordres du protocole
ftp
à taper dans l'ensemble des deux sessions.
Vous n'avez pas le droit à autre chose que ces deux sessions telnet
!
L'idée est d'utiliser une session ftp
en mode actif et
l'autre en mode passif, c'est la session en mode passif qui va
remplacer la commande nc
utilisée pour implanter un
petit serveur TCP.
Voici le script de la session en mode passif (les commandes
tapée par l'utilisateur commencent par des lettres en majuscules) :
lyderic08:~$ telnet lyderic08 ftp
220 lyderic08.priv.eudil.fr FTP server ready.
USER <user>
331 Password required for rex.
PASS <pass>
230 User rex logged in.
MKD /tmp/Kernel
257 "/tmp/Kernel" new directory created.
CWD /tmp/Kernel
250 CWD command successful.
PASV
227 Entering Passive Mode (172,26,17,124,214,37)
STOR kernel.tar.gz
150 Opening ASCII mode data connection for kernel.tar.gz.
QUIT
221 Goodbye.
Voici le script de la session en mode actif (les commandes
tapée par l'utilisateur commencent par des lettres en majuscules) :
lyderic08:~$ telnet ftp.eudil.fr 21
220 pevele.eudil.fr FTP server (Version wu-2.6.0(1) ready.
USER ftp
331 Guest login ok, send your complete e-mail address as password.
PASS rex@
230 Guest login ok, access restrictions apply.
CWD /pub/linux/kernel/v2.2
250 CWD command successful.
PORT 172,26,17,124,214,37
200 PORT command successful.
RETR linux-2.2.15.tar.gz
150 Opening ASCII mode data connection for linux-2.2.15.tar.gz (16371764 bytes).
QUIT
221 Goodbye.