TP sysres IMA2a5 2020/2021 G9

De Wiki d'activités IMA

By Crispin DJAMBA

Présentation du projet

Le projet de Systèmes et Réseaux a pour but de nous donner les rudiments nécessaires pour :

  • Assurer la redondance matérielle au sein d'une infrastructure réseau
  • Gérer des partitions virtuelles
  • Créer une machine virtuelle
  • Installer un serveur web sécurisé et y déployer un site
  • Attaquer un réseau Wifi

Installation de la machine virtuelle avec xen sur Capbreton

Installation de la machine virtuelle

ssh root@capbreton.polytech-lille.info

Création et lancement de la machine virtuelle

xen-create-image --hostname=NightHawk --ip=193.48.57.170 --gateway=193.48.57.163 --netmask=255.255.255.240 --dir=/usr/local/xen --dist=beowulf --password=glopglop

Modification du fichier de configuration

Le fichier de configuration (vim /etc/xen/NightHawk.cfg) a été modifié pour utiliser une RAM 1024 et le bridge IMA2a5.
Si le bridge n'est pas renseignée la VM ne démarrera pas.
# 
# Configuration file for the Xen instance NightHawk, created
# by xen-tools 4.8 on Fri Sep 25 10:36:53 2020.
#
#
#  Kernel + memory size
#
kernel      = '/boot/vmlinuz-4.19.0-9-amd64'
extra       = 'elevator=noop'
ramdisk     = '/boot/initrd.img-4.19.0-9-amd64'
vcpus       = '1'
memory      = '1024'
#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                 'file:/usr/local/xen/domains/NightHawk/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/NightHawk/swap.img,xvda1,w',
             ]
#
#  Physical volumes
#
#
#  Hostname
#
name        = 'NightHawk'
#
#  Networking
#
vif         = [ 'mac=00:16:3E:CC:33:F4 ,bridge=IMA2a5' ]
#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Lecture du fichier de config et Lancement de la machine virtuelle

xl create /etc/xen/NightHawk.cfg
xl console NightHawk

Connexion à la VM

login: root mdp : glopglop


Création de deux partitions virtuelles sur le volume virtual

lvcreate -L10240M -n NightHawk_home virtual; mke2fs -t ext4 /dev/virtual/NightHawk_home
lvcreate -L10240M -n NightHawk_var virtual; mke2fs -t ext4 /dev/virtual/NightHawk_var


Modification du fichier de configuration pour monter les deux partitions /home , /var comme disque dans la machine virtuelle

#  Disk device(s).
#
root        = '/dev/xvda2 ro'
home        = '/dev/xvda3 ro'
var         = '/dev/xvda4 ro'
disk        = [
                 'phy:/dev/virtual/NightHawk_var,xvda4,w',
                 'phy:/dev/virtual/NightHawk_home,xvda3,w',                
                 'file:/usr/local/xen/domains/NightHawk/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/NightHawk/swap.img,xvda1,w',
              ]
#


Modification du fichier de configuration des points de montages /etc/fstab

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
/dev/xvda1 none swap sw 0 0
/dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
/dev/xvda3 /home ext4 noatime,nodiratime,errors=remount-ro 0 1
/dev/xvda4 /var ext4 noatime,nodiratime,errors=remount-ro 0 1
~ 
~

Installation et sécurisation serveur web

Le serveur web permettra d'accéder à notre site internet hébergé sur notre serveur.Il est installé par le biais du paquet apache2
apt-get install apache2

Configuration de l'hôte virtuel

vi /etc/apache2/site-enbled/000-default.conf
utiliser le port 80 pour le web
<VirtualHost *:80>
       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/NightHawk
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Configuration du protocole web sécurisé (https) via l'hôte virtuel sécurisé

Site Web sécurisé
Il s'agit ici de génerer les clés de chiffrements, voici la configuration de l'hôte sécurisé.
Après le rédémarrage du service apache2, le site web est accessible via https://www.nighthawk-ima2a5.site.
Le petit cadenat vert à gauche du lien, montre que le site web utlise un chiffrement.
<VirtualHost *:443>
       ServerAdmin admin@nighthawk-ima2a5.site
       DocumentRoot /var/www/NightHawk
       ErrorLog ${APACHE_LOG_DIR}/error_ssl.log
       CustomLog ${APACHE_LOG_DIR}/access_ssl.log combined
       SSLEngine on
       SSLCertificateFile /etc/ssl/certs/nighthawk.crt
       SSLCertificateKeyFile /etc/ssl/private/nighthawk.key
       SSLCertificateChainFile /etc/ssl/certs/gandi.pem
</VirtualHost>

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

Le crypatge wep est l'un des plus faible en terme de sécurité. Pour en venir à bout, il faut qu'un client soit connecté ou non au réseau.
Ensuite on lance des suites de commandes visant à récupérer des paquets provenant du point d'accès et utiliser des algoritms pour retrouver la clé.

Identification et passage de la carte wifi en mode monitor
dmesg | grep -i usb
[599662.984682] usb 4-1.1: USB disconnect, device number 7
[599664.486476] usb 4-1.1: new high-speed USB device number 8 using ehci-pci
[599664.612549] usb 4-1.1: New USB device found, idVendor=148f, idProduct=5370, bcdDevice= 1.01
[599664.612552] usb 4-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[599664.612554] usb 4-1.1: Product: 802.11 n WLAN
[599664.612556] usb 4-1.1: Manufacturer: Ralink
[599664.612558] usb 4-1.1: SerialNumber: 1.0
[599664.702454] usb 4-1.1: reset high-speed USB device number 8 using ehci-pci

Installer le firmware de la carte WiPi
apt-get install firmware-Ralink
Installer aircrack-ng pour les outils de monitoring et de crackage
apt-get install aircrack-ng
Passer la carte en mode monitor
Cette étape sera répétée pour le cassge WPA2
airmong-ng  (lien image)
Découverte réseau des points d'accès environnant
airodump (lien image)

Crackage WEP
Le procédé consiste à créer du trafic réseau pour récupérer des paquets provenant du point d'accèss.
Une fois qu'une quantité d'environ 10000 à 50000 paquets sont obtenus , le crackage est fait aisément.
Crackage achevé avec la clé trouvée.
(image)

Gestion et Configutration domaine sous Gandi

6.1 Sécuristation des données

6.1 Sécurisation des données

 Création et montage de trois partitions virtuelles de numéro(X) sous la vm
 lvcreate -L1G -n nighthawk-raidX virtual ; mke2fs -t ext4 /dev/virtual/nighthawk-raidX
 Montage sous la VM
 #              ]
 root        = '/dev/xvda2 ro'
 home        = '/dev/xvda3 ro'
 var         = '/dev/xvda4 ro'
 raid1       = '/dev/xvdb1 ro'
 raid2       = '/dev/xvdb2 ro'
 raid3       = '/dev/xvdb3 ro'
 disk        = [
                'file:/usr/local/xen/domains/NightHawk/swap.img,xvda1,w',
                'file:/usr/local/xen/domains/NightHawk/disk.img,xvda2,w',
                'phy:/dev/virtual/NightHawk_home,xvda3,w',                
                'phy:/dev/virtual/NightHawk_var,xvda4,w',
                'phy:/dev/virtual/nighthawk-raid1,xvdb1,w',
                'phy:/dev/virtual/nighthawk-raid2,xvdb2,w',
                'phy:/dev/virtual/nighthawk-raid3,xvdb3,w',
             ]
#

Création du raid logiciel
Création du raid et vérification avec fdisk -l
mdadm --create /dev/md0 --level=5 --raid-devices  3 /dev/xvdb1 /dev/xvdb2 /dev/xvdb3

Vérification de la création du raid 5 avec fdisk -l
Disk /dev/md0: 2 GiB, 2143289344 bytes, 4186112 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Vérification de la création du raid 5 avec fdisk -l
root@NightHawk:~# mount /dev/md127 /media/raid5/
[  440.117386] EXT4-fs (md127): mounted filesystem with ordered data mode. Opts: (null)
root@NightHawk:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md127 : active raid5 xvdb3[3] xvdb2[1] xvdb1[0]
2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
Retrait de l'une des partition
root@NightHawk:/media/raid5# mdadm --set-faulty /dev/md127 /dev/xvdb2
[  103.328478] md/raid:md127: Disk failure on xvdb2, disabling device.
[  103.328478] md/raid:md127: Operation continuing on 2 devices.
mdadm: set /dev/xvdb2 faulty in /dev/md127
root@NightHawk:~# diff /etc/bind /media/raid5/bind/
Common subdirectories: /etc/bind/nighthawk-ima2a5.site.dnssec and /media/raid5/bind/nighthawk-ima2a5.site.dnssec
root@NightHawk:~# mdadm --remove /dev/md127 /dev/xvdb2
mdadm: hot removed /dev/xvdb2 from /dev/md127
root@NightHawk:~# mdadm --remove /dev/md127 /dev/xvdb2
mdadm: hot removed /dev/xvdb2 from /dev/md127
root@NightHawk:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md127 : active raid5 xvdb1[0] xvdb3[3]
2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]

6.2 Chiffrement des données

Localisation emplacement de montage de la clé
fdisk -l 

Suppression et création partion clé
fdisk /dev/sdb (options d, n)

Création du système de fichier Ext4
mkfs -t ext4 /dev/sdb1

Formatage de la partition au format LuksType
cryptsetup luksFormat  /dev/sdb1
Ajout de la clé de chiffrement
cryptsetup luksAddKey /dev/sdb1
Ouverture et formatage de la clé en Ext4
cryptsetup luksOpen /dev/sdb1 CRKeyUSB
mkfs.ext4 /dev/mapper/CRKeyUSB
Dernière phase, monter la clé. Un mot de passe est demandé à l'ouverture
mount -t ext4 /dev/mapper/CRKeyUSB /media/mnt

6.4 Sécurisation WiFi par WPA2-EAP

Installation et configuration de Radius
apt-get install freeradius
Configuration clients
vi /etc/freeradius/3.0/clients.conf
#Client ipv4
client access-point1{
 ipaddr = 10.60.9.1
 secret = glopglop
}
client access-point2{
 ipaddr = 10.60.9.2
 secret = glopglop
}
Tester le fonctionnement du serveur d'authentifcation
chown freerad:freerad radius.conf
radtest pifou glopglop 127.0.0.1 1812 testing123
Sent Access-Request Id 134 from 0.0.0.0:35916 to 127.0.0.1:1812 length 75
       User-Name = "pifou"
       User-Password = "glopglop"
       NAS-IP-Address = 193.48.57.170
       NAS-Port = 1812
       Message-Authenticator = 0x00
       Cleartext-Password = "glopglop"
Received Access-Accept Id 134 from 127.0.0.1:1812 to 127.0.0.1:35916 length 20
Configuration de freeRadius en authentification PEAP-MSCHAPV2
1-modification fichier /etc/freeradius/3.0/radiusd.conf
# under MODULES, make sure mschap is uncommented!
   mschap {
     authtype = MS-CHAP
     use_mppe = yes
     require_encryption = yes
     require_strong = yes
     authtype = MS-CHAP
   }
   authorize {
       preprocess
       mschap
       suffix
       eap
       files
   }  
   authenticate {
        #  MSCHAP authentication.    
        Auth-Type MS-CHAP {
              mschap
         }
        #  Allow EAP authentication.
        eap
    }
2-Modification /etc/ssl/openssl.cnf --> [CA_default]
dir = certificates
3-Génération des clés privé et public pour l'authentification
openssl req -new -nodes -keyout radiuskey.pem -out radiusreq.pem
openssl ca -out radius_cert.pem -infiles ./radiusreq.pem

4-modification du fichier /etc/freeradius/3.0/eap.conf
default_eap_type = peap
tls { 
       # The private key password
       private_key_password = glopglop
       # The private key
       private_key_file = ${raddbdir}/certs/radiuskey.pem
       #  Trusted Root CA list
       certificate = ${raddbdir}/certs/radius_cert.pem
       CA_file = ${raddbdir}/certs/cacert.pem
       dh_file = ${raddbdir}/certs/dh
       random_file = /dev/urandom
}
peap {
       default_eap_type = mschapv2
}