Reseau Securite Rapport

Embed Size (px)

Citation preview

  • Adrien Machado Anne 2002

    INGNIEURS 2000

    Filire Informatique et Rseaux 3me anne

    Scurit des rseaux

    COMPTE RENDU DE TP

    Professeur responsable : M. Sbastien Lelong

    1 - OPTION DU NOYAU ................................................................................................................................ 2 Pas de rponse au ping.................................................................................................................................. 2 Retirer le redirection de paquet..................................................................................................................... 2 Retirer marque de temps dans les paquets .................................................................................................... 3 Autre .............................................................................................................................................................. 3

    2 - DURCISSEMENT DES MOTS DE PASSE ............................................................................................. 3 Principes........................................................................................................................................................ 3 Test ................................................................................................................................................................ 3

    3 - TCPWRAPPER .......................................................................................................................................... 4 Principes........................................................................................................................................................ 4 Test de la restriction du service FTP............................................................................................................. 4

    4 - FIREWALLL .............................................................................................................................................. 5 Principes........................................................................................................................................................ 5 Script de configuration .................................................................................................................................. 6

    5 - IDS & SNORT............................................................................................................................................. 7 Principes........................................................................................................................................................ 7 Mise en place................................................................................................................................................. 7

    AUDIT DE SECURITE ................................................................................................................................... 8 CONCLUSION................................................................................................................................................. 8

  • Scurit des rseaux - 2 - Adrien Machado

    Le but de ce TP est de dcouvrir et configurer les principaux organes de scurit d'un rseau. Seules les configurations de bases sont rappeles mais des liens francophones permettent den appendre plus sur chaque sujet. Ainsi, nous verrons comment scuriser une machine, son accs et celui au rseau et l'utilisation de ses services. Puis, nous allons configurer des rgles de base d'un firewall avant de configurer un dtecteur d'intrusion. Nous finirons avec un audit pour vrifier la cohrence de nos rgles.

    1 - OPTION DU NOYAU Linux, qui est un freeware open source, est configurable souhait. De ce fait, la premire chose faire sur les machines d'un rseau, est de dire au noyau de ne pas faire certaines actions. Cela se fait, pour le protocole TCP/IP, en mettant des valeurs boolennes dans les fichiers situs dans /proc/sys/net/ipv4 Chacun permet d'indiquer une action prcise faire ou ne pas faire pour aider le moins possible les pirates. Le rle de la plupart des rgles est expliqu cette adresse : http://www.linux-france.org/prj/inetdoc/i/net/guides/Advanced-routing-Howto/Advanced-routing-Howto.v0.9-13.html En ce qui nous concerne, voyons des rgles de bases.

    Pas de rponse au ping Ralisation : echo 0 > icmp_echo_ignore_all Effet : quand cette option est 0, il ne se passe rien pour le demandeur (on est oblig d'arrter le processus) : # ping 192.168.220.112 PING 192.168.220.112 (192.168.220.112) 56(84) bytes of data. --- 192.168.220.112 ping statistics --- 216 packets transmitted, 0 received, 100% packet loss, time 215031ms Raison : la rponse un ping, qui peut tre demand par nimporte qui, contient diffrentes informations. Le fait dempcher les rponses permet donc de masquer lexistence dune machine ou tout simplement ses informations sensibles comme ladresse IP notamment. Cela permet aussi dviter de participer notre insu des attaques de deny of service par exemple. Exemple dinformations renvoyes avec un ping : # ping voila.fr PING voila.fr (195.101.94.80) 56(84) bytes of data. 64 bytes from janus-2-20.x-echo.com (195.101.94.80): icmp_seq=1 ttl=112 time=72.4 ms

    Retirer le redirection de paquet Ralisation : echo 0 > ip_forward Effet : aucun paquet ne sera transfrer par la machine Raison : il sagit dempcher que notre machine soit utilise notre insu comme un routeur. En effet, des pirates pourraient sen servir comme appui pour une attaque. Quel serait alors notre responsabilit ?

    Anne 2002

    IR 2000

  • Scurit des rseaux - 3 - Adrien Machado

    Retirer marque de temps dans les paquets Ralisation : echo 0 > tcp_timestamps Effet : la date nest plus renvoye par la machine Raison : le numro dun paquet est proportionnel l'heure de la machine. Ne pas renvoyer lheure ne permet donc pas un hacker connatre peu prs le numro des paquets en cours et de les substituer.

    Autre echo 0 > icmp_echo_ignore_broadcasts : permet dinterdire la rponse au broadcast icmp ce qui empche par exemple des attaques de deny of service trs facile faire en raison du flux engendr par ce broadcast.

    2 - DURCISSEMENT DES MOTS DE PASSE

    Principes Dans la scurit, il ne faut rien ngliger car cest une problmatique globale. En effet, rien ne sert dinstaller un firewall trs performant si quelquun peut physiquement accder au rseau par une machine. Le durcissement des mots de passe permet dune part dempcher la prise en main ou la pntration dune machine distance mais aussi sur place. On indique les rgles des mots de passe dans le fichier /etc/pam.d/passwd, sous la forme de ligne particulire indiquant un paramtre global et des paramtres complmentaires. Loption min=8 permet par exemple dexiger des mots de passe de 8 caractres minimum, loption retry=3 laisse que 3 essais lutilisateur pour entrer son mot de passe, difok=n force avoir au moins n caractres diffrents dans le nouveau mot de passe par rapport lancien. Les paramtres globaux sont par exemple pam_cracklib qui permet d'accepter ou de rejeter un mot de passe, si celui-ci se trouve dans un dictionnaire. Il permet aussi de vrifier que vous ne rutilisez pas le mme mot de passe. Tous ces paramtres sont dcrit clairement sur cette page francophone : http://www.ac-creteil.fr/reseaux/systemes/linux/outils-tcp-ip/Linux-pam.html

    Test Aprs avoir choisi sa politique de scurit de mot de passe et lavoir indique dans le fichier passwd, on va tester. NB : certaines lignes du fichier ne sont pas complmentaires et il ne faut donc pas les laisser en concurrence car on risque de voir appliquer la rgle la moins restrictive. La premire chose faire pour tester est de relancer le service xinetd pour mettre en production les changements : pc13-51:/etc/init.d# ./xinetd stop Stopping internet superserver: xinetd. pc13-51:/etc/init.d# ./xinetd start Starting internet superserver: xinetd. Puis, on ajoute des utilisateurs : # adduser toto

    Anne 2002

    IR 2000

  • Scurit des rseaux - 4 - Adrien Machado

    Adding user toto... Adding new group toto (1010). Adding new user toto (1010) with group toto. Creating home directory /home/toto. Copying files from /etc/skel Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for toto ... Ensuite, on fait des su toto pour vrifier la bonne prise en compte de notre politique. Remarque : On doit commenter des lignes du fichier login car il fait peu prs la mme chose que passwd. Si les rgles ne sont pas pareilles dans les deux fichiers, on ne peut pas tester la cohrence de notre configuration.

    3 - TCPWRAPPER

    Principes Une machine peut offrir des services dautres machines demandeuses. Si on ne souhaite pas offrir ces services, on utilise TCPWRAPPER. Cela est trs utile pour sassurer de la productivit des salaris, de conserver de la bande passante, ou encore de diminuer les risques de piratage. Un trs bon exemple de service restreindre est le FTP pour empcher les abus du type utilisation abusive de la bande passante du rseau ou ne pas permettre de participer notre insu au Warez (utilisation de votre machine pour hberger et diffuser des contenus illgaux).

    Test de la restriction du service FTP En ce qui nous concerne, on va modifier le fichier /etc/xinetd (et pas hosts.allow et host.deny car nos machines ne les utilisent pas). Ce qui concerne le service ftp se trouve dans le bloc suivant : service ftp { socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/proftpd access_times = 8:00-10:00 17:00-20:00 only_from = 192.168.220.112 } Ici, Le service ftp est accessible uniquement entre 8h00 et 10h00 et entre 17h00 et 20h00, depuis la machine dont l'adresses IP est indique dans le champ only_from Pou tester, on doit (re)lancer le servie ftp sur notre machine : # ./proftpd restart Restarting professional ftp daemon../proftpd: line 57: kill: (2852) - Aucun processus de ce type proftpd. ...proftpd. done. Puis, on demande d'autres machines de lancer une session ftp pour tester les restrictions configures. La signification de tous les paramtres est accessible la page suivante : http://www.linuxfocus.org/Francais/November2000/article175.shtml

    Anne 2002

    IR 2000

  • Scurit des rseaux - 5 - Adrien Machado

    4 - FIREWALLL

    Principes Un firewall (ou pare-feu) est une machine hbergeant un logiciel ou une appliance (botier avec un logiciel) qui va filtrer intelligemment les flux rseaux le traversant. Les firewall basiques ne seront capables que dinterprter les couches basses du modle OSI alors que les plus intelligent pourront interprter les flux jusqu la couche 7. Dans ce TP, nous avons utilis un firewall performant quest IPTables sur lequel nous allons mettre en place une politique de scurit par une close-config loppose dune installation open-config . Dans la premire, on commence par tout interdire pour ouvrir uniquement ce dont on a besoin. La scurit sera meilleure mais le travail sera plus difficile et cela peut mme bloquer plus longtemps que prvu les utilisateurs. Dans la seconde, par contre, linstallation sera moins stressante puisque lon va restreindre pas pas les accs mais la scurit risque davoir des failles pour cause doublis (lerreur est humaine !). Pour des raisons pratique, on va faire notre configuration dans un script (voir page suivante). On va commencer par rinitialiser les rgles prsentes sur la machine et tout interdire. Ensuite, on va autoriser tous les flux locaux grce linterface lo (carte rseau virtuelle qui reprsente la machine local). Ltape suivante va consister autoriser le surf (entre et sortie puisque demande et rponse) par le proxy avec le port 3128, sans oublier dautoriser le DNS (rsolution de nomIP) qui se fait sur le port 53. On va aussi mettre en place le connexion tracking qui permet davoir un historique des connexions tablies permettant de dtecter dventuelles attaques par des flux en identifiant les flux non dsirs. La machine sera alors statefull et maintiendra une table de connexions (un fichier de log) : /proc/net/ipcontract. La structure est une ligne par connexion tablie et la structure de ces lignes est :

    protocol utilis id statut de connexion demande src = mon adresse dst = adresse du proxy sport = port utilise par le navigateur dport = adresse laquelle sera envoye la rponse Rponse attendue src = destination de la rponse dst = ip de la destination finale sport = port de destination dport = port du browser pour la rponse

    Le manuel dIPTables en franais est accessible cette adresse : http://www.delafond.org/traducmanfr/man/man8/iptables.8.html Toutes les commandes et paramtres sont dtaills et expliqus sur cette page : http://www.europe.redhat.com/documentation/rhl7.2/rhl-rg-fr-7.2/s1-iptables-options.php3 La configuration dIPTables par un exemple est accessible ici : http://lea-linux.org/reseau/iptables.php3

    Anne 2002

    IR 2000

  • Scurit des rseaux - 6 - Adrien Machado

    Script de configuration ####################################### # script de configuration de IPTables # ####################################### #!/bin/sh echo "Activation de la sauvegarde" #sauvegarde/restauration des regles # iptables-restore ~/iptables.rules echo "Suppression des regles existantes" #reinitialisation complete des regles de bases # iptables -F #on peut aussi vider "a la main" chaque table #on vide la table mangle (regles pour la modification de paquets) # iptables -t mangle -F #on vide la table nat (table utilisee pour la translation d'adresse) # iptables -t nat -F #on vide la table filter (table contenant toutes les regles de filtrage) # iptables -t filter -F echo "Mise en place des regles par default" #on accepte tout ce qui vient sort et entre de l'interface lo (interface pour communiquer avec la machine) = flux locaux # iptables -A INPUT -i lo -j ACCEPT # iptables -A OUTPUT -o lo -j ACCEPT #on accepte sur l'interace eth0 les plux entrant en tcp par le proxy # iptables -A INPUT -i eth0 -p tcp --sport 3128 -j ACCEPT #on accepte sur l'interace eth0 les plux entrant en tcp pour le DNS (port 53) # iptables -A INPUT -i eth0 -p tcp --sport 53 -j ACCEPT #on accepte sur l'interface eth0 les plus sortant en tcp avec le port 3128 (par le proxy) # iptables -A OUTPUT -o eth0 -p tcp --dport 3128 -j ACCEPT #on accepte sur l'interface eth0 les plus sortant en tcp avec le port 53 (pour le DNS) # iptables -A OUTPUT -o eth0 -p tcp --dport 53 -j ACCEPT # on accepte et fait les logs des connexions entrantes sur l'interface eth0 dont le statut est established (connexions etablies) # iptables -A INPUT -i eth0 -m state --state ESTABLISHED -j ACCEPT echo "on interdit tout" #on interdit les flux entrants # iptables -P INPUT DROP #on interdit les flux sortants # iptables -P OUTPUT DROP #on interdit les forward (regle appliquee pour les paquets passant par notre firewall) # iptables -P FORWARD DROP

    Anne 2002

    IR 2000

  • Scurit des rseaux - 7 - Adrien Machado

    5 - IDS & SNORT

    Principes IDS est un dtecteur d'intrusion pour un systme. Il vrifie si des fichiers ont t modifis et avertit ladministrateur systme si cest le cas. SNORT est un dtecteur dintrusion pour un rseau. On lui indique quelle plage dadresse il doit couter et averti ladministrateur lorsquun vnement survient. Il sagit donc de protections posteriori et donc un peu tardives mais tout de mme intressantes si la ractivit de ladministrateur est bonne et si des sauvegardes sont faites rgulirement.

    Mise en place On commence par supprimer le fichier /etc/snort/local.rules qui contient peut-tre la rponse ;-) Gnralement, SNORT recherche les signatures d'attaques connues. Ici, nous allons juste rechercher la chane "jesuisunvilainhacker" qui devra dclencher une alerte. Pour cela, on met dans le fichier de configuration (local.rules) la chane suivante : alert tcp any any -> 192.168.220.0/24 any (content:"jesuisunvilainhacker";msg: "ALERTE !!! Intrusion detectee";) On indique tout simplement que l'on surveille le flux tcp et que tous les paquets ayant nimporte quelle adresse de source, venant de nimporte o, destination du rseau local (d'adresse 192.168.220.0 et de masque reprsent par 24 = classe C) et contenant la chane "jesuisunvilainhacker", dclencheront une alerte. Une alerte correspond lcriture dans le fichier de log du message dfinit. Une fois le fichier enregistr, on lance SNORT: /etc/snort# Log directory = /var/log/snort Initializing Network Interface eth0 --== Initializing Snort ==-- . . . --== Initialization Complete ==-- -*> Snort!

  • Scurit des rseaux - 8 - Adrien Machado

    On voit alors dans le fichier de log /var/log/snort/alert : [**] [1:0:0] ALERTE !!! Intrusion detectee [**] 12/19-12:45:14.910225 192.168.220.113:1536 -> 192.168.220.112:25 TCP TTL:64 TOS:0x10 ID:2745 IpLen:20 DgmLen:62 DF ***AP*** Seq: 0xDECEF2DB Ack: 0xDEA55BC3 Win: 0x16D0 TcpLen: 20

    AUDIT DE SECURITE Aprs avoir configur nos rgles de scurit, on va pouvoir les tester avec des outils logiciels. NMAP permet de vrifier si tous les ports ont bien t ferms. NESSUS quant lui est un outil beaucoup plus complet puisquil inclut NMAP mais permet aussi de tester des attaques connus sur un systme. Pour cela, on commence par lancer le dmon, puis le logiciel. On y indique un client tester, on choisit la liste des attaques lancer, on choisit/prcise ventuellement des options et on lance Sur le client, on peut visualiser ces attaques avec un tail du fichier de log. Aprs le scan, NESSUS affiche un rapport et indique en plus comment rsoudre les problmes.

    CONCLUSION Avec ce TP, nous avons appris mettre en place concrtement les rudiments de la scurit dune machine et dun rseau. Nous avons aussi test des outils daudit permettant didentifier les menaces. Les liens donns permettent dapprofondir ltude. Ce compte-rendu sera donc un trs bon support pour un responsable scurit dbutant.

    Anne 2002

    IR 2000

    INGNIEURS 2000Scurit des rseaux

    COMPTE RENDU DE TP1 - OPTION DU NOYAUPas de rponse au pingRetirer le redirection de paquetRetirer marque de temps dans les paquetsAutre

    2 - DURCISSEMENT DES MOTS DE PASSEPrincipesTest

    3 - TCPWRAPPERPrincipesTest de la restriction du service FTP

    4 - FIREWALLLPrincipesScript de configuration

    5 - IDS & SNORTPrincipesMise en place

    AUDIT DE SECURITECONCLUSION