7 Manipulation de protocoles de services Internet
Nous allons maintenant voir les grands protocoles Internet bien plus
en détail.
7.1 Création d'un service Internet trivial
Ecrivez un petit script shell (pas plus de trois lignes en dehors
des commentaires) implantant un service Internet très simple donnant
la date et l'heure de la machine sur laquelle il tourne (commande
date). Ce service doit écouter sur le port 4000. Pour réaliser
le service utilisez la commande nc du paquetage netcat
(utilisez la page de manuel pour étudier en particulier l'option
-l).
7.2 Manipulation des protocoles simples
En utilisant une connexion par telnet ou nc, trouvez quel
type de serveur web utilisent les sites www.polytech-lille.fr,
www.univ-lille1.fr, www.microsoft.com et www.wanadoo.fr.
Envoyez un message sur la boite aux lettres de votre binôme sans utiliser
de client de messagerie autre que nc. Récupérez ce message via
les protocoles pop puis imap en utilisant le même nc.
Récupérez le dernier article du groupe fr.petites-annonces.informatique
à partir du serveur news.univ-lille1.fr en utilisant telnet
ou nc.
7.3 Exercices sur le protocole FTP
Commencez par étudier le protocole FTP en lançant, sur votre machine virtuelle,
un renifleur réseau et en vous connectant sur le serveur de votre machine
virtuelle (installez un serveur FTP au besoin) à partir de la machine réelle.
Regardez comment FTP implante le listage de répertoires et la récupération des
fichiers.
Récupérez la liste des fichiers du répertoire /pub/linux/kernel/v2.4
sur le serveur FTP ftp.polytech-lille.fr sans utiliser de client FTP.
Vous aurez besoin de deux instances de l'utilitaire nc pour réaliser
cet exploit. Utilisez la même méthode pour déposer un fichier dans votre
répertoire racine par FTP.
Utilisez uniquement deux connexions avec nc pour transférer un fichier
du serveur FTP ftp.polytech-lille.fr vers votre répertoire racine
en utilisant le serveur FTP de votre machine.
7.4 Exercices sur le protocole DNS
Commencez par écrire un programme C lisant des tableaux d'octets en hexadécimal
(16 octets par ligne) et produisant sur la sortie standard le fichier binaire
correspondant à ces tableaux.
Composez une requête DNS pour connaître les RR liés à l'adresse
www.polytech-lille.fr sous la forme d'un tableau d'octets
(consultez la RFC pour connaître le format d'un paquet DNS).
En utilisant votre programme et
l'utilitaire nc envoyez la requête au serveur DNS de l'école. Décryptez
la réponse avec l'utilitaire od et analysez cette réponse.
Ecrivez un programme C permettant d'effectuer la résolution inverse en partant
d'une adresse IPv6 passée en unique argument. Ce programme analyse l'adresse
IPv6 et génère le paquet question DNS, il suffit alors de passer ce paquet
en entrée standard d'une commande nc pour obtenir le paquet DNS
réponse. Ecrivez un second programme C capable d'afficher l'éventuel nom
associé à l'adresse IPv6. Vous obtenez ainsi l'équivalent IPv6 de la commande
host pour la résolution IPv4 inverse en composant trois commandes
avec deux pipes shell.