TP sysres IMA2a5 2021/2022 G5 : Différence entre versions
(→Serveur DNS) |
(→Sécurisation de site web par certificat) |
||
Ligne 268 : | Ligne 268 : | ||
=== Sécurisation de site web par certificat === | === Sécurisation de site web par certificat === | ||
+ | |||
+ | On commencera par installer le paquetage apache2 et nous le configuerons en mode sécurisé à l'aide d'une clé asymétrique et d'un certificat signé par une autorité de certification. | ||
+ | |||
+ | apt install apache2 | ||
+ | |||
+ | === Sécurisation de serveur DNS par DNSSEC === | ||
+ | |||
+ | Puis le fichier /etc/bind/named.conf.options on ajoute dnssec-enable yes. Nous allons créer un dossier dans lequel nous allons générer les clés : | ||
+ | |||
+ | cd /etc/bind | ||
+ | mkdir animal-crossing.site.dnssec | ||
+ | |||
+ | On génèrera les clés : | ||
+ | |||
+ | dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE animal-crossing.site | ||
+ | dnssec-keygen -a RSASHA1 -b 1024 -n ZONE animal-crossing.site | ||
+ | |||
+ | Ensuite, je renomme les deux paires de clés obtenues : | ||
+ | |||
+ | mv Kanimal-crossing.site.+005+38625.key animal-crossing.site-ksk.key | ||
+ | mv Kanimal-crossing.site.+005+38625.private animal-crossing.site-ksk.private | ||
+ | |||
+ | mv Kanimal-crossing.site.+005+42451.key animal-crossing.site-zsk.key | ||
+ | mv Kanimal-crossing.site.+005+42451.private animal-crossing.site-zsk.private | ||
+ | |||
+ | On modifiera le fichier : | ||
+ | |||
+ | /etc/bind/db.animal-crossing.site | ||
+ | |||
+ | Et on y ajoutera : | ||
+ | |||
+ | $include /etc/bind/animal-crossing.site.dnssec/animal-crossing.site-ksk.key | ||
+ | $include /etc/bind/animal-crossing.site.dnssec/animal-crossing.site-zsk.key | ||
+ | |||
+ | On signera les enregistrements : | ||
+ | |||
+ | dnssec-signzone -o animal-crossing.site -k animal-crossing.site-ksk ../db.animal-crossing.site animal-crossing.site-zsk | ||
+ | |||
+ | On obtient la réponse suivante : | ||
+ | |||
+ | Zone fully signed: | ||
+ | Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked | ||
+ | ZSKs: 1 active, 0 stand-by, 0 revoked | ||
+ | ../db.animal-crossing.site.signed | ||
+ | |||
+ | |||
+ | On modifie le fichier /etc/bind/named.conf.local | ||
+ | |||
+ | zone "animal-crossing.site" { | ||
+ | type master; | ||
+ | file "/etc/bind/db.animal-crossing.site.signed"; | ||
+ | }; | ||
=='''Configuration des routeurs''' == | =='''Configuration des routeurs''' == |
Version du 19 novembre 2021 à 10:17
Sommaire
- 1 TP Protocoles Avancés - SE2A5 - Groupe 5
TP Protocoles Avancés - SE2A5 - Groupe 5
Généralités
Le tableau ci-dessous récapitule l'ensemble des informations qui seront utilisées lors du TP de Réseau sur les Protocoles Avancées.
Groupe | Domaine | Nom VM | Distribution | IPv4 routée | VLAN privé | Réseau local IPv4 | Réseau IPv6 | Réseau IPv6 de secours | Cisco 6509-E | Cisco 9200 | SSID |
---|---|---|---|---|---|---|---|---|---|---|---|
Groupe 5 | rsx-viciot.site | AnimalCrossing | Debian 10 Buster | 193.48.57.165 | 164 (NET-GP4) | 10.60.165.0/24 | 2001:660:4401:60A5::/64 | 2001:7A8:116E:60A5::/64 | 10.60.165.254 | 10.60.165.253 | SE2A5_GP5 |
Architecture réseaux
Câblage
Création d'une machine virtuelle
Création de la machine virtuelle
Commençons par la création de la machine virtuelle. Nous allons commencer par nous connecter en ssh sur le serveur Capbreton situé dans la baie en salle E304, nous utiliserons la commande suivante :
ssh -4 capbreton.plil.info
Nous nous connectons ensuite en superuser sur la machine :
su -
Nous allons exporter
export http_proxy=http://proxy.plil.fr:3128 export https_proxy=http://proxy.plil.fr:3128
La commande de création est la suivante :
xen-create-image --force --hostname=AnimalCrossing --ip=193.48.57.165 --gateway=193.48.57.174 --dir=/usr/local/xen --dist=buster
On vérifie que notre machine est correctement installée en ouvrant un second terminal et en nous reconnectant à Capbreton. On utilisera la commande suivante:
tail -f /var/log/xen-tools/AnimalCrossing.log
Suite à cela nous aurons un récapitulatif des informations de notre machine virtuelle ainsi que son mot de passe (Conseil : Bien noté le mot de passe !)
Création des disques
Nous allons désormais créer les disques pour notre machine virtuelle, nous allons réaliser un RAID 5, soit 4 disques :
lvcreate -L1G -n AnimalCrossing1 virtual lvcreate -L1G -n AnimalCrossing2 virtual lvcreate -L1G -n AnimalCrossing3 virtual lvcreate -L1G -n AnimalCrossing4 virtual
On augmente ensuite la taille des disques afin de les passer de 1Go à 10Go :
lvextend -L +9G /dev/virtual/AnimalCrossing1 lvextend -L +9G /dev/virtual/AnimalCrossing2 lvextend -L +9G /dev/virtual/AnimalCrossing3 lvextend -L +9G /dev/virtual/AnimalCrossing4
On vérifie l'installation de nos disques avec :
lvdisplay
On obtient le récap suivant :
--- Logical volume --- LV Path /dev/virtual/AnimalCrossing1 LV Name AnimalCrossing1 VG Name virtual LV UUID 8J2E0b-3Np8-Kdb8-h2jR-jCaR-fQlU-a9wklC LV Write Access read/write LV Creation host, time capbreton, 2021-09-23 10:35:45 +0200 LV Status available # open 0 LV Size 10.00 GiB Current LE 2560 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:30
Enfin on va formater nos disques :
mke2fs /dev/virtual/AnimalCrossing1 mke2fs /dev/virtual/AnimalCrossing2 mke2fs /dev/virtual/AnimalCrossing3 mke2fs /dev/virtual/AnimalCrossing4
Démarrage
On démarre la machine une première fois afin de pouvoir accéder au fichier vim :
xen create /etc/xen/AnimalCrossing.cfg
Après avoir fait ça, nous faisons la commande suivante :
vi /etc/xen/AnimalCrossing.cfg
Dans le fichier nous allons :
1 - Dans la rubrique "Networking" : Supprimer l'adresse IP, 2 - Toujours dans la rubrique "Networking" : On ajoutera "bridge=IMA2a5" on obtiendra la commande suivante
vif = [ 'mac=00:16:3E:73:B0:3C, bridge=IMA2a5' ]
3 - Dans la rubrique "Disks" : On ajoute le code suivant :
'phy:/dev/virtual/AnimalCrossing1, xvda3, w', 'phy:/dev/virtual/AnimalCrossing2, xvda4, w', 'phy:/dev/virtual/AnimalCrossing3, xvda5, w', 'phy:/dev/virtual/AnimalCrossing4, xvda6, w',
On referme le fichier VIM et on relance notre machine virtuelle :
xen create /etc/xen/AnimalCrossing.cfg xen console AnimalCrossing
On va devoir se connecter et le login sera root
Services Internet
Serveur SSH
Pour configurer le serveur SSH sur notre machine virtuelle, on commencera par se connecter à cap breton :
ssh -4 capbreton.plil.info
Ensuite, on démarrera notre machine virtuelle
xen create /etc/xen/AnimalCrossing.cfg xen console AnimalCrossing
On se connecte à notre machine en utilisant l'identifiant root et en entrant le mot de passe que nous avions précédemment.
On installera SSH sur notre machine virtuelle :
apt install openssh-server
Puis on effectuera des modifications dans le fichier suivant :
vi /etc/network/interfaces
Les modifications à faire sont les suivantes :
On met : # The primary network interface auto eth0 iface eth0 inet6 auto iface eth0 inet static address 10.60.100.165/24 up ip address add dev eth0 193.48.57.165/32 ; ip route add default via 10.60.100.254 src 193.48.57.165 down ip address del dev eth0 193.48.57.165/32 ; ip route del default via 10.60.100.254 src 193.48.57.165
On dé-commentera la ligne :
PermitRootLogin yes
On fera ensuite :
ifdown eth0 ifup eth0
On ouvrir un autre terminal et on fera un ping sur notre machine virtuelle pour vérifier que nous avons bien une réponse :
ping 193.48.57.165
On a bien une réponse :
PING 193.48.57.165 (193.48.57.165) 56(84) bytes of data. 64 bytes from 193.48.57.165: icmp_seq=1 ttl=61 time=0.527 ms 64 bytes from 193.48.57.165: icmp_seq=2 ttl=61 time=0.554 ms 64 bytes from 193.48.57.165: icmp_seq=3 ttl=61 time=0.513 ms
On se connectera en SSH de la manière suivante :
ssh root@193.48.57.165
Serveur DNS
Le DNS va nous permettre d'établir l'association de notre nom de domaine à une adresse IP où il est hébergé sur le réseau internet.Pour commencer, nous devons vérifier si le nom de notre domaine est disponible sur gandi.net. Une fois, que cela est fait, nous pouvons acheter ce nom de domaine, ici : animal-crossing.net. On y associera ensuite un hostname dans les paramètres "Glue Reccords" à notre adresse IP, ici 193.48.57.165. De plus, nous ajouterons dans "Nameservers" notre host name : "ns.animal-crossing.site" puis "ns6.gandi.net" comme serveur secondaire. Un fois ces premières modifications réalisées, nous allons configurer notre DNS.
Fichiers de configuration
On commencera par se connecter en SSH à notre machine virtuelle :
ssh root@193.48.57.165
Puis, si ce n'est pas déjà fait, on installera bind9 avec la commande :
apt install bind9
On se rendra ensuite dans le fichier :
/etc/bind/name.conf.options
Et on y ajoutera le code suivant :
options { directory "/var/cache/bind"; forwarders { 0.0.0.0; }; dnssec-validation auto; listen-on-v6 { any; }; allow-transfer { "allowed_to_transfer"; }; }; acl "allowed_to_transfer" { 217.70.177.40/32; };
On définiera par la suite notre zone dans le fichier suivant :
/etc/bind/named.conf.local
On y ajoutera le code suivant :
zone "animal-crossing.site" { type master; file "/etc/bind/db.animal-crossing.site"; };
Enfin on configurer le fichier de zone qui nous permer de configurer le domaine. on créer alors le fichier :
/etc/bind/db.animal-crossing.site
Puis on entre la configuration suivante :
$TTL 3600 @ IN SOA ns.animal-crossing.site. postmaster.animal-crossing.site. ( 1 ; Version 1800 ; Refresh (30m) 600 ; Retry (10m) 3600 ; Expire (1h) 3600 ) ; Minimum TTL (1h) IN NS ns.animal-crossing.site. IN NS ns6.gandi.net. ns IN A 193.48.57.165
Vérification du fonctionnement
Afin de vérifier si nous avons correctement modifiés les fichiers de configuration, nous allons entrer la commande suivante :
named-checkzone animal-crossing.site /etc/bind/db.animal-crossing.site
Si cette commande nous renvoie OK c'est que la configuration que nous avons faite ne contient pas d'erreur
Sécurisation de site web par certificat
On commencera par installer le paquetage apache2 et nous le configuerons en mode sécurisé à l'aide d'une clé asymétrique et d'un certificat signé par une autorité de certification.
apt install apache2
Sécurisation de serveur DNS par DNSSEC
Puis le fichier /etc/bind/named.conf.options on ajoute dnssec-enable yes. Nous allons créer un dossier dans lequel nous allons générer les clés :
cd /etc/bind mkdir animal-crossing.site.dnssec
On génèrera les clés :
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE animal-crossing.site dnssec-keygen -a RSASHA1 -b 1024 -n ZONE animal-crossing.site
Ensuite, je renomme les deux paires de clés obtenues :
mv Kanimal-crossing.site.+005+38625.key animal-crossing.site-ksk.key mv Kanimal-crossing.site.+005+38625.private animal-crossing.site-ksk.private
mv Kanimal-crossing.site.+005+42451.key animal-crossing.site-zsk.key mv Kanimal-crossing.site.+005+42451.private animal-crossing.site-zsk.private
On modifiera le fichier :
/etc/bind/db.animal-crossing.site
Et on y ajoutera :
$include /etc/bind/animal-crossing.site.dnssec/animal-crossing.site-ksk.key $include /etc/bind/animal-crossing.site.dnssec/animal-crossing.site-zsk.key
On signera les enregistrements :
dnssec-signzone -o animal-crossing.site -k animal-crossing.site-ksk ../db.animal-crossing.site animal-crossing.site-zsk
On obtient la réponse suivante :
Zone fully signed: Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 0 stand-by, 0 revoked ../db.animal-crossing.site.signed
On modifie le fichier /etc/bind/named.conf.local
zone "animal-crossing.site" { type master; file "/etc/bind/db.animal-crossing.site.signed"; };
Configuration des routeurs
La configuration des routeurs doit être faite pour les deux routeurs de la salle E304 : 9200 et le ISR4331 ainsi que dans la salle E306 pour le routeur 6509. Pour se faire, plusieurs personnes de la classe ont travaillé dessus. Dans un premier temps Kevin, Quentin et Valentin ont configuré le 9200. Benoit et Belange ont quand à eux configuré le 6509. Pour ma part, j'ai configuré une petite partie de routeur ISR4331.
- DEVELOPER COMMANDES -
Configuration de l'accès WIFI N°2
Commençons par une configuration générale :
ap>enable ap#configure terminal
On se connecte au minicom grâce à la commande :
minicom -s
Puis on changera dans les paramètres la connexion au port USB0 en indiquant :
/dev/ttyUSB0
Ensuite intéressons nous à la configuration du nom de l'hôte :
ap(config)#hostname SE2A5-AP2
Puis de l'accès en SSH :
SE2A5-AP2(config)#aaa new-model SE2A5-AP2(config)#username admin privilege 15 secret glopglop SE2A5-AP2(config)#ip domain-name plil.info SE2A5-AP2(config)#crypto key generate rsa general-keys modulus 2048 SE2A5-AP2(config)#ip ssh version 2 SE2A5-AP2(config)#line vty 0 15 SE2A5-AP2(config-line)#transport input ssh SE2A5-AP2(config-line)#exit
L'accès à la console :
SE2A5-AP2(config)#line console 0 SE2A5-AP2(config-line)#password glopglop SE2A5-AP2(config-line)#exit SE2A5-AP2(config)#aaa new-model SE2A5-AP2(config)#aaa authentication login default local SE2A5-AP2(config)#line con 0 SE2A5-AP2(config)#login authen default SE2A5-AP2(config)#exit
On va sécuriser l'accès :
SE2A5-AP2(config)#service password-encryption SE2A5-AP2(config)#enable secret glopglop SE2A5-AP2(config)#banner motd #Restricted Access#
Configuration l'accès au VLAN 164 :
SE2A5-AP2(config)#aaa authentication login EAP_ANIMALCROSSING group RADIUS_ANIMALCROSSING SE2A5-AP2(config)#radius-server host 193.48.57.165 auth-port 1812 acct-port 1813 key glopglop SE2A5-AP2(config)#aaa group server radius RADIUS_ANIMALCROSSING SE2A5-AP2(config-server)#server 193.48.57.165 auth-port 1812 acct-port 1813 SE2A5-AP2(config-server)#exit SE2A5-AP2(config)#dot11 ssid ANIMALCROSSING2 SE2A5-AP2(config-ssid)#mbssid guest-mode SE2A5-AP2(config-ssid)#vlan 164 SE2A5-AP2(config-ssid)#authentication open eap EAP_ANIMALCROSSING SE2A5-AP2(config-ssid)#authentication network-eap EAP_ANIMALCROSSING SE2A5-AP2(config-ssid)#authentication key-management wpa SE2A5-AP2(config-ssid)#exit SE2A5-AP2(config)#interface dot11radio0.164 SE2A5-AP2(config-subif)#encapsulation dot1q 164 SE2A5-AP2(config-subif)#bridge-group 64 SE2A5-AP2(config-subif)#exit SE2A5-AP2(config)#interface g0.164 SE2A5-AP2(config-subif)#encapsulation dot1q 164 SE2A5-AP2(config-subif)#bridge-group 64 SE2A5-AP2(config-subif)#exit SE2A5-AP2(config)#interface dot11radio 0 SE2A5-AP2(config-if)#no shutdown SE2A5-AP2(config-if)#encryption vlan 164 mode ciphers aes-ccm tkip SE2A5-AP2(config-if)#mbssid SE2A5-AP2(config-if)#ssid ANIMALCROSSING2 SE2A5-AP2(config-if)#exit
Afin de vérifier si notre SSID fonctionne, on va effectuer les commandes suivantes :
SE2A5-AP2#show dot11 bssid
On obtient :
Interface BSSID Guest SSID Dot141Radio0 ecc8.8243.cd40 No ANIMALCROSSING2
On souhaite passer notre Guest de No à Yes pour se faire :
conf t interface do0 no shut exit
On refait la commande :
SE2A5-AP2#show dot11 bssid
On obtient :
Interface BSSID Guest SSID Dot141Radio0 ecc8.8243.cd40 Yes ANIMALCROSSING2
Notre SSID est bien configuré pour le point Wifi N°2.
Configuration de l'accès WIFI N°1
Un autre groupe ayant réaliser la configuration du point d'accès N°1, nous allons juste configurer notre VLAN :
Configuration l'accès au VLAN 164 :
SE2A5-AP1(config)#aaa authentication login EAP_ANIMALCROSSING group RADIUS_ANIMALCROSSING SE2A5-AP1(config)#radius-server host 193.48.57.165 auth-port 1812 acct-port 1813 key glopglop SE2A5-AP1(config)#aaa group server radius RADIUS_ANIMALCROSSING SE2A5-AP1(config-server)#server 193.48.57.165 auth-port 1812 acct-port 1813 SE2A5-AP1(config-server)#exit SE2A5-AP2(config)#dot11 ssid ANIMALCROSSING2 SE2A5-AP2(config-ssid)#mbssid guest-mode SE2A5-AP2(config-ssid)#vlan 164 SE2A5-AP2(config-ssid)#authentication open eap EAP_ANIMALCROSSING SE2A5-AP2(config-ssid)#authentication network-eap EAP_ANIMALCROSSING SE2A5-AP2(config-ssid)#authentication key-management wpa SE2A5-AP2(config-ssid)#exit SE2A5-AP2(config)#interface dot11radio0.164 SE2A5-AP2(config-subif)#encapsulation dot1q 164 SE2A5-AP2(config-subif)#bridge-group 64 SE2A5-AP2(config-subif)#exit SE2A5-AP2(config)#interface g0.164 SE2A5-AP2(config-subif)#encapsulation dot1q 164 SE2A5-AP2(config-subif)#bridge-group 64 SE2A5-AP2(config-subif)#exit SE2A5-AP2(config)#interface dot11radio 0 SE2A5-AP2(config-if)#no shutdown SE2A5-AP2(config-if)#encryption vlan 164 mode ciphers aes-ccm tkip SE2A5-AP2(config-if)#mbssid SE2A5-AP2(config-if)#ssid ANIMALCROSSING2 SE2A5-AP2(config-if)#exit
Exploitation des failles du systèmes
Cassage de clef WEP
Pour cette partie, nous avons cassé la clé WEP qui se nomme "Cracotte 01". Nous commençons par installer l'utilitaire aircrack
su - apt install aircrack-ng
On prendra une clé USB Wifi et on listera les différentes interfaces de notre ordinateur :
lsusb
PHOTO
On réalise les commandes suivants :
airmon -ng
PHOTO
On va renommer l'interface en wlan0, nous allons utiliser la commande suivante pour passer la carte Wifi en monitor :
airmon -ng start wlx40a5ef059e47
On va ensuite faire cette commande afin d'écouter les trames Wifi de la clé USB:
airodump -ng wlan0
On obtient alors les informations suivantes :
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9C:50:50 -40 2 3 4 3 54e WEP WEP cracotte01
On filtre notre interface :
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9C:50:50 -42 10 30 19 4 3 54e WEP WEP cracotte01
On lance l'interface dans ce terminal avec la commande suivante :
airodump -ng -c 3 --bssid 04:DA:D2:9C:50:50 wlan0
On va ouvrir un autre terminal et on lancera le cassage de la clé :
airodump -ng /tmp/cracotte01-01.cap
On obtient :
# BSSID ESSID Encryption 1 04:DA:D2:9C:50:50 cracotte01 WEP (0 IVs)
Après 5-10min, on obtient le code de la clé Wifi :
PHOTO
Cassage de clef WAP-PSK
On vérifiera que notre utilitaire aircrack soit bien installé, si ce n'est pas le cas,on refera la commande :
apt-get install aircrack-ng
Puis on listera les interfaces Wifi :
arimon-ng
On obtiendra :
PHY Interface Driver Chipset phy0 wlx40a5ef01370a rt2800usb Ralink Technology, Corp. RT5370
On passera la carte Wifi en monitor :
airmon-ng start wlx40a5ef01370a
On aura alors rennomé notre interface wlx40a5ef01370a par wlan0mon
PHY Interface Driver Chipset phy0 wlan0mon rt2800usb Ralink Technology, Corp. RT5370
Une fois le handshake récupéré, nous avons créé notre propre dictionnaire contenant l'ensemble des mots de passes potentiels.Nous avons alors utilisé la commande suivante :
crunch 8 8 0123456789 >> /home/pifou/Desktop/Dico_Kracotte01.txt
Afin de casse la clé WPA, nous allons utiliser la commande suivante :
aircrack-ng -w xaa kracotte01.txt-01.cap
On obtient le résultat suivant :
Aircrack-ng 1.5.2
[08:04:01] 66637843/102795810 keys tested (958.44 k/s)
Time left: 10 hours, 29 minutes, 3 seconds 64.83%
KEY FOUND! [ 66601666 ]
Master Key : 43 33 CD 6B EA 53 29 36 F9 53 21 00 33 0A 1A 45 18 E3 D5 1D DD 1C 37 29 B9 6B 49 32 24 80 02 E5
Transient Key : 77 A3 E9 BF CE FD D1 2B D9 62 3B 15 3C D5 2C 20 59 59 19 3E AF 62 8F C9 1A 48 9C 1B 4B A4 89 70 B3 4C 79 2A 0A FB C9 71 1F 10 01 BE A5 FA 96 41 18 04 12 0E 01 91 DD EA B2 96 17 F3 69 AC 7C F5
EAPOL HMAC : DA 48 8D 5E B4 0E F9 78 63 C7 8E 01 56 40 82 10