Cahier TP Securite Reseaux Iessa Sicdoc
Cahier TP Securite Reseaux Iessa Sicdoc
Cahier TP Securite Reseaux Iessa Sicdoc
1 2 3 4 5 6
Configuration rseau dun routeur filtrant Utilisation des rgles de filtrage ACL Utilisation de linterface ASDM pour le filtrage des donnes par lintermdiaire du CISO PIX Utilisation de IPTABLES pour le filtrage des donnes par lintermdiaire dun routeur logiciel LINUX Outils daudit rseau Outils de dtection dintrusion
Remarques prliminaires
Pour ce TP, chaque binme travaille sur un lot isol et dispose de trois PC Linux et un PC Windows XP quips de deux cartes Ethernet. Chaque lot est dot de deux HUBs Ethernet ainsi que de deux SWITCHs Ethernet. Un routeur CISCO srie 1600 ainsi quun routeur Firewall CISCO PIX sont aussi disponibles. Pour la partie 1 du TP seuls 2 PCs linux, deux HUBs (ou SWITCHs au choix) rseau et le routeur Cisco seront ncessaires. Le troisime PC linux ninterviendra que dans les parties 2 et suivantes du TP. Toutes les commandes rseau (ifconfig, wireshark, iptables, snort) doivent tre excutes en tant que ROOT. Le mot de passe vous sera communiqu au dbut du TP. Attention !!! en tant que ROOT vous pouvez endommager gravement votre systme et hypothquer le bon droulement de votre TP, il est donc ncessaire de rflechir avant dexcuter toute commande en tant quutilisateur ROOT. Le compte rendu devra faire apparatre en clair la squence des commandes que vous aurez ralise ainsi que les captures dcran des situations que vous jugerez utiles de mentionner par crit. Toute commande ou capture dcran devra tre justifie et son fonctionnement explicit avec soin. Pour viter tout problme dune configuration de firewall existante dans votre lot, veuillez excuter le script de la partie 2 3.1.3 sur chacune de vos machines avant daller plus loin.
2. Paramtrage IP
La commande ifconfig permet de rcuprer les informations sur les interfaces rseaux de votre machine, utilisez la pour configurer les interfaces de vos deux machines afin de leur attribuer une adresse rseau valide. Il est vivement conseill de regarder le man de cette commande. Attention au choix des adresses rseaux qui doivent faire appartenir chaque machine des rseaux diffrents ! La configuration se fera sur linterface eth1 (carte rseau situe en bas de votre unit centrale). les rseaux utiliss sont les rseaux 192.168.1.0 et 192.168.2.0 le dernier chiffre de la partie hte de ladresse doit reprendre le numro de la machine G17-XX (par exemple machine G17-12 => @IP 192.168.X.12).
Essayer maintenant de faire communiquer les machines de votre lot. Terminez la configuration du routeur pour rentre possible cette communication.
4. Routes statiques
On veut maintenant faire en sorte que les deux rseaux, avec les caractristiques dfinies prcdemment soient capables de se voir. Pour raliser cela, on va mettre en place des routes statiques, par lintermdiaire de la commande route. Par exemple sur une des machines linux dextrmit on excute la commande : route add net 192.168.x.0/24 gw 192.168.y.100 eth1 Visualiser le rsultat laide de la commande route n. Remarque : si des routes statiques passant par eth0 persistent dans votre configuration, excutez la commande ifconfig eth0 down. Raliser ces commandes sur vos deux machines dextrmit et vrifier la connectivit entre ces deux machines laide de la commande ping.
conseill de commencer par une rflexion papier avant de se lancer directement sur la configuration. Nanmoins, il est possible deffacer une access-list errone. Pour cela, il faut utiliser la commande : no access-list <ACLnumber>
Log matches against this entry, including input Match packets with given precedence value Match packets with given TOS value
On vrifie la configuration
nantes(config-if)#exit nantes(config)#exit nantes#sh nantes#sh nantes#show run nantes#show running-config Building configuration... Current configuration: ! [/] ! interface Ethernet0 ip address 100.0.1.1 255.255.255.0 ip access-group 105 in no ip directed-broadcast ! interface Ethernet1 ip address 100.0.2.1 255.255.255.0 no ip directed-broadcast ! ip classless ! access-list 105 deny ip host 100.0.1.9 host 100.0.2.10 ! Rappel : pour effacer une commande : no access-list 105 access-list errone il faut utiliser la
Des exemples dACL sont disponibles dans le fichier ilot1_config_solution_cisco.txt situ sur le poste Windows XP de votre lot. Il est recommander de copier ce fichier et de ne pas travailler directement dessus.
Questions : 1. Quel est le rglage mettre dans lACL ? 2. Sur quelle interface faut-il lappliquer ? En entre ou en sortie ?
Remarque : il prcdentes. nexiste pas une rponse unique aux deux questions
2.1. Exercice 1
A laide des annexes A et B configurer le firewall CISCO PIX pour quil puisse servir de routeur entre les deux rseaux logiques prcdemment configurs. Vous configurerez dans un premier temps son interface ethernet 1 en mode commande (laison srie). Ainsi, la configuration du CISCO PIX se fera partir du poste Windows XP dans un premier temps avec le programme hyper-terminal puis dans un deuxime temps laide de ASDM. A laide dune connexion srie vous devez rinitialiser la configuration du CISCO PIX en lanant la commande : write erase. Confirmez puis lancez la commande : reload qui provoquera un redmarrage du CISCO PIX. Lorsque le firewall a redmarr, il vous propose un menu de pr configuration, acceptez linvitation.
Rpondez par dfaut aux questions poses, jusqu la saisie de l inside IP address .
L Inside IP address est ladresse de linterface ethernet 1 qui doit tre une adresse rseau appartenant un des rseaux logiques configurs dans la partie prcdente. Saisir galement le masque de rseau, le nom de votre firewall, le nom de domaine ainsi que ladresse de votre station de configuration qui est celle de la machine windows XP
Vrifiez votre configuration et validez en rpondant affirmativement la question use this configuration and write to flash . Vous terminerez la configuration de la deuxime interface laide de linterface graphique ASDM (cf. annexe. B).
2.2. Exercice 2
Une fois la configuration rseau mise en place, configurer le CISCO PIX pour quil serve doutil de filtrage pour permettre uniquement au trafic SSH de passer dun rseau lautre. Pour cela vous vous inspirerez de lannexe C qui dcrit la mise en place dune rgle de filtrage pour le protocole FTP.
3.1.1. Description
Iptables est le module noyau de linux grant le filtrage des paquets. Il peut donc constituer un bon pare-feu, tant sur une station de travail qu'en tant qu'quipement ddi. Iptables est constitue de 3 tables. La trame est reue par la carte rseau, qui dcapsule le paquet IP et le relaie au noyau. Le paquet va ensuite traverser la chane INPUT, puis la chane FORWARD et enfin, la chane OUTPUT juste avant son envoi la carte rseau. Par ailleurs, la table FILTER permet elle de traiter les paquets devant tre routs. Elle permet donc de rediriger des flux la vole, faire du NAT. . . Le filtrage est dfini sous la forme de rgles, aboutissant une action : DROP, ACCEPT, LOG, REJECT, MASQUERADE, DNAT, SNAT. . .
iptables -X : enlve les rgles utilisateurs iptables -L : liste les rgles iptables -P INPUT DROP : dfinit la police par dfaut pour la table concerne iptables -t XXX -F : enlve les rgles sur la table XXX. Vous utiliserez principalement les tables suivantes : o mangle : permet d'effectuer des traitements post et pr routage. o nat : pour la traduction d'adresses. Il existe deux types de chanes : POSTROUTING et PREROUTING, avec les cibles MASQUERADE (traduction d'adresse), DNAT (changement de l'adresse ou du port de destination), SNAT (changement de l'adresse ou du port de la source) iptables -A INPUT -i lo -j ACCEPT : ajoute une rgle dans la table principale INPUT qui autorise les paquets venant de l'interface loopback iptables -A FORWARD -i eth0 -o eth0 -s 192.168.100.0/24 -d 192.168.0.1 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT : accepte de relayer les paquets venant de l'interface eth0 du rseau 192.168.100.0/24 et sortant sur l'interface eth0 vers 192.168.0.1 si la connexion est nouvelle, dj tablie, ou relative une connexion dj tablie (utile pour les connexions FTP par exemple). iptables -N LOG_DROP : cre une nouvelle chane iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.0.1:22 : redirige tous les paquets TCP destins au port 2222 vers l'hte 192.168.0.1 sur le port 22
Pour plus de simplicit, vous pouvez crer un script regroupant toutes les rgles dfinies, lancer en une seule fois. Ceci vite de multiplier les fautes de frappe. Vous pouvez vous inspirer du script disponible sur chacun des ilts dans le rpertoire /home/eleve/SECRE/ilot1_config_stagiaires_iptables.txt. Il est impratif de copier ce fichier et de ne pas travailler directement dessus.
2.1. Exercice
Dtectez les ports rseaux ouverts (de 1 5000) sur votre client, et dtecter le systme d'exploitation distant (vous pouvez vous aider de nmap -h ou man nmap). Attention : le scan d'un hte est considr juridiquement comme une attaque rseau. Seul est autoris le scan sur un hte dont l'auteur est lui mme l'administrateur. Un scan doit tre considr comme un moyen pour raliser un audit, mais en aucun cas une attaque. Corrler les informations releves avec Wireshark pour dcortiquer le fonctionnement de cet outil.
3. Outil NESSUS
Nessus est un outil permettant de dtecter les failles d'un serveur. Il est vident que Nessus ne doit tre excut que sur un de ses propres serveurs afin de tester sa robustesse et sa protection aux attaques. Une attaque rseau est passible de peines de prison. Nessus est continuellement mis jour et possde actuellement plus de 10 000 plugins diffrents. Nessus se compose d'une partie serveur et d'une partie client. Le serveur ne devrait tre dmarr qu' la demande, mme s'il n'autorise que des connexions TLS et qu'une authentification par certificats est possible. En d'autres termes, il est conseill d'arrter le serveur lorsque l'opration souhaite est termine, afin d'viter que tout autre client s'y connecte, et dtecte ainsi les failles du rseau interne. Les versions 2.x sont opensource, les nouvelles versions 3.x sont maintenant devenues propritaires.
3.1. Exercice
Ralisez un scan de votre routeur logiciel et de votre machine cliente. Pour cela vous utiliserez le compte eleve et le mot de passe eleve spcifier dans le logiciel nessus. Corrler les informations releves avec Wireshark pour dcortiquer le fonctionnement de cet outil. Des vulnrabilits importantes ont-elles t dtectes ?
propose en tlchargement un grand nombre de rgles relatives aux vulnrabilits connues (une partie est payante, une partie gratuite). Remarque : pour que snort sexcute sans erreur il faut le lancer depuis le rpertoire /etc/snort. Vous pourrez observer les diffrentes rgles de snort dans le rpertoire /etc/snort/rules. Voici un exemple de rgle : alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS cmd.exe access"; flags: A+; content:"cmd.exe"; nocase; classtype:web-application-attack; sid:1002; rev:2;) Elle dtecte un paquet http venant de l'extrieur et destin un de nos serveurs webs contenant le mot cmd.exe (insensible la casse), classant l'attaque parmi les applications webs. La rgle dclenchera l'inscription de msg dans les logs (fichier /var/log/snort). Par ailleurs, sid et rev permettent d'identifier la provenant des rgles, et dfinit un numro de version. Vous pouvez regarder pour avoir d'autres exemples de rgles le fichier /etc/snort/snort.conf.
2. Exercices
Dans cette partie, vous allez tre mis en situation professionnelle dans le sens o un des objectifs pour vous sera dutiliser tous les moyens dinformation votre disposition (papier et lectronique) pour aller chercher de linformation sur lutilisation de cet outil nouveau quest Snort. Remarque : lautonomie et lesprit dinitiative dont vous ferez preuve lors de cette dernire partie seront particulirement recherchs. Tout dabord commencez par : Testez un scan de ports nmap vers une machine excutant snort. Observez les fichiers de logs de snort. Commentez le rsultat.
Lobjectif final de la manipulation est le suivant : Mettez en place lalerte suivante : une tentative de connexion (sur la machine dployant snort) laide du protocole ssh de la part du compte utilisateur eleve
Pour des raisons de scurit, l'interface utilisateur du cisco pix prsente deux niveaux d'accs aux commandes, le mode utilisateur (user EXEC) et le mode privilgi (privileged EXEC). L'accs au mode privilgi ncessite la saisie d'un mot de passe et ce n'est qu'aprs avoir accd ce mode, que la configuration du routeur est possible. A chaque mode correspond une invite spcifique. Lorsquon dmarre, le firewall on est en mode user EXEC. Pour avoir la liste des commandes disponibles du niveau dans lequel on se trouve, il suffit de faire ? : pix> ? (invite du mode user EXEC)
Session number to resume Open a terminal connection Disconnect an existing telnet session Turn on privileged commands Exit from the EXEC
List active telnet connections Set X.3 parameters on PAD Enter XRemote mode
Pour passer en mode privileged EXEC, il faut utiliser la commande enable. Le systme demande alors un mot de passe. Tapez la touche entre (pas de mot de passe) pix> enable Password: pix # ? (prompt du mode Privileged EXEC)
Exec commands: bfe For manual emergency modes setting clear Reset functions clock Manage the system clock configure Enter configuration mode connect Open a terminal connection copy Write running configuration to flash, network, or terminal . . .
x3 xremote
1.1.2.
1.1.3.
La commande configure
Pour pouvoir configurer le firewall, une fois en mode privilgi, il faut saisir la commande configure terminal. Lorsque les manips seront termines il faudra faire Ctrl-Z et copy running-config startup-config pour crire les modifications dans la mmoire. pix# configure terminal pix(config)# (invite du mode configure)
1.1.4.
Le prfixe de commande no :
Presque toutes les commandes sont annules avec l'utilisation du prfixe no suivi de la commande. exemple : ip routing met en place le routage IP no ip routing supprime le routage IP
Faire OK la fentre pop sans rien saisir. Activez le bouton Download ASM Launcher and Start ASDM
Vous devez avoir prsent sur votre bureau une nouvelle icne :
Double clic sur licne dinstallation, rpondez deux fois next puis install. Une nouvelle icne est prsente sur le bureau
2)
Premire utilisation
Lancer ASDM, saisissez ladresse IP de votre firewall et laissez le username et le password vide, si tout va bien, vous devez trouver linterface de gestion du cisco Pix.
Le menu de pr configuration ne nous a permis dactiver quune seule interface sur les trois physiquement prsentes sur lappareil, vous allez mettre en place linterface ethernet 0. Cliquez sur le bouton configuration puis choisir la ligne de linterface ethernet0 et excuter un double clic. Nommez linterface ethernet0 mefiance . Choisissez 0 comme niveau de scurit. Indiquez ladresse internet associe linterface
(2).
3.2.
Renommer ethernet1
La cration dune nouvelle rgle seffectue en cinq tapes 1 Choisir permit ou deny 2 choisir linterface source et indiquer ladresse du (ou des) hte(s) concern(s) 3 choisir linterface destination et indiquer ladresse du (ou des) hte(s) concern(s) 4 choisir si besoin le ou les protocoles source concerns 5 choisir si besoin le ou les protocoles destination concerns
TP Scurit rseau n2 :
Messagerie scurise Certificats OpenSSL IMAPS
CE TP ILLUSTRERA
1 2 3
Cration et manipulation de certificats numriques Configuration dun serveur de messagerie scuris Analyse de trafic applicatif chiffr
Remarques prliminaires
Ce TP est dans la continuit du TP ralis en tronc commun dans le cadre de la mise en place dun serveur mail SMTP. Vous utiliserez en particulier la mme configuration rseau ainsi que les mmes environnements (un serveur Linux et un client Windows XP ou Linux en fonction de votre trave). Au cours du TP de lan dernier nous avions configur un serveur SMTP et rcupr les mails sur ce serveur laide du protocole IMAP. Nous nous sommes aperu que les login et mots de passe transitaient en clair sur le rseau de la salle de TP. Pour remdier cette grosse faille de scurit nous allons authentifier et chiffrer lchange entre le serveur Linux et le client de mail XP laide de certificats et de lutilisation du protocole SSL associ SMTP et IMAP. Il est ncessaire de reconfigurer le serveur de mail SMTP basique avant de procder sa scurisation par lutilisation de certificats SSL. Pour cela reportez vous aux annexes A et B qui rsument les commandes excuter pour dployer un serveur de mail PostFix.
$ openssl req new -x509 nodes -out smtpd.pem -keyout smtpd.pem days 3650
Et il suffit de rpondre aux questions. A la fin, le certificat et la cl se retrouvent dans le fichier smtpd.pem . Pour vrifier que le certificat est valide, excutez :
$ openssl x509 -in smtpd.pem -text noout
Ce certificat va nous servir dans la partie suivante pour autentifier toute communication entre le serveur Postfix scuris et ses clients.
Rem : ici, les certificats seront placs dans un rpertoire ssl crer au pralable dans le rpertoire de configuration de Postfix. Relancez PostFix. 2- Observation du fonctionnement du service SSL Aprs avoir ralis cette configuration, connectez vous via telnet sur le serveur de mail et excutez la commande EHLO. Notez la rponse que vous fait le serveur.
Dans un deuxime temps, dsactivez loption TLS dans le fichier main.cf, relancez postfix puis relancez une connexion via telnet sur le serveur de mail. Quel est le message manquant qui indique que la connexion tait scurise au pralable et plus maintenant ?
Installation de Postfix
Le serveur de mail install par dfaut sur une Debian est Exim. Je vous propose de le remplacer par Postfix, qui est rput fiable et facile configurer :
Configuration de Postfix
Lors de l'installation du package, il vous pose des questions de configuration. A la premire question Type de configuration ? Rpondez Pas de configuration. Une fois qu'il a fini l'installation du package, lancez la commande suivante pour relancer la procdure de configuration (cette astuce permet d'avoir un assistant de configuration plus dtaill) :
# dpkg-reconfigure postfix
Au deuxime cran, quand il vous redemande Type de configuration ? Rpondez cette fois Site Internet. Ensuite, acceptez tous les paramtres qu'il vous propose par dfaut ! Notez bien les infos apparaissant dans la console lissue de cette phase de configuration initiale.
1. main.cf
La configuration de Postfix se fait dans le fichier /etc/postfix/main.cf. Dans notre exemple, le serveur s'appelle facteur et son domaine localhost. Une petite note sur la configuration : la variable mynetworks est cruciale pour le bon fonctionnement de postfix, autorisant les plages d'adresses mentionnes cidessous. command_directory = /usr/sbin daemon_directory = /usr/lib/postfix program_directory = /usr/lib/postfix setgid_group = postdrop append_dot_mydomain = no smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no delay_warning_time = 4h smtpd_client_restrictions = permit_mynetworks virtual_maps = hash:/etc/postfix/virtual_maps myhostname = localhost alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = localhost.salletpg17 mydestination = salletpg17, localhost, localhost.salletpg17 relayhost =
mynetworks = 127.0.0.0/8, 192.168.1.0/16 mailbox_command = maildrop mailbox_size_limit = 0 recipient_delimiter = + Notez que j'autorise ici localhost, salleg17 et localhost.salleg17 comme domaines. Cela veut dire que postfix laissera passer tout mail venant de ces domaines vers l'extrieur. Une fois que vous avez personnalis le fichier main.cf en lisant les commentaires contenus dans le fichier, il faut dire Postfix de relire sa configuration :
# /etc/init.d/postfix reload
2. Les alias
Les alias permettent de faire des correspondances entre des adresses mails et des comptes locaux, d'autres adresses mails ou encore des commandes excuter. Ils sont dfinis dans le fichier /etc/aliases. La syntaxe de ce fichier est trs simple :
# /etc/aliases # Fichier d'alias mail # NE PAS OUBLIER d'excuter "newaliases" aprs chaque modification # Fait suivre le mail reu l'adresse <alexis.delattre@nom_de_domaine> # au compte local "alexis" : alexis.delattre: alexis # Fait suivre le mail reu l'adresse <toto@nom_de_domaine> # l'adresse <[email protected]> : toto: [email protected] # Fait suivre le mail reu l'adresse <machin@nom_de_domaine> # aux comptes "user1" et "user2" et l'adresse <[email protected]> : machin: user1,user2,[email protected] # A la rception d'un mail l'adresse <bruit@nom_de_domaine>, # excute la commande "/usr/lib/ecartis/ecartis -s bruit" : bruit: "|/usr/lib/ecartis/ecartis -s bruit"
Normalement, on dfinit aussi dans ce fichier quel compte local (ou quelle adresse) le serveur de mail doit faire suivre le mail destin l'utilisateur root. En effet, comme il n'y a pas besoin d'avoir tous les pouvois pour lire le mail du root, il serait absurde (et mme dangereux) de lire les mails du root en tant que root. Il est prfrable de faire suivre le mail du root vers un autre compte ou une autre adresse. Il faut galement faire des alias pour les adresses postmaster et abuse, qui sont deux adresses standards pour pouvoir joindre les administrateurs du serveur de mails d'un domaine. Par exemple, si vous utilisez un compte local admin pour lire les logs et les mails d'administration, ajoutez les lignes suivantes au fichier d'alias :
root: postmaster: admin admin
abuse:
admin
Ensuite, excutez la commande suivante pour qu'il re-gnre la base de donne d'alias contenue dans le fichier /etc/aliases.db (ne pas oublier d'excuter cette commande aprs chaque modification du fichier /etc/aliases) :
# newaliases
Cette commande est quivalente la commande postqueue -p. : Force Postfix ressayer d'envoyer les mails en attente d'envoi immdiatement
% postqueue -f
O mail_ID est l'identifiant du mail dans la queue (il apparat gauche dans la sortie de la commande mailq).
Lors de l'ouverture de la session SMTP, la premire commande envoyer est la commande HELO suivie d'un espace (not <SP>) et du nom de domaine de votre machine (afin de dire "bonjour je suis telle machine"), puis valider par entre (not <CRLF>). Depuis avril 2001, les spcifications du protocole SMTP, dfinies dans le RFC 2821, imposent que la commande HELO soit remplace par la commande EHLO. La seconde commande est "MAIL FROM:" suivie de l'adresse email de l'expditeur. Si la commande est accepte le serveur renvoie le message "250 OK" La commande suivante est "RCPT TO:" suivie de l'adresse email du destinataire. Si la commande est accepte le serveur renvoie le message "250 OK" La commande DATA est la troisime tape de l'envoi. Elle annonce le dbut du corps du message. Si la commande est accepte le serveur renvoie un message intermdiaire numrot 354 indiquant que l'envoi du corps du mail peut commencer et considre l'ensemble des lignes suivantes jusqu' la fin du message repr par une ligne contenant uniquement un point. Le corps du mail contient ventuellement certains des en-ttes suivants : o Date o Subject o Cc o Bcc o From Si la commande est accepte le serveur renvoie le message "250 OK"
Les spcifications de base du protocole SMTP veulent que tous les caractres transmis soient cods en code ASCII sur 7 bits et que le 8me bit soit explicitement mis zro. Ainsi pour envoyer des caractres accentus il faut faire recours des algorithmes intgrant les spcifications MIME :
base64 pour les fichiers attachs quoted-printable (d'abbrviation QP) pour les caractres spciaux contenus dans le corps du message
Il est ainsi possible d'envoyer un courrier grce un simple telnet sur le port 25 du serveur SMTP :
telnet smtp.enac.fr 25
(le serveur indiqu ci-dessus est volontairement inexistant, vous pouvez essayer en remplaant commentcamarche.net par le domaine de votre fournisseur d'accs internet) Voici un rcapitulatif des principales commandes SMTP Commande HELO (dsormais EHLO) MAIL FROM: RCPT TO: Exemple EHLO 193.56.47.125 Description Identification l'aide de l'adresse IP ou du nom de domaine de l'ordinateur expditeur
MAIL FROM: Identification de l'adresse de l'expditeur [email protected] RCPT TO: Identification de l'adresse du destinataire [email protected]
Corps du mail Sortie du serveur SMTP Liste des commandes SMTP supportes par le serveur
L'ensemble des spcifications du protocole SMTP sont dfinies dans le RFC 821 (depuis avril 2001, les spcifications du protocole SMTP sont dfinies dans le RFC 2821).
Poster un message
La connexion au serveur se fait sur le port 25 (SMTP) : telnet smtp.chez.mon.fai. smtp Trying 192.168.1.1... Connected to smtp.chez.mon.fai. Escape character is '^]'. 220 smtp.chez.mon.fai ESMTP Sendmail 8.9.3/8.9.3; Sun, 27 Feb 2000 15:58:15 +0100 On remarque tout de suite le ESMPT avec un "E" comme tendu : le serveur accepte le 8bits. Disons-lui bonjour en lui indiquant que nous aussi nous parlons le 8-bits couramment en rpondant ehlo (s'il nous dit simplement SMTP nous rpondrons HELO) suivi de notre nom de domaine. Le serveur n'est pas trop regardant sur la distinction majuscules / minuscules tant que l'on n'est pas dans les en-ttes ou dans le corps du message. ehlo chez.mon.fai 250-smtp.chez.mon.fai Hello [email protected] [192.168.1.2], pleased to meet you 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250 HELP On commence par crire l'enveloppe : mail from: [email protected] 250 [email protected]... Sender ok rcpt to: [email protected] [email protected]... Recipient ok data 354 Enter mail, end with "." on a line by itself Notons au passage que vous pouvez poster a) chez votre fournisseur destination de n'importe qui partir de chez vous, ou b) parfois sur un serveur smtp quelconque
destination d'un des clients du dit serveur, mais pas c) sur n'importe quel serveur pour n'importe qui partir de n'importe o (message du type 550 [email protected]... Relaying denied. Maintenant passons aux en-ttes - certains champs dont la date et le Message-ID seront rajouts par le serveur SMTP - en faisant bien attention la syntaxe (majuscule initiale, minuscule, pas d'espace avant ":" mais un espace aprs) puis au texte du message spar par une ligne blanche. Tout a se finit par une ligne ne comportant qu'un point ".", et l'on quitte par la commande quit si l'on a fini. From: [email protected] To: [email protected] Subject: test (de veau) blabla blabla . 250 WAA11355 Message accepted for delivery quit 221 smtp.chez.mon.fai closing connection Connection closed by foreign host. Un certain nombre d'en-ttes sont classiquement reconnus par les logiciels de courrier, on aura par exemple : Organization: bof X-Mailer: Linux netkit-telnet 0.14 On vitera soigneusement de mettre des accents dans les en-ttes.
list 2 2 778 Ci-dessus, nous venons de voir comment se connecter (commandes USR et PASS), comment avoir le total des messages (commande STAT) et quelques dtails (commande LIST avec ou sans le numro du message). Maintenant lisons le courrier : RETR 1 +OK message 1 (780 octets): Return-Path: <[email protected]> Received: from [blabla chemin suivi par le message] From: [email protected] <Gros Titi> To: [email protected] Subject: Bonjour Date: : Thu, 17 Feb 2000 21:38:05 +0100 Message-ID: <[email protected]> blabla blabla . Et si le message est trop long ? Demandons n'afficher que les 5 premires lignes du message numro 2 : top 2 5 [les en-ttes + la ligne blanche + les 5 premires lignes qui suivent] Si le message est long, faire top 5 puis top 25 puis top 45 etc. Et l'on quitte proprement (les messages lus restent dans la bote aux lettres) : quit +OK pop3.chez.mon.fai POP3 Server (Version 1.006d) shutdown. Connection closed by foreign host. Finissons en disant que l'accs aux serveurs SMTP est encore moins scuris que celui aux serveurs POP3, il n'y a mme pas de mot de passe...