You are on page 1of 33

TP Scurit rseau n1 :

Firewalls et outils daudit rseau


CE TP ILLUSTRERA

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

IESSA SIC - Dure : 6H Octobre 2009

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.

Partie 1 : configuration rseau minimale et routage 1. Branchement et dcouverte du matriel


Connectez chacune de vos machines un des deux hubs (ou switchs) via une prise RJ45. Connectez ensuite le routeur Cisco sur chacun des hubs (ou switchs) en prenant soin de connecter chacune des interfaces du routeur sur un rseau disjoint.

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).

3. Utilisation dun routeur


Nous allons maintenant utiliser un routeur CISCO de la srie 1600 pour interconnecter les deux rseaux logiques.

3.1. Configuration basique


Le routeur le plus haut prsent dans la baie de brassage nest pas configur. On va donc commencer le configurer, par lintermdiaire de la liaison srie. Relier une des machines de llot la prise srie du routeur, lancer loutil kermit, signaler kermit lutilisation de la liaison srie par la commande set line /dev/ttyS0, la non vrification de la porteuse par la commande set carrier-watch off et demander la connexion par la commande connect. Allumer le routeur et attendre la connexion entre le terminal et le routeur. Configurez linterface 0 via la liaison srie.

3.2. Fin de la configuration du routeur


Connecter une machine et le routeur par telnet. On va maintenant configurer linterface ethernet 1 du routeur. Pour ce faire, il faut se placer en mode enable, puis demander passer en mode configuration par terminal (commande configure terminal), puis configurez linterface 1 pour quelle appartienne lautre rseau logique.

3.3. Vrification de la configuration du routeur


Maintenant que le routeur est configur, on va vrifier cette configuration par lutilitaire ping, disponible sur le routeur. A laide de cet utilitaire, essayez de joindre les machines du rseau. A ce niveau, le routeur doit tre capable de joindre toutes les machines.

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.

Partie 2 : notion de filtrage en scurit rseau


1. Filtrage sur les routeurs : dcouverte des ACL CISCO
Nous allons maintenant utiliser les possibilits de filtrage offertes par le routeur CISCO. Pour ce faire, nous nallons utiliser quune petite partie de ces capacits, en se limitant au filtrage de niveau rseau. Cette fonctionnalit est appele Access Control List.

1.1. Introduction des ACL CISCO


Les Access Control List (ACL) sont des listes de filtrage prsentes sur quasiment tous les routeurs CISCO. On dfinit des autorisations et des interdictions. Une ACL : - est dfinie par un numro, qui permet de classifier sa complexit (dun simple filtrage sur les adresses IP des filtres plus labors prenant en compte les ports sources et destinations des protocoles). - Par les rgles qui lui son propre - Par son application sur une interface en entre ou en sortie de cette dernire - Par un parcours squentiel lors de son application, avec une sortie ds quune condition est valide. Lordre des autorisation et des interdictions est donc trs important. Les possibilits de filtrage sont donc relles et trs complexes mettre en uvre. Le but de cette partie du TP est dautoriser le trafic SSH entre vos deux PCs Linux situs de part et dautre du routeur CISCO. Pour cela nous nous utiliserons une ACL tendue (numro > 99) agissant sur le protocole applicatif transport uniquement (ici SSH). Remarque : il est signaler que la configuration des ACL est assez dlicate et quil nest pas possible de changer lordre des autorisations et des interdictions. Il est donc vivement

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>

1.2. Paramtrage des ACL


Pour paramtrer les ACL, se mettre en mode ENABLE, puis en configuration terminal. On voit alors, par laide des commandes, quon a accs aux ACL. Le numro de lACL sera le 105. Une fois lACL paramtre, on attache cette ACL une interface, par la configuration de linterface : ip access-group 105 [in/out]. Ce qui suit est un exemple dune ACL qui peut tre positionne, elle est adapter en fonction de vos configuration rseaux (notamment les adresses IP qui apparaissent dans les ACL).
nantes(config)#access-list ? <1-99> IP standard access list <100-199> IP extended access list <1100-1199> Extended 48-bit MAC address access list <1300-1999> IP standard access list (expanded range) <200-299> Protocol type-code access list <2000-2699> IP extended access list (expanded range) <700-799> 48-bit MAC address access list nantes(config)#access-list 105 ? deny Specify packets to reject dynamic Specify a DYNAMIC list of PERMITs or DENYs permit Specify packets to forward nantes(config)#access-list 105 deny ? <0-255> An IP protocol number ahp Authentication Header Protocol [/] icmp Internet Control Message Protocol [/] ip Any Internet Protocol [/] tcp Transmission Control Protocol udp User Datagram Protocol nantes(config)#access-list 105 deny ip ? A.B.C.D Source address any Any source host host A single source host nantes(config)#access-list 105 deny ip 100.0.1.9 ? A.B.C.D Source wildcard bits nantes(config)#access-list 105 deny ip 100.0.1.9 0.0.0.0 ? A.B.C.D Destination address any Any destination host host A single destination host nantes(config)#access-list 105 deny ip 100.0.1.9 0.0.0.0 100.0.2.10 0.0.0.0 ? fragments Check non-initial fragments log Log matches against this entry

log-input interface precedence tos <cr>

Log matches against this entry, including input Match packets with given precedence value Match packets with given TOS value

On met l'ACL sur l'interface eth 0 en entre :


nantes(config)#interface ethernet 0 nantes(config-if)#ip access-group 105 ? in inbound packets out outbound packets nantes(config-if)#ip access-group 105 in

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

3. Une fois lACL mise en place, vrifier son bon fonctionnement.

2. Utilisation dun firewall matrielle : CISCO PIX


Dans cette partie, nous vous proposons de remplacer le routeur CISCO 1605 par un firewall routeur matriel CISCO PIX afin de profiter de la souplesse et de la puissance dutilisation de linterface CISCO ASDM. VERIFICATION prliminaire : assurer vous que le Java Runtime Environment (JRE) utilis sur le systme est bien la version 1.5, sinon linterface ASDM refusera de se lancer. Pour cela aller dans les paramtres Windows, cliquez sur Java et dans la fentre qui monte choisissez longlet Java, bouton Afficher, il suffit dactiver UNIQUEMENT la JRE 1.5. Dans un deuxime temps, vous pourez accder linterface ASDM via applet java au travers du navigateur Internet Explorer.

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 .

Trs Important : En aucun cas et quelque moment vous ne devez


changer quelque mot de passe qui soit.
Remarque : les firewalls sur lesquels vous allez travailler au cours de ce stage nont pas de mot de passe. Ce nest bien sr pas une pratique recommandable en exploitation.

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. Evolution de la configuration rseau


Nous allons maintenant dlaisser lutilisation du firewall routeur Cisco PIX et le remplacer par un routeur logiciel Linux, qui va nous permettre de tester les fonctionnalits de filtrage avanc ainsi que daudit rseau. Pour ce faire, vous utiliserez la troisime machine Linux votre disposition dans llot de TP et vous configurerez ses deux interfaces pour que chacune delle appartienne un des rseaux dfini au dbut de ce tp. Vrifier lactivitation du forwarding IP sur la machine qui vous sert de routeur logiciel (fichier /proc/sys/net/ipv4/ip_forward 1). A lissue de cette configuration, veuillez retester la connectivit entre les machines dextrmit laide de la commande ping.

3.1. Filtrage avanc avec iptables

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. . .

3.1.2. Commandes utiles


Les commandes suivantes vous seront utiles : iptables -F : enlve les rgles existantes sur la table principale (INPUT, OUTPUT, FORWARD)

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

3.1.3. Initialisation iptables


Avant de dmarrer il est ncessaire dactiver tous les changes sur les diffrentes tables pour ne pas induire de comportement parasite. iptables -X iptables P INPUT ACCEPT iptables P OUTPUT ACCEPT iptables P FORWARD ACCEPT iptables F INPUT iptables F OUTPUT iptables F FORWARD Commenter le rsultat de lexcution de ces commandes en vous aidant du rsultat de la commande iptables L avant et aprs lexcution du script ci-dessus. Remarque : cette configuration nest pas celle utilise par dfaut par les administrateurs rseau qui choisissent plutt de tout bloquer et dautoriser uniquement les connexions quils jugent ncessaire. Nanmoins pour des besoins de simplification des rgles nous ne suivront pas ce type de politique dans un premier temps.

3.2. Exercice basique


Faites en sorte dinterdire aux deux machines dextrmit de se pinguer.

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.

3.3. Exercice avanc


Maintenant nous allons nous mettre dans le cas de figure dun vrai administrateur rseau. Il est donc ncessaire dinterdire tous les changes sur les diffrentes tables pour ne pas induire de failles de scurit et de nautoriser que les connexions que lon a identifi. iptables P INPUT DROP iptables P OUTPUT DROP iptables P FORWARD DROP Nous proposons dans cette configuration que vous mettiez en place les rgles suivantes : Autoriser le ping entre les deux machines dextrmits. Autoriser les flux SSH au sein du rseau. De la mme faon qu la question prcdente, vous pouvez crer un script regroupant toutes les rgles dfinies, lancer en une seule fois et 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.

Partie 3 : outils de scurit rseau pour laudit


1. Outil d'analyse rseau : Wireshark
Le logiciel WIRESHARK va permettre de voir les trames Ethernet qui transitent sur le rseau pendant cette phase daudit. Nous utiliserons ce logiciel pour analyser le trafic Ethernet de la salle. Pour le lancer, tapez dans un terminal la commande wireshark. Cet outil nous permettra danalyser le comportement des outils daudit que nous allons maintenant utiliser. Il est ncessaire cet instant de revenir dans un configuration IPTables qui permette de laisser passer le trafic NMAP, pour cela excuter le script de la partie 2 3.1.3.

2. Scanner de port : NMAP


Nmap permet d'obtenir des informations sur le systme distant. La commande suivante permet de pinger un ensemble d'htes pour vrifier qu'ils sont atteignables : nmap -sP 192.168.X.1-255.

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 ?

Partie 4 : la dtection dintrustion avec SNORT 1. Description gnrale


Snort est un Network IDS. Il peut fonctionner en mode sniffer (capture le traffic et l'affiche), packet logger (capture le traffic et le stocke, i.e. agit en tant que sonde), NIDS (en temps rel sur le traffic captur). Bien entendu, il est conseill de rflchir la localisation la plus judicieuse d'un NIDS (avant ou aprs le firewall). Le noyau charge au dmarrage un ensemble de rgles configurables. Durant l'excution, il est charg de capturer les paquets. Les rgles d'analyse sont ensuite excutes, et selon les rsultats, plusieurs actions peuvent tre prises (ajout dans les logs, base de donnes. . .). Snort

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

ANNEXE A Configuration pix en mode commande


1 Ce que vous avez besoin de savoir sur les commandes pix SAS
1.1.
1.1.1.

Gnralits sur l'interface Utilisateur :


Deux niveaux d'accs aux commandes :

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)

Exec commands: <1-99> connect disconnect enable exit . . . where x3 xremote

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

Set X.3 parameters on PAD Enter XRemote mode

1.1.2.

Le prfixe de commande show :


Le prfixe show permet de visualiser la configuration du routeur. show running-config permet de visualiser la configuration globale du routeur. show ip interface visualise les informations ip sur chaque interface show version donne une quantit dinformations utiles show memory tat doccupation de la mmoire

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

ANNEXE B Configuration pix en mode graphique


1) Installation de ASDM
Sur la machine windows, fermer le terminal srie. Lancez firefox et saisir lurl : https://192.168.n.1 Le cisco pix vous envoie son certificat X509, acceptez le.

Faire OK la fentre pop sans rien saisir. Activez le bouton Download ASM Launcher and Start ASDM

Rapatriez le fichier dinstallation sur le disque

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.

La page daccueil (home) vous donne des informations.

3) Configuration des interfaces


3.1. Ajout de ethernet0

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).

Ne pas oublier de cocher le bouton enable interface et de faire apply .

3.2.

Renommer ethernet1

Editez la configuration de linterface ethernet1 et renommez linterface confiance

ANNEXE C Positionnement dune rgle de filtrage avec le pix en mode graphique


Ex : vous voulez quun serveur ftp protg soit accessible de part et dautre du rseau

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

Rgles de Mfiance vers Sas

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

IESSA SIC - Dure : 4H Octobre 2009

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.

Cration et manipulation d'un certificat SSL auto-sign


Tout dabord installez les paquetages manquant pour ce TP : openssl et postfix-tls laide de la commande apt-get install. Nous allons travaill dans un premier temps avec un certificat gnr en local. Dans ce cadre, il n'y a pas besoin d'autorit de certification, et ce certificat ne peut pas tre automatiquement accept par une application ; puisque quaucune autre ne le valide. Il est facile raliser en une ligne :

$ 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.

SMTP authentifi et scuris avec PostFix (SMTP over SSL)


Il est souvent pratique d'avoir une connexion SMTP scuris, avec SSL ou TLS. Cela permet entre autre de permettre aux mots de passe de ne pas passer en clair sur le rseau. Deux mthodes sont possibles pour faire du SMTP scuris. On peut faire passer une nouvelle connexion SMTP dans un tunnel SSL dj tablis au pralable, souvent sur le port 465 (SMTPS). La seconde mthode suit le protocole indiqu dans la RFC 2487. Dans ce cas, aprs s'tre connect au serveur SMTP, le client liste les extensions que celui-ci supporte. Si l'option STARTTLS est supporte, le client ngocie alors une connexion SSL. 1- Configuration de SMTP over SSL. Nous allons regarder la seconde mthode, c'est la plus simple mettre oeuvre. Vous reprendrez pour ce faire le cerficat gnr dans la partie I du TP. Ensuite, il suffit d'activer dans le fichier /etc/postfix/main.cf le support TLS/SSL de Postfix, et lui indiquer o trouver les certificats.
smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.pem smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.pem smtpd_tls_CAfile = /etc/postfix/ssl/smtpd.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes tls_random_source = dev:/dev/urandom

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 ?

IMAP authentifi et scuris avec (IMAP over SSL)


1- Configuration de IMAP over SSL. Faites un apt-get install courier-imap-ssl. Debian se chargera tout seul d'installer le reste des paquets ncessaires. Puis effacez les certificats *.pem afin d'en recrer avec les bonnes informations. Lancez ensuite un dpkg-reconfigure courier-imap-ssl et vrifiez la prsence de vos nouveaux certificats (la commande ls -l vous y aidera). Lancez ensuite les dmons, par un : /etc/init.d/postfix restart et de mme pour courier, courier-authdaemon et courier-imap-ssl. Vrifiez que tout est bien lanc par un netstat -an | grep 993 (c'est le daemon imap-ssl). 2- Aprs avoir ralis cette configuration, vrifiez que la rception des mails laide du protocole IMAP est scurise (protocole IMAPS) laide de votre client Thunderbird sous XP ou Linux (en fonction de votre trave) vers le serveur Linux. Que se passe-t-il de diffrent par rapport une connexion non scurise ? 3- Fermez le client Thunderbird et rouvrez le en prenant soin de lancer au pralable une capture sur le serveur de mail laide du logiciel Wireshark. Renouvelez ensuite la rception de vos mails et capturez en parallle le trafic rseau gnr lors de la phase dauthentification entre le serveur Linux et le client Windows XP ou Linux, quobservez vous dans la capture? 4- Retrouvez dans les diffrents paquets changs les diffrentes tapes de la connexion SSL telle quelle a t aborde en cours.

ANNEXE A : Configurer son serveur de mail local


Table des matires 1. Installation de Postfix 2. Configuration de Postfix Tous les ordinateurs sous Linux ont besoin d'un serveur de mail pour fonctionner correctement. Par contre, pour mettre en place un vrai serveur de mail destin recevoir des mails de l'extrieur, il faut des entres dans la DNS et surtout un machine en tat de fonctionnement 24h/24 et 7j/7. Ce chapitre explique seulement la configuration d'un serveur mail qui gre le mail en local et l'envoi des mails. La configuration d'un vrai serveur de mail avec les entres DNS qui vont avec est explique dans la partie Debian GNU/Linux en rseau de la documentation du systme Debian disponible en ligne sur http://www.debian.org.

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 :

# apt-get install --purge postfix

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 <titi@yahoo.fr> : toto: titi@yahoo.fr # Fait suivre le mail reu l'adresse <machin@nom_de_domaine> # aux comptes "user1" et "user2" et l'adresse <bidulle@exemple.org> : machin: user1,user2,bidulle@exemple.org # 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

3. Les commandes de base d'administration


Voici une petite liste des commandes de base d'administration de Postfix : Liste la queue de mails en attente d'envoi :
% mailq

Cette commande est quivalente la commande postqueue -p. : Force Postfix ressayer d'envoyer les mails en attente d'envoi immdiatement

% postqueue -f

Supprime un mail de la queue des mails en attente d'envoi :


# postsuper -d mail_ID

O mail_ID est l'identifiant du mail dans la queue (il apparat gauche dans la sortie de la commande mailq).

ANNEXE B : poster et lire son courrier avec telnet 1. Le protocole SMTP


Le protocole SMTP (Simple Mail Transfer Protocol, traduisez Protocole Simple de Transfert de Courrier) est le protocole standard permettant de transfrer le courrier d'un serveur un autre en connexion point point. Il s'agit d'un protocole fonctionnant en mode connect, encapsul dans une trame TCP/IP. Le courrier est remis directement au serveur de courrier du destinataire. Le protocole SMTP fonctionne grce des commandes textuelles envoyes au serveur SMTP (par dfaut sur le port 25). Chacune des commandes envoyes par le client (valide par la chane de caractres ASCII CR/LF, quivalent un appui sur la touche entre) est suivi d'une rponse du serveur SMTP compose d'un numro et d'un message descriptif. Voici un scnario de demande d'envoi de mail un serveur SMTP

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 expediteur@domaine.com RCPT TO: Identification de l'adresse du destinataire destinataire@domaine.com

DATA QUIT HELP

DATA message QUIT HELP

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 toto@ppp136.chez.mon.fai [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: toto@chez.mon.fai 250 toto@chez.mon.fai... Sender ok rcpt to: titi@chez.lui titi@chez.lui... 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 titi@hop.la... 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: toto@chez.mon.fai To: titi@chez.lui 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.

Lire son courrier


La connexion au serveur se fait sur le port 110 (POP3) : telnet pop3.chez.mon.fai pop3 Trying 192.168.1.1... Connected to pop3.chez.mon.fai. Escape character is '^]'. +OK pop3.chez.mon.fai POP3 Server (Version 1.006d) ready at <Sun Feb 27 10:13:32 2000> user toto +OK please send PASS command pass R5fg6Yh9 +OK 2 messages ready for toto stat +OK 2 1558 list +OK 2 messages; msg# and size (in octets) for undeleted messages: 1 780 2 778 .

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: <titi@chez.lui> Received: from [blabla chemin suivi par le message] From: titi@chez.lui <Gros Titi> To: toto@chez.mon.fai Subject: Bonjour Date: : Thu, 17 Feb 2000 21:38:05 +0100 Message-ID: <123456789.abcdefgh@mail.chez.lui> 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...

You might also like