TP sysres IMA2a5 2020/2021 G1
Login: root & password: glopglopglop
Sommaire
Introduction
Ce TP consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système, nous avons eu à 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é nous ont permis de mettre en pratique nos connaissances en la matière.
Partie Hardware
Nécessité de changer le rack. Nous avons eu la chance d'avoir à notre disposition du matériel récent que la classe s'est empressée d'installer. Les cartes et alimentations enfichées dans le rack initialement contenu dans la baie ont été retirées une à une afin de l'alléger. Ensuite le rack (non E) a été retiré. Puis le nouveau rack (E) a été mis dans la baie. Les points de fixations ont du être adaptés. Suivi par "l’en-fichage" des alimentations ainsi que des nouvelles cartes, correspondant au nouveau rack.
Serveur & Disques
Lors de la première séance de TP, nous avons voulu rajouter des nouveaux disques sur le serveur capbreton. Pour cela, nous avons extrait un disque d'un autre serveur, ainsi qu'un disque présent sur le serveur capbreton afin de les comparer: berceau identique, taille du disque, emplacement de la connectique.
Installation des systèmes d’exploitation
Connexion au serveur
Dans le cadre de notre TP, nous avons du créer nos machines virtuelles sur le serveur capbreton:
ssh capbreton.plil.info
Création de la Machine Virtuelle
Grace à la commande ci-dessous, on définit:
- Le nom de la machine: rafale
- Son adresse IP: 193.48.57.164
xen-create-image --hostname rafale --ip 193.48.57.164 --gateway 193.48.57.163 --dir /usr/local/xen --dist beowulf
Dans un autre terminal, on peut utiliser la commande suivante afin d'afficher l'avancement de l'installation de la machine:
tail -f /var/log/xen-tools/rafale.cfg
Configuration de la Machine Virtuelle
vim /etc/xen/rafale.cfg
Dans le fichier obtenu, dans la catégorie Networking, il a fallu rajouter le bridge de notre groupe, à savoir IMA2a5.
# # Configuration file for the Xen instance rafale, created # by xen-tools 4.8 on Fri Sep 25 10:23:30 2020. # # # Kernel + memory size # kernel = '/boot/vmlinuz-4.19.0-9-amd64' extra = 'elevator=noop' ramdisk = '/boot/initrd.img-4.19.0-9-amd64' vcpus = '1' memory = '256' # # Disk device(s). # root = '/dev/xvda2 ro' disk = [ 'file:/usr/local/xen/domains/rafale/disk.img,xvda2,w', 'file:/usr/local/xen/domains/rafale/swap.img,xvda1,w', ] # # Physical volumes # # # Hostname # name = 'rafale' # # Networking # dhcp = 'dhcp' vif = [ 'mac=00:16:3E:92:0E:6D, bridge=IMA2a5' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart'
Home & Var
Sur capbreton:
lvcreate -L10G -n rafale-home virtual lvcreate -L10G -n rafale-var virtual
mke2fs /dev/virtual/rafale-home mke2fs /dev/virtual/rafale-var
Puis dans le fichier /etc/xen/rafale.cfg:
disk = [ 'file:/usr/local/xen/domains/rafale/disk.img,xvda2,w', 'file:/usr/local/xen/domains/rafale/swap.img,xvda1,w', 'phy:/dev/virtual/rafale-home,xvdb1,w', 'phy:/dev/virtual/rafale-var,xvdb2,w', ]
Afin que Home et Var soient pris en compte par la VM, je me connecte sur cette dernière et modifie le fichier /etc/fstab:
vim /etc/fstab
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0 /dev/xvda1 none swap sw 0 0 /dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1 /dev/xvdb1 /home ext4 defaults 0 2 /dev/xvdb2 /var ext4 defaults 0 2
On sort du fichier et on va s'occuper du montage de /var, en passant par un dossier provisoire (/mnt):
mount /dev/xvdb2 /mnt mv /var/* /mnt umount /mnt mount -a
On peut taper lsblk ou bien db afin de vérifier la bonne utilisation des volumes.
Démarrage de la Machine Virtuelle
xen create /etc/xen/rafale.cfg xen console rafale
Le terminal demande ensuite un login et un mot de passe. Le login par défaut est root et le mot de passe est compliqué. Il apparaît tout en bas de la commande tail tapée dans un deuxième terminal, ou on peut le récupérer grâce à la commande (dans un terminal connecté sur capbreton):
cat /var/log/xen-tools/rafale.log | grep Password Root Password : jSWVeqxbg58uvrkfByMxvjJ
Cette dernière commande permet de tout simplement afficher la ligne contenant le mot de passe contenue dans le fichier log. On modifie ensuite ce mot de passe en tapant (sur la VM):
passwd
Le mot de passe est maintenant glopglopglop.
Services Internet
Configuration SSH
Toujours en étant connecté sur la VM, on installe le package openssh-server:
apt install openssh-server
On modifie le fichier de configuration du DNS:
vim /etc/ssh/sshd_config
Puis après avoir modifier ce fichier, on redémarre le SSH:
service ssh restart [ ok ] Restarting OpenBSD Secure Shell server: sshd.
On peut vérifier que le SSH soit bien en route:
service ssh status [ ok ] sshd is running.
Configuration DNS
On rajoute une option dans le fichier /etc/bind/named.conf.options:
dnssec-enable yes;
On se place dans le dossier /etc/bind et on crée un nouveau répertoire afin d'y stocker les clés:
cd /etc/bind mkdir liosaw.site.dnssec cd liosaw.site.dnssec
On génère ensuite les clés:
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE liosaw.site dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE liosaw.site
Puis on les renomme grâce à mv:
liosaw.site-ksk.key liosaw.site-ksk.private liosaw.site-zsk.key liosaw.site-zsk.private
On apporte quelques modifications à /etc/bind/liosaw.site:
$include /etc/bind/liosaw.dnssec/liosaw.site-ksk.key $include /etc/bind/liosaw.site.dnssec/liosaw.site-zsk.key
Et on effectue la signature des enregistrements de la zone:
dnssec-signzone -o liosaw.site -k /etc/bind/liosaw.site.dnssec/liosaw.site-ksk liosaw.site /etc/bind/liosaw.site.dnssec/liosaw.site-zsk
Un fichier liosaw.site.signed a bel et bien été créé dans /etc/bind.
On modifie maintenant le fichier /etc/bind/named.conf.local:
file "/etc/bind/liosaw.site.signed";
On se rend sur le site gandi.net et dans la section DNSSEC on ajoute les clés trouvées dans le fichier liosaw.site-ksk.key:
AwEAActlYbMs52QQoWETq5YrPmmc4xLvY1Ayj5SpEDHb8tX15DmClDC4 KhzLBUeQlWOUZsByYAtTGsz48cJCzqqbxm9F3lZvPU70O2GlCVIOP5QQ TMKasLTcwt2o9548g1nIGKr6todOGbLvsSUSj9C5UeLTGxstkALEOpTc kU5PC4q5wkBXL/8qwlgaX7z/7OQvQXsxktMR2I3G97wE/MwgaNMWka36 o9zcQrGhgPp/oW9wDV2RWOPdeCUP69k1G5atjKoGBtg3S8DaNwh3AMFv BAvk+oUJJqMcLRb7cGuDk2Jo6RzUeZHVKzbSSg1RYuxVcfCbUAU/0UJh T818vNOyA4U=
On redémarre Bind9:
service bind9 restart
On peut ensuite vérifier la chaîne d'authentification grâce à: https://dnsviz.net/d/liosaw.site/dnssec/
Apache2
https://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl
Sur la machine virtuelle, on se place dans le dossier /etc/apache2/sites-available et on crée un fichier liosaw.site.conf amené à remplacer default-ssl.conf:
cd /etc/apache2/sites-available vim liosaw.site.conf
<VirtualHost *:80> ServerName liosaw.site ServerAlias www.liosaw.site ServerAdmin lionelsawicz@gmail.com DocumentRoot /var/www/html Redirect permanent / https://liosaw.site
</VirtualHost>
<VirtualHost *:443>
ServerName liosaw.site ServerAlias www.liosaw.site ServerAdmin lionelsawicz@gmail.com DocumentRoot /var/www/html
<Directory /var/www/html> Options -Indexes +FollowSymLinks +MultiViews AllowOverride none Require all granted </Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/certif/liosaw.site.crt SSLCertificateKeyFile /etc/apache2/certif/liosaw.key
SSLCACertificateFile /etc/apache2/certif/GandiStandardSSLCA2.pem
ErrorLog /var/log/apache2/error.liosaw.site-secu.log CustomLog /var/log/apache2/access.liosaw.site-secu.log combined </VirtualHost>
Certificat SSL
On installe mailx:
apt install bsd-mailx
Ainsi que postfix:
apt install postfix
On choisit les options site internet puis on entre notre nom de domaine: liosaw.site
On modifie le fichier /etc/aliases:
admin : root
Suivi par la commande:
newaliases
On peut maintenant tester l'envoi d'un mail sur admin@liosaw.site.
On se place dans le répertoire /etc/apache2, on crée un répertoire certifet on se place dans ce dossier :
cd /etc/apache2 mkdir certif cd certif
Grâce à l'aide fournie sur Gandi, on trouve la commande permettant de générer les clés .key et .csr:
openssl req -nodes -newkey rsa:2048 -sha256 -keyout liosaw.key -out liosaw.csr
Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Nord Locality Name (eg, city) []:Lille Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech Lille Organizational Unit Name (eg, section) []:SE2A5 Common Name (e.g. server FQDN or YOUR name) []:liosaw.site Email Address []:lionelsawicz@gmail.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:glopglopglop An optional company name []:
Ensuite on peut se rendre sur Gandi dans SSL Certificates et on procède à l'achat du certificat. Pour cela on doit copier le .csr sur le site:
cat liosaw.csr
-----BEGIN CERTIFICATE REQUEST----- MIIC9TCCAd0CAQAwgZIxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDjAMBgNVBAsMBVNF MkE1MRQwEgYDVQQDDAtsaW9zYXcuc2l0ZTElMCMGCSqGSIb3DQEJARYWbGlvbmVs c2F3aWN6QGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AOXk6CAqkOMG+i6z4lWWF/gUaiwkYaeJjAs7JC2iQE5EuImDk1upBNrrQF268ndo uuSNnTKpL5TahfnU7XsBThG7zGoHABHIcH6cmeIo6o1kpqZTmqCGMlGY0Ox7CJ2c 4hPEXHOwxepde3v/t/iAZoHskL3d81pJIbE3tX7552NPpkQEHrofxgNa/l4l6eXh 5cufN9Wd3hyne+Vz32HXUgjMNoNy0H5Y2Y84fpqMp2ROAXJ9dtMvgGbm3hpMS0a1 R9juGpqkcVgL+e7kAfsTD1AYg3fqhDRYizD/UAuEu65gsxR4a4BBNEBX2LvEIgF1 15wAv4ks1xyVnqp+wDq4IHECAwEAAaAdMBsGCSqGSIb3DQEJBzEODAxnbG9wZ2xv cGdsb3AwDQYJKoZIhvcNAQELBQADggEBADym12xQF+qtpQYtFFgdtt/HPJI9sFa/ TER/jTslUihwqzPzzUPBZamJsQCLB/VIjsazY1y4axYL31rNnSYQiQoaN2AneHge EhMAfSExuv0VJxbB6dWew9D3WfT3Lfat2r/FiChuDEqDlYTH6RY4jsTYMD3i8L8l rGZGdpKjyR6N4EaPAo41f9aoiPcQF8wwXj9yDNcxFwLKR9Ks9pRDw5QrBeeI9E2d LpoPwO0yoiOlR2J2a2gPQ57IjnznwHS6DO2Fa2LTSUw1d7Rg1DWIserNQgy+JZ2U HKpPtaZY05Ixsrg4NMFHR+vdL9oN+S8TilDWSrO1YNAHYnkHDEVMKog= -----END CERTIFICATE REQUEST-----
Et on choisit la vérification par mail. On regarde ses mails grâce à la commande mailx ou mutt et on peut finaliser l'achat du certificat.
Suite à cela, on peut télécharger deux fichiers: un .pem et un .crt qui seront sur la zabeth. On peut les copier sur la machine virtuelle.
Depuis un terminal ouvert sur la zabeth:
cd /Téléchargement scp liosaw.site.crt root@193.48.57.164:/etc/apache2/certif scp GandiStandardSSLCA2.pem root@193.48.57.164:/etc/apache2/certif
Tests d'intrusion
Cassage WEP
apt-get install aircrack-ng
airmon-ng PHY Interface Driver Chipset phy3 wlx40a5ef0590b2 rt2800usb Ralink Technology, Corp. RT5370
airmon-ng start wlx40a5ef0590b2 PHY Interface Driver Chipset phy3 wlan0mon rt2800usb Ralink Technology, Corp. RT5370
airodump-ng --encrypt wep -c 2 wlan0mon
ip link set wlan0mon up
dmseg
apt install firmware-linux-nonfree
airodump-ng --encrypt wep wlan0mon
airodump-ng --encrypt wep -c 9 wlan0mon
04:DA:D2:9C:50:50
airodump-ng -c 9 --bssid 04:DA:D2:9C:50:50 wlan0mon
airodump-ng -c 9 --bssid 04:DA:D2:9C:50:50 -w data.txt wlan0mon
Dans un autre terminal:
aircrack-ng -b 04:DA:D2:9C:50:50 data*.cap
Cassage WPA
On procède de la même manière que pour le cassage WEP:
airmon-ng PHY Interface Driver Chipset phy3 wlx40a5ef0590b2 rt2800usb Ralink Technology, Corp. RT5370
airmon-ng start wlx40a5ef0590b2 PHY Interface Driver Chipset phy3 wlan0mon rt2800usb Ralink Technology, Corp. RT5370
airodump-ng --encrypt wpa wlan0mon
airodum-ng --encrypt -c 4 wpa wlan0mon
00:14:1B:60:8C:20
On crée un dictionnaire de mots de passe grâce à crunch:
crunch 8 8 0123456789 >> dico_mdp.txt
Dans un autre terminal:
aircrack-ng data*.cap -w dico_mdp.txt
Aircrack-ng 1.5.2 [00:39:37] 10189509/102795810 keys tested (5109.71 k/s) Time left: 5 hours, 2 minutes, 6 seconds 9.91% KEY FOUND! [ 10222222 ] Master Key : 30 D0 05 C7 07 62 21 5B 2F EA DA 24 D2 69 2B 2E 0A 3A E3 92 13 1A C2 11 4A 94 09 B9 23 8E D1 D5 Transient Key : 5C CA 88 B1 E8 C7 71 88 1F 32 36 28 66 90 F4 88 A1 DD 58 C6 E7 09 2C 8D 8D CA A6 F4 D8 A0 6A A9 D6 AF 1C 18 93 B4 6A 51 8B 8F 3E 97 96 7C 1C 61 0E 15 78 82 D1 91 BB 5C 84 F5 A4 9D E5 D2 C9 E5 EAPOL HMAC : A7 CA 2F 8E 12 05 BF 54 43 02 D0 75 00 2F 72 63
Réalisations
Sécurisation de données
https://doc.ubuntu-fr.org/raid_logiciel
On crée trois partitions sur Capbreton:
lvcreate -L1G -n rafale-raid1 virtual lvcreate -L1G -n rafale-raid2 virtual lvcreate -L1G -n rafale-raid3 virtual
On peut vérifier grâce à la commande lvdisplay
mke2fs /dev/virtual/rafale-raid1 mke2fs /dev/virtual/rafale-raid2 mke2fs /dev/virtual/rafale-raid3
On éteint la machine virtuelle:
xen shut rafale
Et on modifie le fichier de configuration:
disk= [ ...................... 'phy:/dev/virtual/rafale-raid1,xvdb3,w', 'phy:/dev/virtual/rafale-raid2,xvdb4,w', 'phy:/dev/virtual/rafale-raid3,xvdb5,w', ]
On redémarre la machine virtuelle:
xen create /etc/xen/rafale.cfg
Puis on se connecte avec un xen console rafale ou ssh root@193.48.57.164 et on installe mdadm:
apt-get install mdadm
On construit le volume RAID md0:
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
On termine la construction par la daemonisation du volume RAID. On fait en sorte que le système charge le volume à chaque démarrage:
mdadm --monitor --daemonise /dev/md0
On formate le volume RAID:
mkfs.ext4 /dev/md0
On modifie maintenant le fichier /etc/fstab afin d'y inclure md0:
/dev/md127 /media/raid ext4 defaults 0 1
Et on crée le dossier /media/raid:
mkdir /media/raid
Grâce à la commande fdisk -l , on peut obtenir des informations sur les disques. (md0 est devenu md127 entre temps.)
mount -a
Chiffrement de données
Sur la zabeth, on commence par installer lvm2 et cryptsetup:
apt-get install lvm2 apt-get install cryptsetup
Ensuite on affiche les périphériques disponibles:
lsblk
Puis on accède à un menu permettant d'effectuer des manipulations sur la clé:
fdisk /dev/sdb
On peut supprimer les partitions existantes avec d puis en créer une nouvelle avec n puis p puis valider toutes les options par défaut.
On peut maintenant chiffrer le périphérique:
cryptsetup luksFormat -c aes -h sha256 /dev/sdb1
cryptsetup open --type luks /dev/sda1 home
cryptsetup close --type luks home