Atelier SysRes SE4 2024/2025 E4
AARV - BOURSAULT - BONNINGRE
Création de la VM
xen-create-image --hostname=SE4.Bree --dhcp --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2G --bridge=macron
Configuration machine de service
Démarrage de la VM : xen create SE4.Bree.cfg
Ouverture de la VM : xen console SE4.Bree
Var et Home
On monte les disques dans /var et /home en ajoutant
/dev/xvda3 /home ext4 defaults 02
/dev/xvdb1 /var ext4 defaults 02
dans /etc/fstab
IP
On modifie la configuration réseau de la machine mandataire dans /etc/interfaces L'interface eth0 permet de connecter les trois machines entre elles, l'interface eth1 permet de se connecter à internet via le réseau de l'école
On modifie ensuite la configuration de l'interface des machines de service
On peut ping entre les machines.
SSH
Pour activer le SSH, on attribue des ports a chacune des machines de service grace à iptables.
Ensuite on peut renseigner ce port dans la commande ssh pour choisir la machine à laquelle on veut se connecter :
ssh -p i root@193.48.57.174
avec i le numéro de port (2201 pour Bree, 2202 pour Gaby).
DNS
Après avoir installé bind9 et apache2, on a plusieurs fichiers de configuration à modifier pour mettre en place le DNS.
Dans /etc/resolv.conf
on ajoute:
search merci-macron.online
nameserver 192.168.1.20
nameserver 192.168.1.21
Dans /etc/bind/named.conf.local dans Bree :
zone "merci-macron.online" {
type master;
file "/etc/bind/merci-macron.online.db";
allow-transfer{secondaries;};
also-notify{hiddensecondaries;};
notify yes;
};
acl "secondaries"{
2001:660:4401:60a0:216:3eff:fe2d:8017;
2001:660:4401:60a0:216:3eff:fe7a:5d61;
};
masters "hiddensecondaries" {
2001:660:4401:60a0:216:3eff:fe7a:5d61;
};
zone "pardon-macron.online" {
type slave;
file "/etc/bind/pardon-macron.online.db";
masters {2001:660:4401:60a0:216:3eff:fe2d:8017; };
};
Dans /etc/bind/merci-macron.online.db
:
$TTL 200
@ IN SOA ns.merci-macron.online. admin.merci-macron.online. (
2023021103 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
200 ) ; Minimum TTL
@ IN NS ns.merci-macron.online.
@ IN A 193.48.57.174
@ IN AAAA 2001:660:4401:60a0:216:3eff:fe1f:1cae
ns IN A 193.48.57.174 ; Adresse IPv4 de votre serveur DNS primaire
ns IN AAAA 2001:660:4401:60a0:216:3eff:fe1f:1cae
www IN CNAME ns
En utilisant dig @localhost ns.merci-macron.online
, on peut vérifier qu'on obtient bien une réponse :
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> @localhost ns.merci-macron.online
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49202
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b39162197e5f806c0100000067c9f2d908bfad76ed0da298 (good)
;; QUESTION SECTION:
;ns.merci-macron.online. IN A
;; ANSWER SECTION:
ns.merci-macron.online. 200 IN A 193.48.57.174
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(localhost) (UDP)
;; WHEN: Thu Mar 06 19:09:13 UTC 2025
;; MSG SIZE rcvd: 95
De même on peut faire la même chose avec merci-macron.online
, on peut le faire en Ipv4 et aussi en Ipv6 et on voit bien que tout fonctionne.
En créant une page web qu'on met dans /var/www/html/index.html
, notre page s'affiche si l'on se connecte en Ipv6.
DNSSEC
Pour obtenir le DNSSEC, on ajoute dans named.conf.local
:
zone "merci-macron.online" {
type master;
file "/etc/bind/merci-macron.online.db";
allow-transfer{secondaries;};
also-notify{hiddensecondaries;};
notify yes;
key-directory "/etc/bind/keys";
dnssec-policy "dnspol";
inline-signing yes;
};
dnssec-policy "dnspol" {
keys {
ksk key-directory lifetime unlimited algorithm 13;
zsk key-directory lifetime unlimited algorithm 13;
};
nsec3param;
};
On crée un dossier keys dans lequel vont être générées les clés, puis on ajoute la clé KSK sur Gandi.
Fail2Ban
Fail2Ban permet de protéger les machines des attaques.
On l'installe avec ces options :
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
On peut voir que ça fonctionne car des machines sont déjà bannies (des bots étaient déjà en train d'attaquer nos machines).
HTTPS
Ayant peur d'être envoyés au front devant les récents événements, nous avons décidé d'opter pour des noms de domaines plus respectueux de notre grand président de la République actuel. (nous avons perdu les clés SSL et avons dû tout recommencer). Pour activer HTTPS, nous avons besoin de trois fichiers :
*le certificat SSL délivré par Gandi
*le certificat intermédiaire qu'on peut retrouver au même endroit
* la clé SSH (que nous avions perdu)
Nous allons déposer ces trois fichiers dans /etc/ssl
puis nous devons créer un nouveau fichier de configuration dans /etc/apache2/sites-available/
que nous appellerons judicieusement merci-macron.conf
:
<IfModule mod_ssl.c>
<VirtualHost *:80>
ServerName merci-macron.online
ServerAlias www.merci-macron.online
Redirect / https://merci-macron.online/
</VirtualHost>
<VirtualHost _default_:443>
ServerName merci-macron.online
ServerAlias www.merci-macron.online
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/merci-macron/merci-macron.online.crt
SSLCertificateKeyFile /etc/ssl/merci-macron/myserver.key
SSLCertificateChainFile /etc/ssl/merci-macron/GandiCert.pem
SSLProxyEngine on
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Pour que le fichier soit pris en compte, nous exécutons les commandes :
a2enmod ssl
a2ensite pardon-macron.conf
service apache2 reload
En essayant de se connecter au site en HTTPS, on voit bien que le site s'affiche.
Finalement pour avoir l'accès en IPv4, on va devoir utiliser la machine mandataire qui va recevoir les requêtes HTTP et HTTPS pour le domaine merci-macron.online et les transmettre à la machine de service SE4.Bree. C'est donc une machine faisant du reverse proxy.
On ajoute donc un fichier de configuration merci-macron.conf
dans /etc/apache2/sites-available
:
# Partie HTTP (port 80)
<VirtualHost *:80>
ServerName merci-macron.online
ServerAlias www.merci-macron.online
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/
</VirtualHost>
#Partie HTTPS (port 443)
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName merci-macron.online
ServerAlias www.merci-macron.online
SSLEngine on
SSLCertificateFile /etc/ssl/certs/merci-macron.online.crt
SSLCertificateKeyFile /etc/ssl/private/merci-macron.key
SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/
</VirtualHost>
</IfModule>
Ensuite on ajoute ce fichier à la configuration exécutée puis on redémarre le service :
a2ensite pardon-macron.online.conf
systemctl restart apache2
On peut essayer sur le réseau de la fac de se connecter en IPv4 car il n'est pas configuré pour l'IPv6 et on voit que ça fonctionne.