TP sysres IMA2a5 2019/2020 G3 : Différence entre versions

De Wiki d'activités IMA
(Paramétrage de Apache 2 et déployement du site)
(Paramétrage de Apache 2)
Ligne 143 : Ligne 143 :
 
Puis, on recharge la configuration de l'utilitaire Apache 2 :
 
Puis, on recharge la configuration de l'utilitaire Apache 2 :
 
     service apache2 reload
 
     service apache2 reload
 +
=== Paramétrage de Apache 2 ===
  
 
== Installation dans la machine virtuelle Xen ==
 
== Installation dans la machine virtuelle Xen ==

Version du 15 novembre 2019 à 10:39

© Copyright Ginette

Accueil/Descriptif du groupe

Bienvenue sur la page du groupe 3. Le découpage en groupe par numéro permet de se repérer plus facielemnt dans l'adressage des différents réseaux nécessaire.Ce groupe est constitué de :

  • Pascal Coint
  • Quentin Weisbecker

Ce TP consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système nous avons à installer une machine virtuelle Xen avec l'OS Devian ainsi qu'implanter un auto-commutateur et un point d'accès. Nous effectuerons pas la suite des tests d'intrusion sur ces points d'accès afin de voir la vulnérabilité des différents protocoles de clé. Pour notre cas, nous nous étendrons sur les protocoles WEP et WPA-PSK.

Informations importantes

Description Détails
ID VLAN 4
Réseau IP V4 10.60.3.0/24
Réseau IP V6 2001.660.4401.60B3::/64
Nom de l'ordinateur portable Requin
Repérage à l'étiqueteuse IMA2A5
Numéro de poste Zabeth03

Le Site Web

Achat d'un nom de domaine et association d'IP

Pour la réalisation de ce TP, nous avons dû acheter un nom de domaine via le site Gandi.net . On retiendra que notre nom de domaine est : rex4ever.site.

Paramétrage de notre provider Gandi.net

Glue Records

Puis, une fois ce nom de domaine acquis, il faudra le lier à notre machine virtuelle. Pour cela, il faut se servir de ce qu'on appelle un enregistrement GLUE ce qui permettra de lier directement l'IP de la machine virtuelle avec le domaine de chez Gandi. Pour se faire il faut se rendre dans Domain , cliquer sur le nom de notre site , aller dans l'onglet Glue Records et cliquer sur ADD

  name : dns
  ip adresse(s) : 193.48.57.163

DNS

Par défaut, les serveurs de noms (DNS) sont 3 serveurs de chez Gandi, il faut ajouter les serveurs externes :

  • ns6.gandi.net
  • dns.ima2a5-rex4ever.site

Note: il faut compter 12 à 24 heures pour la propagation sur Internet.

Configuration du Certificat/Securisation du site internet sous HTTPS

Le SSL (Secure Socket Layer) / TLS (Transport Layer Security) est le protocole de sécurité le plus répandu qui créé un canal sécurisé entre deux machines communiquant sur Internet ou un réseau interne. Dans notre société centrée sur un Internet vulnérable, le SSL est généralement utilisé lorsqu'un navigateur doit se connecter de manière sécurisée à un serveur web.

Génération du certificat

La première étape pour générer un certificat est de concevoir un jeu de 2 clefs qui sont un .key et un .csr Pour obtenir ces deux fichiers, nous utilisons l'utilitaire OpenSSL.

     openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-rex4ever.key -out ima2a5-rex4ever.csr 

Mais alors comment marche cette commande? Après avoir lu le descriptif que l'on peut obtenir via man openssl, il en ressort que les arguments sont :

Argument explication
req Gestion X.509 Certificate Signing Request (CSR).
-nodes Pas de chiffrage sur la clef privée (option arbitraire no des)
-newkey rsa:2048 demande de Génération d'une paire de clef RSA de 2048 bits et d'une demande de certificat.
-keyout ima2a5-rex4ever.key spécification du nom de notre .key
-out ima2a5-rex4ever.csr spécification du nom de notre demande de certificat .csr

Pour générer en bon éduforme notre demande,l'utilitaire a besoin des informations, voici ce que nous avons répondu:

     Country Name (2 letter code) [AU]:FR
     State or Province Name (full name) [Some-State]:Nord
     Locality Name (eg, city) []:Lille
     Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech Lille
     Organizational Unit Name (eg, section) []:IMA2A5
     Common Name (e.g. server FQDN or YOUR name) []:ima2a5-rex4ever.site
     Email Address []:pascal.coint@polytech-lille.net
     
     Please enter the following 'extra' attributes
     to be sent with your certificate request
     A challenge password []:glopglop!
     Optionnal informations :

Affectation du certificat sur Gandi.net

Après avoir répondu , il génère alors 2 fichiers. Le .key est notre clef privée elle restera donc en notre unique possession. On partage avec gandhi (qui est également un générateur de certificat) notre .csr. Il va donc étudier la validité de notre domaine et le certifier ou non.

Contenu de notre CSR

     -----BEGIN CERTIFICATE REQUEST-----
     MIIDBTCCAe0CAQAwgaUxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD
     VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDzANBgNVBAsMBklN
     QTJBNTEdMBsGA1UEAwwUaW1hMmE1LXJleDRldmVyLnNpdGUxLjAsBgkqhkiG9w0B
     CQEWH3Bhc2NhbC5jb2ludEBwb2x5dGVjaC1saWxsZS5uZXQwggEiMA0GCSqGSIb3 
     DQEBAQUAA4IBDwAwggEKAoIBAQDBKS9p8572UiXo2W1dAiKEKLq+B6ge/si0AhMH
     fLtovMz7Xvy/9oQnq25SvkWaNRuAJrvzROGS2mzkG9IEhnEpWSTNvspTO60PgNPo
     EUYcgKAeEuVVJyom3K3ioBOvllucQfiOIB/ykvP80s+9Wjo2vf2PkESPTjfM0zKP
     2JMT9cGQV6auD7NU+Ygz7w5dW/NKkU2KZA9HQ7i95+/ST3r2T0D8xP/ltEBC0Q7i
     U/OVkAKn6CPJ6KtkbQYvgKVG95IM5SQb/WxRVNnHKS4f+erNFYpx5iNiHhv6larV
     G0oR9uNsg7tOhdhcVVnooGSAsoxtgmDLwzuuho+3fS4t1K83AgMBAAGgGjAYBgkq
     hkiG9w0BCQcxCwwJZ2xvcGdsb3AhMA0GCSqGSIb3DQEBCwUAA4IBAQB7jtWizvBQ
     dNEyyVRhS563mKFo34RWW4g5tpnPC6wepQ7tvHo6gZZtzljobsWF55lRK7/Pi8eh
     ANyQxb1Lo9FcHJcUOEMc8heeutSZQoCslTdRNMe+uBhQ/qCLXjy+fgdptqPi9cXP
     zi8gBbrAQ9sHqJPK/RwhzuhCkBSzYgoNbYLjrHf8lCe60+7+0HBKM3jpTUDmzrzg
     Kmb8GmkgcrzKSNhlOFZpiQqBJUfK5zJEucdhJ0j7Tupwf+J2oO+TccnCNH7o1Ykc
     7ANKYKpf8AoCcZenLutCXt3YGjT8INuh5SnpsyR3BZUK9hNzZGK9Ilv9hwiEnmaS
     PQWRkLUGQdh+
     -----END CERTIFICATE REQUEST-----

Paramétrage du certificat

Paramétrage de Apache 2

Après avoir installé Apache2 sur la machine ( voir ici), il faut le paramétrer correctement (je me suis servi de ce site).Pour cela, on commence configurer le .conf Pour cela, on le crée via la commande nano /etc/sites-available/ima2a5-rex4ever.site.conf et on renseigne alors dans le fichier les détails suivants :

   <VirtualHost *:80>
       ServerName ima2a5-rex4ever.site
       ServerAlias www.ima2a5-rex4ever.site
       DocumentRoot "/var/www/ima2a5-rex4ever"
       <Directory "/var/www/ima2a5-rex4ever">
               Options +FollowSymLinks
               AllowOverride all
               Require all granted
       </Directory>
       ErrorLog /var/log/apache2/error.ima2a5-rex4ever.site.log
       CustomLog /var/log/apache2/access.ima2a5-rex4ever.site.com.log combined
   </VirtualHost>

Maintenant qu'il est configuré, on peut le déployer via :

   a2ensite ima2a5-rex4ever.site

Puis, on recharge la configuration de l'utilitaire Apache 2 :

   service apache2 reload

Paramétrage de Apache 2

Installation dans la machine virtuelle Xen

Note importante

Comme indiqué dans le sujet, nous allons créer une machine virtuelle via l'utilitaire Xen Linux sur le dom0 cordouan.insecserv.deule.net via la commande ssh et le compte administrateur usuel.Sur notre machine virtuelle nous créerons par la suite un compte pifou et un compte root identique au Zabeth.

     Installation Summary
     ---------------------
     Hostname        :  ima2a5-rex4ever
     Distribution    :  ascii
     MAC Address     :  xxxxxxxxxxx
     IP Address(es)  :  dynamic
     SSH Fingerprint :  SHA256:xxxxxxx (DSA)
     SSH Fingerprint :  SHA256:xxxxxxx (ECDSA)
     SSH Fingerprint :  SHA256:xxxxxxx (ED25519)
     SSH Fingerprint :  SHA256:xxxxxxx (RSA)
     Root Password   :  sZzrYYPFZEwxsfmFghddGW5

La commande xen-create-image

Après s'être connecté, il faut maintenant

     xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force

L'installation se lance alors :

     root@cordouan:~# xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force
     Use of uninitialized value within %DIST in pattern match (m//) at /usr/bin/xen-create-image line 1803.
     
     General Information
     --------------------
     Hostname       :  ima2a5-rex4ever
     Distribution   :  ascii
     Mirror         :  http://fr.deb.devuan.org/merged/
     Partitions     :  swap            512M  (swap)
                       /               4G    (ext4)
     Image type     :  sparse
     Memory size    :  256M
     Kernel path    :  /boot/vmlinuz-4.9.0-6-amd64
     Initrd path    :  /boot/initrd.img-4.9.0-6-amd64
     
     Networking Information
     ----------------------
     IP Address     : DHCP [MAC: xxxxxxx]
     
     
     Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/swap.img
     Done
     
     Creating swap on /usr/local/xen/domains/ima2a5-rex4ever/swap.img
     Done
     
     Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/disk.img
     Done
     
     Creating ext4 filesystem on /usr/local/xen/domains/ima2a5-rex4ever/disk.img
     Done
     Installation method: debootstrap

L'installation peut sembler bloquer sur cette dernière ligne mais il est possible de voir ce qui se passe en arrière plan via un second terminal en SSH et la commande SSH

     tail -f /var/xen-tools/ima2a5-rex4ever.log

Ajout du bridge à ima2a5-rex4ever.cfg

Dans un premier lieu, on regarde l'existence du brige sur l'hote distant via :

     brctl show

Ce qui nous retourne :

     bridge name	bridge id		STP enabled	interfaces
     IMA2a5		8000.000af75e3dc0	no		eth1
     eth2
     if3.0
     IMA5sc		8000.000af75e3dc2	no		eth3
     eth5
     Insecure		8000.c81f66c22b83	no		vlan6
     L3MRIT		8000.000af763ae2d	no		eth4
     StudentsInfo		8000.c81f66c22b83	no		vlan50

On voit bien l'existence du bridge IMA2a5, il faut donc l'ajouter à notre .cfg qui est le fichier de configuration de la VM (/etc/xen/ima2a5-rex4ever.cfg) et on modifie la ligne commençant par vif = et on ajoute le bridge de la manière suivante :

     vif = ['MAC:xxxxx,bridge = IMA2a5']

Après avoir modifié ce fichier, il faut le parser : xl create /etc/xen/ima2a5-rex4ever.cfg Une erreur NUMA placement failed, performance might be affected peut apparaître mais elle indique juste que xen n'arrive pas à disposer les VM comme il veut sur les procs, mais cela n'impactera que les performances nous passons outre ce problème.

Démarrer la VM et accès console

On lance alors la commande pour démarrer la machine virtuelle:

     xl console ima2a5-rex4ever

La machine virtuelle est maintenant allumée !

il demande alors le login (root) et le mdp (longue chaine précédemment générée). Après nous être logué,on change le mot de passe qui devient le même que le mot de passe du root de corduan ou d'une zabeth.

Montage des répertoires /var et /home

Creation des disques logique

Il faut d'abord créer les partitions logique via :

    lvcreate -L10G -n ima2a5-rex4ever-home virtual
    lvcreate -L10G -n ima2a5-rex4ever-var virtual

Il est possible qu'il affiche l'avertissement suivant : WARNING: ext2 signature detected on /dev/virtual/ima2a5-rex4ever-home at offset 1080. Wipe it? [y/n] repondre alors oui(y). Il est possible de verifier que votre partition a bien été crée via la commande :

     lvdisplay

On obtient alors dans la liste de toutes les partitions, nous deux partitions précedemment créées

     --- Logical volume ---
     LV Path                /dev/virtual/ima2a5-rex4ever-home
     LV Name                ima2a5-rex4ever-home
     VG Name                virtual
     LV UUID                mhJqFx-zO1m-PlOU-Zmeu-8NGx-7UUO-c2g9dP
     LV Write Access        read/write
     LV Creation host, time cordouan, 2019-11-08 08:47:26 +0000
     LV Status              available
     # open                 0
     LV Size                10.00 GiB
     Current LE             2560
     Segments               1
     Allocation             inherit
     Read ahead sectors     auto
     - currently set to     256
     Block device           254:3
    --- Logical volume ---
    LV Path                /dev/virtual/ima2a5-rex4ever-var
    LV Name                ima2a5-rex4ever-var
    VG Name                virtual
    LV UUID                9Bnl6S-6CE5-CtO2-hD8f-RidD-sps5-b1mrWg
    LV Write Access        read/write
    LV Creation host, time cordouan, 2019-11-08 08:50:57 +0000
    LV Status              available
    # open                 0
    LV Size                10.00 GiB
    Current LE             2560
    Segments               1
    Allocation             inherit
    Read ahead sectors     auto
    - currently set to     256
    Block device           254:4

Il faut maintenant faire pointer le système de fichier sur nos deux nouveaux repertoires pour finir la création :

    mke2fs /dev/virtual/ima2a5-rex4ever-home
    mke2fs /dev/virtual/ima2a5-rex4ever-var

Nos deux disques sont maintenant prêt, il ne reste plus qu'a les connecter avec la VM. Pour cela, il faut modifier le .cfg de nouveau.

Modification du fichier de configuration

Retournons donc dans le fichier /etc/xen/ima2a5-rex4ever.cfg et dans la section disk modifier tel que :

    disk    	= [
                  	'file:/usr/local/xen/domains/ima2a5-rex4ever/disk.img,xvda2,w',
                  	'file:/usr/local/xen/domains/ima2a5-rex4ever/swap.img,xvda1,w',               
                       'phy:/dev/virtual/ima2a5-rex4ever-home,xvdb1,w',
                       'phy:/dev/virtual/ima2a5-rex4ever-var,xvdb2,w',
                 ]

Pour prendre effet il faut redémarrer la VM à l'aide des commandes

   xl destroy ima2a5-rex4ever
   xl create /etc/xen/ima2a5-rex4ever.cfg

Configuration pour forcer le montage à chaque démarrage de la VM

Il faut ensuite aller dans la VM dans /etc/fstab et ajouter

   /dev/xvdb1		/home		ext4		defaults				0		2
   #/dev/xvdb2		/var		ext4		defaults				0		2

Ces deux lignes permettent d'assurer que les 2 disques /var et /home soient pris en compte au démarrage de la VM.(ATTENTION POUR LE MOMENT BIEN LAISSER # DEVANT LA 2eme LIGNE) Relancer la machine comme précédemment expliqué et testé que le /home fonctionne. Pour le /var c'est un peu plus compliqué comme manipulation et il faut faire EXTREMENT attention , une fausse manipulation peut tuer la machine.

   mount /dev/xvdb2 /mnt
   rm -rf /mnt/lock
   rm -rf /mnt/log
   rm -rf /mnt/run
   mv /var/* /mnt
   vi /etc/fstab

Maintenant decommentez la deuxième ligne que vous aviez ajouté précedemment. Puis il faut lancer la commande :

   umount /mnt    
   mount -a

A l'aide de la commande fdisk -l depuis la VM, on peut verifier que nos quatres disques sont bien montés.De même avec df on obtient bien dans la liste les lignes :

     Filesystem		1K-blocks	Used	Available	Use%	Mounted on
    udev		75004		0 	75004		0%	/dev
    tmpfs          	23824		76 	23748		1%	/run
    /dev/xvda2   	4062912		459920	3376896		12%	/
    tmpfs           	5120		0  	5120		0%	/run/lock
    tmpfs         	152500  	0	152500		0%	/run/shm
    /dev/xvdb1  	10321208	23028   9773892		1%	/home
    /dev/xvdb2  	10321208	71076   9725844		1%	/var

La machine est donc prête, on peut passer à l'installation des paquetages linux nécessaires

Mise en place de l'adresse statique

Précedemment nous avions mis l'adresse en DHCP or il est demandé d'avoir une adresse statique (pour notre groupe il s'agit de 193.48.57.163/28 )

Paquetage Linux

Pour commencer, on va tout d'abord mettre le système à jour via :

   sudo apt-get update

Paquetages nécessaires pour le SSH

OpenSSH est un ensemble d'outils libres pour établir des communications chiffrées, donc sécurisées, sur un réseau informatique grâce au protocole SSH (Secure SHell). Il chiffre tout le trafic (mots de passe y compris), via une combinaison astucieuse de chiffrement symétrique et asymétrique. OpenSSH fournit également d'autres méthodes d'authentification alternatives au traditionnel mot de passe. Comme son nom l'indique, OpenSSH est développé dans le cadre du projet OpenBSD.

Nom de la bibliothèque Descriptif Commande
OpenSSh Client Utilitaires de connexion SSH partie Client sudo apt-get install openssh-client
OpenSSh Server Utilitaires de connexion SSH partie Server sudo apt install openssh-server

Dans notre cas, SSH est déjà présent sur la machine virtuelle.

Paquetages nécessaires pour le serveur Web Apache2

Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. C'est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Pour l'installer, il faut taper la commande :

   apt install apache2

Paquetages nécessaires pour le serveur DNS bind

Le service DNS (Domain Name System) est un service TCP/IP permettant la correspondance entre un nom de domaine qualifié (FQDN : Fully Qualified Domain Name) et une adresse IP. Ainsi, grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP.Un serveur qui héberge le service DNS est appelé "serveur de noms". Ubuntu est livré par défaut avec BIND (Berkley Internet Naming Daemon), le serveur DNS le plus utilisé sur Internet. Pour installer bind9 :

   apt install bind9

Client Wifi - ordinateur Requin

Description

Notre Client Wi-fi est un ordinateur portable fourni par Monsieur Redon. Il ne nécessite pas nécessairement de configuration. Cependant, la clef Wi-Fi fournie avec elle doit être paramétrée (la datasheet peut se trouver à l'adresse suivant ; Datasheet). De plus, il faut installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA

Installation du paquetage AirCrack-ng

Pour installer AirCrack (utilitaire qui permet de casser les clefs WEP et WPA), il suffit de taper la commande :

   apt-get install aircrack-ng

Note: il faut auparavant configurer le réseau pour se connecter à internet.

Utilisation de AirCrack pour clef WEP et WPA-PSK

Après avoir branché la clef WiFi, on se sert de airmon-ng qui est un utilitaire qui espionne le réseau et permet d'obtenir les types d'interfaces communicantes/espionnable.

  airmon-ng

Pour tenter de s'y connecter en tant qu'espion, il faut alors taper (nous le tapons ici avec wlan0mon):

  airmong-ng start NOMRESEAUESPIONNABLE

Puis, pour observer et découvrir les canaux associés au réseau et leurs SSID,il faut taper:

  airodump-ng --encrypt wep NOMRESEAUESPIONNABLE

Puis à l'aide d'un second terminal, on peut stocker les informations volées dans un .txt :

  Airodump-ng FICHIER.txt -c 2 --bssid ADDRESSBSSID NOMRESEAUESPIONNABLE

Ce qui donne dans notre cas :

  airmon-ng
  airmong-ng start wlan0mon
  airodump-ng --encrypt wep wlan0mon 
  Airodump-ng -w reseau_1.txt -c 2 --bssid 04:DA:D2:50:53 wlan0mon   (<== pour le réseau cracotte 3)

Commence alors le craquage de la clef Wifi en Wep. On estime qu'il faut capturer plus ou moins 50 000 datas pour approximer 50% de chance de craquer la clef. Après 40 000 datas volées , on réussit à craquer la clef, il nous aura fallu environ 14 minutes.

   KEY FOUND! [BA:BE:EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:44:44 ]
   Decrypted correctly : 100%

Reseau Quentin

soustitre

Sous soutitre

Texte en gras

Nom de la bibliothèque Descriptif Commande
OpenSSh Client Utilitaires de connexion SSH partie Client sudo apt-get install openssh-client
OpenSSh Server Utilitaires de connexion SSH partie Server sudo apt install openssh-server