TP sysres IMA2a5 2020/2021 G9
De Wiki d'activités IMA
By Crispin DJAMBA
Sommaire
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é
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 }