Cahier groupe n°6 : Différence entre versions

De Wiki de Projets IMA
(Crackage de clef WPA)
(Configuration eepc)
 
(25 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 216 : Ligne 216 :
 
     dnssec-signzone -o kasteel.lol -k kasteel.lol-ksk ../zones/db.kasteel.lol kasteel.lol-zsk  
 
     dnssec-signzone -o kasteel.lol -k kasteel.lol-ksk ../zones/db.kasteel.lol kasteel.lol-zsk  
  
====Crackage de clef WPA====
+
===Crackage de clef WPA===
  
 
Génération d'un dictionnaire contenant tous les nombres à 8 chiffres (de 00000000 à 99999999).  
 
Génération d'un dictionnaire contenant tous les nombres à 8 chiffres (de 00000000 à 99999999).  
Ligne 240 : Ligne 240 :
 
Finalement on trouve la clé au bout de longues minutes ...
 
Finalement on trouve la clé au bout de longues minutes ...
  
====Sécurisation des données====
+
===Sécurisation des données===
  
 
* Création des trois partitions LVM de 10Go:
 
* Création des trois partitions LVM de 10Go:
Ligne 299 : Ligne 299 :
 
     unused devices: <none>
 
     unused devices: <none>
  
====Cryptage des données====
+
===Cryptage des données===
 +
On installe lvm2 et crypsetup sur l'eeepc.
 +
On veut 1 partition sur la carte SD:
 +
    fdisk /dev/sdb
 +
Commande "n" pour ajouter une partition. S'il y avait d'autres partitions on les supprime avec "d". Commande "m" pour voir l'aide.
 +
On a crée la partition sdb1, on va la sécuriser avec cryptsetup. La commande suivante va formater la partition au type LUKS, le chiffrement sera de type AES avec un algorithme de hachage SHA256. Une phrase sera alors demander pour chiffrer le conteneur.
 +
    cryptsetup luksFormat -c aes -h sha256 /dev/sdb1
 +
Pour voir l'état du conteneur:
 +
    cryptsetup luksDump /dev/hda7
 +
Ouverture et formatage en ext3 de la partition chiffrée. L'appellation du volume est ici kasteel.
 +
    cryptsetup luksOpen /dev/sdb1 kasteel
 +
    mkfs.ext3 /dev/mapper/kasteel
 +
On monte alors la partition:
 +
    mount -t ext3 /dev/mapper/kasteel /mnt
 +
En utilisant le dossier /mnt/ on écrit et lit la carte SD.
 +
Pour démonter et fermer le volume chiffré:
 +
    umount /mnt/
 +
    cryptsetup luksClose kasteel
 +
 
 +
* On donne la carte SD à un autre binôme qui va tenter de la lire par:
 +
    cryptsetup luksOpen /dev/sdb1 <nom>
 +
Une clé sera demandé et sans celle-ci impossible d'accéder aux données.
 +
 
 +
===Point d'accès Wifi===
 +
 
 +
====Sécurisation Wifi par WPA2-EAP====
 +
On commence par installer FreeRadius sur la machine virtuel, ensuite on configure un nouvel utilisateur pour l'autentification :
 +
    login Cleartext-password := "password"
 +
 
 +
 
 +
On rajoute ensuite un nouveau client dans le fichier client.conf :
 +
    client E304 {
 +
            ipaddr = 10.10.10.1
 +
            secret = password
 +
    }
 +
    client E306 {
 +
            ipaddr = 10.10.10.2
 +
            secret = password
 +
    }
 +
    client VLAN16{
 +
            ipaddr = 172.20.16.0
 +
            netmask = 24
 +
            secret = password
 +
    }
 +
 
 +
Par la suite on modifie le fichier eap.conf :
 +
 
 +
    eap {
 +
        default_eap_type = peap
 +
        ...
 +
        peap {
 +
            default_eap_type = mschapv2
 +
      }
 +
    }
 +
 
 +
Pour finir on configure le point d'accès Wifi comme ceci:
 +
 
 +
    aaa new-model
 +
    aaa authentication login eap_kasteel group radius_kasteel
 +
    radius-server host 193.48.57.166 auth-port 1812 acct-port 1813 key password
 +
    aaa group server radius radius_kasteel
 +
      server 193.48.57.166 auth-port 1812 acct-port 1813
 +
   
 +
    dot11 ssid SSID_KASTEEL
 +
    vlan 16
 +
    authentication open eap eap_kasteel
 +
    authentication network-eap eap_kasteel
 +
    authentication key-management wpa
 +
    mbssid guest-mode
 +
       
 +
    interface Dot11Radio0.16
 +
    encapsulation dot1Q 16
 +
    no ip route-cache
 +
    bridge-group 16
 +
    bridge-group 16 subscriber-loop-control
 +
    bridge-group 16 spanning-disabled
 +
    bridge-group 16 block-unknown-source
 +
    no bridge-group 16 source-learning
 +
    no bridge-group 16 unicast-flooding 
 +
   
 +
    interface GigabitEthernet0.16
 +
    encapsulation dot1Q 16
 +
    bridge-group 16
 +
 
 +
====Configuration eepc====
 +
On configure l'eepc dans etc/network/interfaces pour se connecter à notre ssid
 +
    auto wlan0
 +
    iface wlan0 inet static
 +
    address 172.20.16.10
 +
    netmask 255.255.255.0
 +
    gateway 172.20.16.254
 +
    wpa-ssid SSID_KASTEEL
 +
    wpa-key-mgmt WPA-EAP
 +
    wpa-identity login
 +
    wpa-password motdepass
 +
 
 +
On arrive à pinger le routeur
 +
    ping 172.20.16.254
  
 
=Références=
 
=Références=
Ligne 314 : Ligne 411 :
 
Manuel xen-create-image
 
Manuel xen-create-image
 
* http://manpages.ubuntu.com/manpages/trusty/man8/xen-create-image.8.html
 
* http://manpages.ubuntu.com/manpages/trusty/man8/xen-create-image.8.html
 +
 +
Cryptsetup
 +
* https://doc.ubuntu-fr.org/cryptsetup

Version actuelle datée du 10 décembre 2015 à 10:36

Présentation du réseau à mettre en place

PRA Network.png

Cahier des charges de la tâche particulière

Présentation de la tâche particulière

La tâche particulière que nous devons effectuer lors de ce projet est la configuration d'un point d'accès Wifi avec filtrage des adresses MAC.

Les différentes étapes à réaliser :

  • Connexion via le port série au point d'accès Cisco
  • Configuration pour le réseau insecure
  • Accès via ethernet
  • Filtrage des adresses Mac via l'interface web pour chaque binôme de la salle E304

Matériel utilisé pour la tâche particulière

Cisco Aironet 2600

Suivi de l'avancement du TP

Séance 1 (01/10/2015)

  • Connexion via le port série au point d'accès Cisco
  • Configuration dans le réseau insecure : ajout de l'adresse IP 172.26.79.10 dans l'interface bvI 1, connexion au réseau de l'école
  • Accès à l'interface web du Cisco, configuration pour le wifi

Séance 2 (08/10/2015)

  • Test d'intrusion par changement d'adresse MAC:
  1. Ajout d'un filtre sur l'adresse MAC de l'eeePC => eeePC bloqué
  2. Changement de l'adresse MAC de l'eeePC => eeePC non bloqué

Conclusion: l'accès au réseau n'est pas suffisamment sécurisé lors d'un filtrage sur adresse MAC

Séance 3 (15/10/2015)

  • Achat du nom de domaine : kasteel.lol
  • Connexion en root à cordouan.insecserv.deule.net:
   ssh root@cordouan.insecserv.deule.net
  • Création de la machine:
   xen-create-image --hostname=KASTEEL --dist=jessie --dir=/usr/local/xen --gateway=193.48.57.174 --ip=193.48.57.166
   --netmask=255.255.255.240 --nameserver=193.48.57.48 --genpass=0 --password="mot de passe administrateur habituel"
  • visualisation des logs de l'installation
   tail -f /var/log/xen-tools/KASTEEL.log
  • Création du fichier de configuration:
   xl create /etc/xen/KASTEEL.cfg
  • Lancement de la machine:
   xl console KASTEEL

Séance 4 (22/10/2015)

  • Ajout d'un SSID:"baguette" au point d'accès Cisco avec un filtrage par adresse MAC de tous les eeePC de la salle E304
  • Configuration des eeePC pour accès au WiFi:
   fichier:/etc/network/interfaces 
   auto wlan0
   iface wlan0 inet static
       wireless-essid baguette
       address 172.26.79.60
       netmask 255.255.240.0
       gateway 172.26.79.254
   fichier:/etc/resolv.conf
   nameserver 193.48.57.48
  • Tentative d'intrusion sur le point d'accès de la salle E306 par changement d'adresse MAC de l'eeePC (réussie):
   ifconfig wlan0 down
   ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx
   ifconfig wlan0 up

Séance 5 (05/11/2015)

  • Installation des paquets (SSH, Apache et DNS) sur la machine virtuelle.
  • Création des partitions LVM:
   lvcreate -L 10G -n /dev/virtual/ima5-kasteel-home -v
   lvcreate -L 10G -n /dev/virtual/ima5-kasteel-var -v
  • Modification du fichier de configuration pour intégrer ces partitions:
   disk        = [
                  'file:/usr/local/xen/domains/KASTEEL/disk.img,xvda2,w',
                  'file:/usr/local/xen/domains/KASTEEL/swap.img,xvda1,w',
                  'phy:/dev/virtual/ima5-kasteel-home,xvdc,w',
                  'phy:/dev/virtual/ima5-kasteel-var,xvdb,w',
                 ]

Séance 6 (12/11/2015)

  • Réservation du certificat correspondant à kasteel.lol, génération du .csr pour le certificat.
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout kasteel.lol.key -out kasteel.lol.csr

Crackage de clef WEP

Crackage de clef WEP à l'aide de la suite Aircrack-ng

Activation du mode monitor de la carte wifi wlan0:

   airmon-ng start wlan0

On stoppe le network manager et on tue les processus pouvant interférer:

   airmon-ng check kill

Affiche le traffic wifi:

   airodump-ng mon0

Affiche les différents points d'accès sur le canal 7. Le bssid est l'addresse MAC du réseau cracotte06 que nous voulons cracker.

   airodump-ng --essid cracotte06 --write crackage -c 7 --bssid 00:23:5e:1e:05:45 mon0

Sur un autre terminal on lance le crackage de la clé:

   aircrack-ng -l  KEY -s -f 15 crackage-01.cap

Finalement on trouve la clé au bout de 14min25s avec plus de 105997 IVs

Séance 7 (19/11/2015)

  • Configuration d'apache sur la machine virtuelle

Activation du module SSL d'apache :

   a2enmod ssl

Ecoute sur le port 443 :

   <IfModule ssl_module>
       Listen 443
       NameVirtualHost 193.48.57.166:443
   </IfModule>

Création d'un site dédié et définition du serveur virtuel pour le port 443 : fichier /etc/apache2/sites-available/000-kasteel.lol-ssl.conf

   NameVirtualHost *:443
     <VirtualHost *:443>
         ServerName www.kasteel.lol
         ServerAlias kasteel.lol
         DocumentRoot /var/www/www.kasteel.lol/
         CustomLog /var/log/apache2/secure_access.log combined
   
         SSLEngine on
         SSLCertificateFile /etc/ssl/certs/kasteel.lol.crt
         SSLCertificateKeyFile /etc/ssl/private/kasteel.lol.key
         SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem
         SSLVerifyClient None
     </VirtualHost>

Activation du site et redémarrage d'apache.

  • Mise en place du serveur DNS et de DNSSEC

Création d'un fichier de zone :

  $TTL	604800
  @	IN	SOA	ns.kasteel.lol. root.kasteel.lol. (
              2015102001	; Serial
              86400		; Refresh
              3600		; Retry
              2419200		; Expire
              86400 )		; Negative Cache TTL
  
  @       IN      NS      ns.kasteel.lol.
  @       IN      NS      ns6.gandi.net.
  ns      IN      A       193.48.57.166
  www     IN      A       193.48.57.166
  @       IN      A       193.48.57.166
  ns      IN      AAAA	2001:660:4401:60bb:216:3eff:fe2c:189b
  www     IN      AAAA    2001:660:4401:60bb:216:3eff:fe2c:189b
  @       IN      AAAA    2001:660:4401:60bb:216:3eff:fe2c:189b

Création du fichier de reverse :

   $TTL    604800
   
   @       IN       SOA     ns.kasteel.lol. root.kasteel.lol.     (
           2015102001       ;serial
           14400            ;refresh
           3600             ;retry
           604800           ;expire
           10800            ;minimum
   )
   
   57.48.193.in-addr.arpa.                IN      NS      ns.kasteel.lol.
   57.48.193.in-addr.arpa.                IN      NS      ns6.gandi.net.
   
   166               IN      PTR     kasteel.lol.

Ajout des zones dans le fichier de configuration de bind :

   zone "kasteel.lol" {
           type master;
           file "/etc/bind/zones/kasteel.lol.db";
   };
   
   zone "57.48.193.in-addr.arpa" IN{
           type master;
           file "/etc/bind/zones/57.48.193.in-addr.arpa";
           allow-transfer {210.70.177.40; );
   };
  • Géneration des clés KSK et ZSK :
   dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE kasteel.lol
   dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE kasteel.lol

On modifie les nom des 4 fichiers générés et on les places dans le répertoire "kasteel.lol.dnssec" comme ceci:

   -rw-r--r-- 1 root bind  605 Dec  3 13:07 kasteel.lol-ksk.key
   -rw------- 1 root bind 1774 Dec  3 13:07 kasteel.lol-ksk.private
   -rw-r--r-- 1 root bind  431 Dec  3 13:08 kasteel.lol-zsk.key
   -rw------- 1 root bind 1010 Dec  3 13:08 kasteel.lol-zsk.private


Ensuite, on ajoute les deux fichier ".key" aux fichier de zone puis on signe les enregistrements:

   dnssec-signzone -o kasteel.lol -k kasteel.lol-ksk ../zones/db.kasteel.lol kasteel.lol-zsk 

Crackage de clef WPA

Génération d'un dictionnaire contenant tous les nombres à 8 chiffres (de 00000000 à 99999999).

Crackage de clef WPA-PSK à l'aide de la suite Aircrack-ng

Activation du mode monitor de la carte wifi wlan0:

   airmon-ng start wlan0
   airmon-ng check kill
   airodump-ng mon0

Affiche les différents points d'accès sur le canal 12. Le bssid est l'addresse MAC du réseau cracotte06 que nous voulons cracker.

   airodump-ng --essid cracotte06 --write crackage -c 12 --bssid 00:23:5e:1e:05:45 mon0

On lance le crackage de la clé par force brute à partir du dictionnaire:

   aircrack-ng -w dico.txt *.cap -l  KEY 

Finalement on trouve la clé au bout de longues minutes ...

Sécurisation des données

  • Création des trois partitions LVM de 10Go:
   lvcreate -L 10G -n /dev/virtual/ima5-kasteel-raid1
   lvcreate -L 10G -n /dev/virtual/ima5-kasteel-raid2
   lvcreate -L 10G -n /dev/virtual/ima5-kasteel-raid2
  • Modification du fichier de configuration de KASTEEL:
   disk        = [
                'file:/usr/local/xen/domains/KASTEEL/disk.img,xvda2,w',
                'file:/usr/local/xen/domains/KASTEEL/swap.img,xvda1,w',
                'phy:/dev/virtual/ima5-kasteel-home,xvdc,w',
                'phy:/dev/virtual/ima5-kasteel-var,xvdb,w',
                'phy:/dev/virtual/ima5-kasteel-raid1,xvdd,w',
                'phy:/dev/virtual/ima5-kasteel-raid2,xvde,w',
                'phy:/dev/virtual/ima5-kasteel-raid3,xvdf,w',
            ]
  • Création du raid5:
   mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf

On vérifie que md0 a bien été crée par:

   cat /proc/mdstat

Création d'un système de fichier linux:

   mkfs /dev/md0

On redémarre la VM, on remarque que le volume md0 a été remplacé par md127. On supprime une partition et on relance, puis:

    mdadm --detail /dev/md127

On a :

   /dev/md127:
       Version : 1.2
    Raid Level : raid0
    Total Devices : 2
    Persistence : Superblock is persistent
         State : inactive
          Name : KASTEEL:0  (local to host KASTEEL)
          UUID : 415307c8:3230a02a:c7539958:90d7f480
        Events : 2
     Number   Major   Minor   RaidDevice
      -     202       48        -        /dev/xvdd
      -     202       64        -        /dev/xvde

On constate que le raid est inactif (cat /proc/mdstat):

   Personalities : 
   md127 : inactive xvde[1](S) xvdd[0](S)
     20955136 blocks super 1.2
   unused devices: <none>

Cryptage des données

On installe lvm2 et crypsetup sur l'eeepc. On veut 1 partition sur la carte SD:

   fdisk /dev/sdb

Commande "n" pour ajouter une partition. S'il y avait d'autres partitions on les supprime avec "d". Commande "m" pour voir l'aide. On a crée la partition sdb1, on va la sécuriser avec cryptsetup. La commande suivante va formater la partition au type LUKS, le chiffrement sera de type AES avec un algorithme de hachage SHA256. Une phrase sera alors demander pour chiffrer le conteneur.

   cryptsetup luksFormat -c aes -h sha256 /dev/sdb1

Pour voir l'état du conteneur:

   cryptsetup luksDump /dev/hda7

Ouverture et formatage en ext3 de la partition chiffrée. L'appellation du volume est ici kasteel.

   cryptsetup luksOpen /dev/sdb1 kasteel
   mkfs.ext3 /dev/mapper/kasteel

On monte alors la partition:

   mount -t ext3 /dev/mapper/kasteel /mnt

En utilisant le dossier /mnt/ on écrit et lit la carte SD. Pour démonter et fermer le volume chiffré:

   umount /mnt/
   cryptsetup luksClose kasteel
  • On donne la carte SD à un autre binôme qui va tenter de la lire par:
   cryptsetup luksOpen /dev/sdb1 <nom>

Une clé sera demandé et sans celle-ci impossible d'accéder aux données.

Point d'accès Wifi

Sécurisation Wifi par WPA2-EAP

On commence par installer FreeRadius sur la machine virtuel, ensuite on configure un nouvel utilisateur pour l'autentification :

   login Cleartext-password := "password"


On rajoute ensuite un nouveau client dans le fichier client.conf :

   client E304 { 
           ipaddr = 10.10.10.1
           secret = password
   }
   client E306 {
           ipaddr = 10.10.10.2
           secret = password
   }
   client VLAN16{
           ipaddr = 172.20.16.0
           netmask = 24
           secret = password
   }

Par la suite on modifie le fichier eap.conf :

   eap {
       default_eap_type = peap
       ...
       peap {
           default_eap_type = mschapv2
      }
   }

Pour finir on configure le point d'accès Wifi comme ceci:

   aaa new-model
   aaa authentication login eap_kasteel group radius_kasteel
   radius-server host 193.48.57.166 auth-port 1812 acct-port 1813 key password
   aaa group server radius radius_kasteel
     server 193.48.57.166 auth-port 1812 acct-port 1813
   
   dot11 ssid SSID_KASTEEL
   vlan 16
   authentication open eap eap_kasteel
   authentication network-eap eap_kasteel
   authentication key-management wpa
   mbssid guest-mode
       
   interface Dot11Radio0.16
   encapsulation dot1Q 16
   no ip route-cache
   bridge-group 16
   bridge-group 16 subscriber-loop-control
   bridge-group 16 spanning-disabled
   bridge-group 16 block-unknown-source
   no bridge-group 16 source-learning
   no bridge-group 16 unicast-flooding   
   
   interface GigabitEthernet0.16
   encapsulation dot1Q 16
   bridge-group 16

Configuration eepc

On configure l'eepc dans etc/network/interfaces pour se connecter à notre ssid

   auto wlan0
   iface wlan0 inet static
    address 172.20.16.10
    netmask 255.255.255.0
    gateway 172.20.16.254
    wpa-ssid SSID_KASTEEL
    wpa-key-mgmt WPA-EAP
    wpa-identity login
    wpa-password motdepass

On arrive à pinger le routeur

    ping 172.20.16.254

Références

Travaux pratiques protocoles avancés (Sujet)

Information sur le Cisco Aironet

Travaux pratiques de réseau informatique IMA4

Manuel xen-create-image

Cryptsetup