TP sysres IMA2a5 2015/2016 G7

De Wiki de Projets IMA

Projet Système & Réseaux


INTRODUCTION

Le but de ce projet est de mettre en place une maquette réseau où chacun des étudiants aura un VLAN, créera sa machine virtuelle et réservera son nom de domaine qui sera par la suite sécurisé en https à l'aide d'un certificat ssl. Il s'agira également d'effectuer toute la configuration nécessaire à la mise en place de cette maquette que ce soit au niveau des routeurs, des commutateurs, ou des points d'accès wifi.

INSTALLATION DES SYSTEMES D'EXPLOITATION

Installation sur hp Stream x360


Avant d'accéder au bios du hp Stream x360 pour y installer un autre système d'exploitation, on configure rapidement le pc sous Windows pour lui donner un joli nom de poisson, le mien s'appellera Shark.
Nous allons travailler sur Linux, il faudra donc installer une image Debian sur le Shark, on prendra une Debian 8 amd64 que l'on téléchargera sur une clé usb. On se servira ensuite de cette clé pour booter le Shark sur linux.
Cela n'est possible que si on enlève la sécurité activée par défaut pour empêcher le pc de booter sur un OS non reconnu par le constructeur. Ce standard de sécurité est appelé secure boot, pour le désactiver:

  • Accéder au bios en appuyant sur F10 dès le démarrage du pc.
  • Dans boot configuration, aller sur boot secure et choisir disable.


On peut à présent insérer la clé d'installation de la Debian dans le pc Shark et le booter sur cette clé.


La configuration du réseau sera réalisée manuellement avec les informations suivantes:

  • Adresse IP: 172.20.103.0
  • Masque réseau: 255.255.255.0
  • Passerelle: 172.20.102.254
  • DNS: 193.48.57.178
  • Nom de la machine: Shark
  • Nom de domaine: deule.net
  • Nom d'utilisateur: pifou
  • Les mots de passes utilisés sont ceux habituellement utilisés pour pifou et superutilisateur


Configuration de la partition:
Pour pouvoir allouer de l'espace à notre Debian, on diminue l'espace dédié à Windows à 8Gb ce qui est plus que suffisant puisqu'on ne va pas s'en servir.
Pour la Debian, on suit la partition assistée et on choisit le plus grand espace disponible.


Configuration de l'outil de gestion des paquets:

  • Pays: France
  • Miroir de l'archive Debian: debian.polytech-lille.fr
  • Mandataire http: http://proxy.polytech-lille.fr:3128</i> </ul>
    L'installation de la Debian est à présent NORMALEMENT terminée, il suffit de rebooter.
    Au moment du redémarrage, on a voulu voir si Windows pouvait quand même se lancer normalement, mais au démarrage de Windows, ce dernier a détecté des données "parasites" et a fait un clean :) Toute la configuration précédemment réalisée est perdue. Cela dit, on arrive à voir qu'il existe encore une Debian, et après plusieurs tentatives de récupération, on se résigne à passer par F9 -> OS from EFI file -> entrer -> enter -> Debian à chaque démarrage du PC Shark pour aller sur linux.
    Je le vis bien :)

    Installation sur la VM

    Création de la VM


    1- Se connecter en ssh sur cordouan

    ssh root@cordouan.insecserv.deule.net


    2- Créer ma VM qui s'appellera Pegase avec une Debian (serveur virtuel xen)

    xen-create-image --hostname Pegase --ip 193.48.57.178 --dir /usr/local/xen


    3- Voir l'état d'avancement :

    tail -f /var/log/xen-tools/Pegase.log



    Connexion à la VM avec xl


    Avant de se connecter à ma VM, assigner plus de mémoire (1024M au lieu de 128M) et indiquer le bridge IMA2a5 dans le /etc/xen/Pegase.cfg


    Se connecter à la VM avec:
    xl console Pegase


    Modifier le fichier /etc/ssh/sshd_config, mettre: allow root login without password yes
    Modifier /etc/inittab/, mettre : 1:2345:[...]:tty1 hvc0

    Connexion à la VM avec ssh


    La connexion via le serveur virtuel xen n'est pas sécurisée, une fois que l'on aura configuré la sécurisation il faudra se connecter à la VM en ssh. Pour cela, on passe par une machine weppes avec: ssh nzerhoun@weppes puis on se connecte sur la VM avec : ssh root@193.48.57.178

    ARCHITECTURE RESEAU


    Le travail réalisé dans cette partie est complémentaire à celui des autres étudiants, pour pouvoir configurer l'architecture du réseau que nous mettons en place. Ma tâche consiste à configurer un des deux commutateurs utilisés pour ce projet. Il faudra donc créer des VLAN et configurer les ports FastEthernet et Gigabit.

    Configuration du commutateur en E306


    La première étape consiste à connecter le poste au commutateur en question, cette connexion est réalisée sur l'USB2, cette information est obtenue en tapant la commande ls /dev/ttyUSB* après que la liaison série ait été établie.
    Il a ensuite fallu se mettre en minicom afin d'administrer le commutateur en ligne de commande via son port console.
    On configure ensuite les noms et interfaces des différents VLANs utilisés.
    Le tableau ci-dessous liste les noms et interfaces associés aux VLANs.

    Nom Interface Mode
    2 Puduc FastEthernet 3/2 Access
    3 Nounours FastEthernet 3/3 Access
    4 Jeuno FastEthernet 3/4 Access
    5 Relax FastEthernet 3/5 Access
    6 John FastEthernet 3/6 Access
    7 Loki FastEthernet 3/7 Access
    8 Papy FastEthernet 3/8 Access
    10 Hub FastEthernet 3/10 Access
    131 Interco FastEthernet 3/31 Access




    SERVICE INTERNET

    Sécurisation de serveur DNS par DNSSEC

    Réservation nom de domaine


    Réserver le nom de domaine licornedacier.lol pour associer un nom de domaine à mon adresse IP. Pour cela, utiliser le registrar Gandi : http://www.gandi.net


    Configuration du DNS


    Dans /etc/resolv.conf, mettre l'adresse IP de localhost (127.0.0.1) plutôt que celle du serveur de l'école pour que par défaut, il ne passe plus par le serveur de l'école qui renvoie vers Gandi, mais qu'il aille directement sur licornedacier.lol

    Connexion du Shark en Wifi: serveur ssh


    Taper la commande ifconfig pour récupérer mon adresse MAC et la donner à Maxime qui m'autorise l'accès au wifi.
    De mon coté, faire: apt-get purge network-manager pour supprimer network-manager et ses fichiers de configuration.
    Préciser que je veux me connecter sur le réseau wifi de maxime qui est le T2: iwconfig wlan0 essid T2
    Reconfigurer mon interface network avec:

     
    auto wlan0<br />iface wlan0 inet static
    wireless-mode managed
    wireless-essid T2
    wireless-key 1111111111
    address 172.26.79.60
    netmask 255.255.240.0
    gateway 172.26.79.254
    


    Activer l'interface: ifup wlan0

    Sécurisation de site web par certificat


    Dans cette partie, il faut demander un certificat à Gandi. On commence par se connecter à la VM Pegase en ssh et installer dessus mailx qui est un éditeur de mail, et postfix, un serveur de messagerie.
    La commande pour les installer est la suivante:

    apt-get install bsd-mailx portfix


    On configure le mailname du postfix avec licornedacier.lol
    On vérifie également la bonne propagation du serveur DNS depuis une machine locale avec la commande:

    host --t any licornedacier.lol


    On édite ensuite le fichier /etc/aliasesen y ajoutant l'alias : admin: root afin de pouvoir envoyer les mail à admin@licornedacier.lol
    Pour vérifer que l'on a bien configuré la messagerie, on envoi un mail à l'adresse admin@licornedacier.lol, puis depuis la VM, on tape mailx et on voit que le message a bien été reçu.
    La configuration de la messagerie est nécessaire pour pouvoir sécuriser le site car à l'achat du certificat SSL, la confirmation est envoyée par mail.
    Pour obtenir le certificat, on procède de la manière suivante:

    • Sur gandi.net: acheter certificat SSL standard
    • Taper la commande permettant de générer la clé CSR depuis la VM:
      openssl req -nodes -newkey rsa:2048 -sha1 -keyout licornedacier.lol -out licornedacier.csr
    • Remplir le informations demandées en faisant bien attention de ne pas se tromper sur le common name: licornedacier.lol</pre>
    • Faire un cat de licornedacier.csr et copier/coller ce qu'il y a dedans dans le bloc réservé à la CSR sur gandi.net puis commander le certificat.
    • Consulter les mails avec mailx et entrer le code reçu pour confirmer la demande du certificat.
    • </ul>
      Pour prendre en compte le HTTPS, taper la commande:

      a2ensite 000-domain.tld-ssl
      a2enmod ssl
      service apache2 reload
      service apache2 restart
      

      Sécurisation du serveur DNS par DNSSEC


      On commence par modifier le fichier named.conf.options en y mettant: dnssec-enable yes, puis on créé le répertoire /etc/bind/licornedacier pour y stocker les clefs.
      On créé ensuite la clé asymétrique à l'aide de la commande:

      dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE -r /dev/urandom licornedacier.lol


      On recomme ensuite les clés générées:

      mv *.key licornedacier-ksk.key
      mv *.private licornedacier-ksk.private


      On créé ensuite la clé asymétrique de la zone pour signer les enregistrements:

      dnssec-keygen -a RSASHA1 -b 1024 -n ZONE -r /dev/urandom licornedacier.lol 


      On modifie le fichier db.licornedacier pour y inclure les clés publiques générées puis on signe les enregistrements de la zone en tapant la commande :

      dnssec-signzone -o licornedacier.lol -k licornedacier-ksk ../db.licornedacier licornedacier-zsk


      On modifie le named.conf.local en remplaçant file /etc/bind/db.licornedacier par file /etc/bind/db.licornedacier.signed
      On peut à présent communiquer la KSK à Gandi.
      Après à moment plus ou moins long, on peut vérifier que licornedacier et bien sécurisée à l'aide de site tels que https://www.zonemaster.fr/

      TEST D'INTRUSION

      Intrusion par changement d'adresse MAC


      Afin de pouvoir me connecter en Wifi sur le réseau de Marouane, à qui je n'ai pas transmit mon adresse MAC, il suffit de suivre les étapes suivantes:
      Modifier la configuration dans /etc/interfaces en changeant T2 en T1 et en remplaçant la clé wifi de Maxime par celle de Marouane.
      Arrêter la connexion précédente avec /etc/network/init.d/networking stop
      Modifier mon adresse MAC en prenant une @MAC que Marouane reconnaît dans son réseau wifi, la commande est: ifconfig wlan0 hw ether 00:15:af:e6:ed:c4
      Relancer une connexion avec /etc/init.d/networking start

      Cassage de clé WEP d'un point d'accès Wifi


      Nous allons dans cette partie utiliser le paquetage aircrack pour obtenir une clé WEP d'un réseau WiFi par intrusion.
      On insère dans un premier temps une clé WiFi qu'on configure en mode monitor, puis on repère le WiFi dont on veut récupérer la WEP, ici, ce sera le cracotte03.
      Pour passer la clé WiFi en mode monitor, on utilise la commande airmon du paquetage aircrack. Pour activer le monitor la commande est: aitmon-ng start wlan1, lorsqu'on entre cette commande on a un message qui nous informe que quelque processus en cours pourraient interférer et qu'il faudrait les arrêter. Pour cela, il suffit d'un airmon-ng check kill avant d'activer le monitor.
      Pour confirmer le passage de la clé en mode monitor, le message suivant doit s'afficher: monitor mode enabled on mon0.
      On fait maintenant un état des lieux des réseaux alentour avec airodump-ng mon0 et on repère le BSSID et le canal du Wifi qu'on cible, ici ce sera le cracotte03 se trouvant sur le canal 5. Afin de capturer le paquet qu'on utilisera ensuite pour casser la clé WEP, on complète le airodump par le BSSID et le numéro de canal, et on donne un nom au fichier dans lequel on va stocker les information du point d'accès et du client. La commande est la suivante: airodump-ng mon0 --channel 5 --bssid 01:DA:D2:9C:50:52 -w pt_acces_nour puis on se rapproche du point d'accès ciblé.
      On peut maintenant lancer aircrack (dans un autre terminal) sur le .cap généré avec la commande: aircrack-ng pt_acces_nour-01.cap
      Après une petite dizaine de minutes, la clé WEP du cracotte03 est crackée! La voici: AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AB:BB


      Cassage de mot de passe WPA PSK par force brute


      La technique utilisée pour trouver le mot de passe d'un Wifi sécurisé par WPA est différente car on va procéder à une attaque par force brute. On va utiliser aircrack pour rechercher le mot de passe mais il faudra définir un dictionnaire contenant les 10^9 possibilités, car on sait déjà que ce mot de passe contient 8 caractères de type chiffre. Précisons tout de même qu'au delà de 8 caractères, trouver le mot de passe d'identification par WPA-PSK devient très compliqué.
      On commence donc par écouter les trames d'identification échangées avec airodump-ng mon0, on prend le même WiFi cracotte03 (dont la sécurisation a été soigneusement modifiée par Mr. REDON pour passer en WPA2) qui maintenant est sur le canal 7.
      On relance l'écoute en précisant le BSSID et le numéro de canal du cracotte03, puis on vérifie qu'on a bien un handshake qui se créé au moment de l'authentification et qui est indispensable pour lancer le dictionnaire. Pour vérifier l'existence du handshake: aircrack-ng pt_acces_wpa-02.cap
      Dès qu'on voit qu'on a bien un handshake, on peut passer à l'étape suivante qui consiste à charger et lancer le dictionnaire.
      Cette étape sera réalisée sur une Zabeth car elle est plus puissante et pourra exécuter la recherche de mot de passe plus rapidement, on copie donc le handshake (fichier .cap) récupéré dans la Zabeth.
      On réalise un programme qui génère le 1 milliards de combinaisons possibles pour un mot de passe de 8 chiffres, on mettra ce dernier au même endroit que le pt_acces_wpa-02.cap

      RÉALISATIONS

      Sécurisation Wifi par WPA2-EAP


      Pour sécuriser le wifi en WPA2-EAP, on commence par installer le serveur d'identification sur réseau virtuel FreeRadius sur la VM, puis on modifie le fichier /etc/freeradius/eap.conf en remplaçant le default_eap_type md5 par peap.
      On modifie également le fichier /etc/freeradius/client.conf en remplaçant le client 192.168.0.0/24 par 172.20.99.0/24
      On remplace respectivement le secret et le shortname mis par défaut par: topsecret et wifi
      On renseigne à présent un login/mot de passe dans le fichier users:

      login : nour
      mdp : psswdnour
      

      La dernière étape consiste à configurer le point d'accès wifi.

      Configuration du point d'accès


      On commence par se connecter en telnet au point d'accès avec la commande:

      telnet 172.20.99.5


      Une fois connecté au point d'accès, on suit les instructions de configuration fournies sur le support de TP et concernant la sécurisation du wifi en WPA2-EAP.
      Ci-dessous un exemple de la configuration réalisée:

      ap#conf t
      ap(config)#interface dot11Radio 0.3
      ap(config-subif)#encapsulation dot1Q 3
      ap(config-subif)#bridge-group 3
      ap(config-subif)#exit
      ap(config)#int GigabitEthernet 0.3
      ap(config-subif)#encapsulation dot1Q 3
      ap(config-subif)#bridge-group 3
      ap(config-subif)#exit
      ap(config)#exit 
      ap#write
      


      Une fois cette configuration réalisée, il ne reste plus qu'à modifier le fichier /etc/network/interfaces du Shark pour se connecter sur le SSID de mon réseau par un simple ifup wlan0. Le SSID choisi est: Pegase_WPA2-EAP
      Afin de se connecter sur la borne wifi avec le Shark avec un simple ifup wlan0, on ajoute les lignes suivantes au fichier de configuration de l'interface:

      iface wlan0 inet static
        wpa-ssid Pegase_WPA2-EAP
        wpa-key-mgmt WPA-EAP
        wpa-identity nour
        wpa-password psswdnour
      

      CONCLUSION


      Travailler sur ce projet a été très bénéfique pour moi car c'est un projet complet ou on touche à plusieurs aspects des réseaux, que ce soit au niveau du câblage, de la configuration, ou de la sécurisation par certificat.

      Il a apporté une réelle valeur ajoutée à mes connaissances en systèmes et réseaux, et m'a permis de mieux appréhender ce domaine.