« Atelier SysRes SE4 2025/2026 E13 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 6 : | Ligne 6 : | ||
== Infos concernant notre binôme == | == Infos concernant notre binôme == | ||
Binôme : '''BIERNACKI Antonin''' [[ | Binôme : '''BIERNACKI Antonin''' [[https://wiki-se.plil.fr/mediawiki/index.php/Atelier_SysRes_SE4_2025/2026_E14]] | ||
Mandataire : '''superman''' | Mandataire : '''superman''' | ||
| Ligne 12 : | Ligne 12 : | ||
IP publique de la mandataire : '''193.48.57.169''' | IP publique de la mandataire : '''193.48.57.169''' | ||
Nom service | Nom service : '''catwoman''' | ||
Nom de domaine | Nom de domaine : '''dardevil.tech''' (le e manquant dans daredevil est une pure volonté du binôme et un choix pratique et judicieux pour ce TP ;) ) | ||
Nom service 2 | Nom service 2 : '''batman''' | ||
Nom de domaine 2 | Nom de domaine 2 : '''deadpool.tech''' | ||
Bridge : '''pont_ironman''' | Bridge : '''pont_ironman''' | ||
Version du 1 mars 2026 à 17:24
TON PRENOM TON NOM
IOT 4
2025-2026
Infos concernant notre binôme
Binôme : BIERNACKI Antonin [[1]]
Mandataire : superman
IP publique de la mandataire : 193.48.57.169
Nom service : catwoman
Nom de domaine : dardevil.tech (le e manquant dans daredevil est une pure volonté du binôme et un choix pratique et judicieux pour ce TP ;) )
Nom service 2 : batman
Nom de domaine 2 : deadpool.tech
Bridge : pont_ironman
Réseau IPv4 : 192.168.69.0/24
Création du bridge
auto pont_ironman
iface pont_ironman inet manual
bridge_ports none
up ip link set $IFACE up
down ip link set $IFACE down
ifup pont_ironman
Création des machines virtuelles
Nous avons créé nos trois machines sur le serveur capbreton via les commandes suivantes :
root@capbreton:~# xen-create-image --hostname=SE4.catwoman --dhcp --bridge=pont_ironman --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2G
root@capbreton:~# xen-create-image --hostname=SE4.superman --dhcp --bridge=pont_ironman --dir=/usr/local/xen --size=10GB --dist=daedalus --memory=2G
Ces commandes fournissent un tableau récapitulatif avec le root password qu'il faut noter pour pouvoir se connecter (ce mot de passe est retrouvable dans le .cfg de la machine). Si vous souhaitez changer le mot de passe de votre machine, veillez à mettre un mot de passe robuste car cette machine sera sur internet. xen create permet de démarrer les machines avec leurs fichiers de configuration :
xen create /etc/xen/SE4.catwoman.cfg
xen create /etc/xen/SE4.superman.cfg
xen console permet d'accéder à la console de la machine virtuelle (pour quitter la console un exit suffit et pour quitter la saisie de connexion Ctrl + Shift + 5) :
xen console SE4.catwoman
xen console SE4.superman
Configuration de la machine de service
Montage des partitions /home et /var
Sur capbreton
Pour créer les partitions /home et /var on entre les deux commandes suivantes dans /dev/virtual de capbreton :
lvcreate -n SE4.catwoman.home -L 10G virtual
lvcreate -n SE4.catwoman.var -L 10G virtual
Ensuite on vient ajouter les lignes suivantes dans /etc/xen/SE4.catwoman.cfg :
disk = [
'file:/usr/local/xen/domains/SE4.catwoman/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.catwoman/swap.img,xvda1,w',
'phy:/dev/virtual/SE4.catwoman.home,xvdb,w',
'phy:/dev/virtual/SE4.catwoman.var,xvdc,w',
]
Sur la machine de service
Pour formater et monter les partitions on utilise les commandes suivantes (/!\ pas dans capbreton) :
mkfs -t ext4 /dev/xvdb
mkfs -t ext4 /dev/xvdc
mount /dev/xvdb /mnt
mv /var/* /mnt
umount /mnt
mount -a
Ajouter ces lignes dans /etc/fstab afin que les partitions soient montées de façon automatique au démarrage de la VM :
/dev/xvdb /var ext4 defaults 0 2
/dev/xvdc /home ext4 defaults 0 2
Enfin vous pouvez redémarrer la VM sur capbreton :
xen shutdown SE4.catwoman
xen create /etc/xen/SE4.catwoman.cfg
Configuration réseau
On modifie le fichier /etc/network/interfaces comme suit :
auto lo
iface lo inet loopback
# IPv4
auto eth0
iface eth0 inet static
address 192.168.69.3/24
gateway 192.168.69.1 # IPv4 de superman (mandataire)
# IPv6
auto eth1
iface eth1 inet6 auto
Configuration de la machine mandataire
Configuration réseau
On modifie le fichier /etc/network/interfaces comme suit :
auto lo
iface lo inet loopback
# IPv4 réseau privé
auto eth0
iface eth0 inet static
address 192.168.69.1/24
# IPv4 publique
auto eth1
iface eth1 inet static
address 193.48.57.169/27
gateway 193.48.57.162
On modifie le fichier /etc/xen/SE4.superman.cfg sur capbreton afin d'ajouter une seconde interface réseau branchée sur le bridge public SE4 :
vif = [ 'mac=00:16:3E:19:F0:3B,bridge=pont_ironman', 'mac=00:16:3E:19:F0:3C,bridge=SE4' ]
On fait de même pour catwoman :
vif = [ 'mac=00:16:3E:8F:47:42,bridge=pont_ironman', 'mac=00:16:3E:8F:47:43,bridge=SE4' ]
Configuration SSH et Mascarade
Ces commandes permettent de synchroniser l'heure du système :
apt update
apt install ntp ntpdate host
date
La mascarade se configure avec iptables et consiste à donner une adresse IPv4 permettant d'accéder à internet :
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.69.0/24
iptables-save
Dans les VMs on modifie /etc/ssh/sshd_config en ajoutant :
PermitRootLogin yes
On peut ensuite redémarrer le service SSH :
/etc/init.d/ssh restart
La redirection des ports SSH se fait via les commandes suivantes sur la machine mandataire :
iptables -t nat -A PREROUTING -p tcp --dport 2202 -j DNAT --to-destination 192.168.69.2:22
iptables -t nat -A PREROUTING -p tcp --dport 2203 -j DNAT --to-destination 192.168.69.3:22
iptables-save
Dans le fichier /etc/sysctl.conf la ligne suivante doit être décommentée :
net.ipv4.ip_forward=1
Nous avons aussi installé iptables-persistent pour éviter de perdre la configuration à chaque reboot.
apt install iptables-persistent
Désormais le SSH peut être fait via les commandes suivantes :
# SSH en IPv4 vers catwoman (port 2203)
ssh root@193.48.57.169 -p 2203
# SSH en IPv6
ssh root@2001:660:4401:60a0:216:3eff:fe8f:4743
DNS et DNSSEC
Configuration de BIND9
On modifie le fichier /etc/bind/named.conf.local sur catwoman pour déclarer la zone dardevil.tech en maître et la zone deadpool.tech en secondaire :
dnssec-policy "dnspol" {
keys {
ksk key-directory lifetime unlimited algorithm 13;
zsk key-directory lifetime unlimited algorithm 13;
};
nsec3param;
};
zone "dardevil.tech" {
type master;
file "/etc/bind/zones/db.dardevil.tech";
allow-transfer{secondaries;};
notify yes;
key-directory "/etc/bind/keys";
dnssec-policy "dnspol";
inline-signing yes;
};
acl "secondaries" {
192.168.69.2;
192.168.69.1;
2001:660:4401:60a0:216:3eff:fefa:18d0;
};
zone "deadpool.tech" {
type secondary;
file "/etc/bind/backup/db.deadpool.tech";
primaries{2001:660:4401:60a0:216:3eff:fefa:18d0;};
};
Fichier de zone db.dardevil.tech
On crée le répertoire /etc/bind/zones/ puis on y crée le fichier de zone :
mkdir /etc/bind/zones
$TTL 400
@ IN SOA ns.dardevil.tech admin.dardevil.tech(
3647 ;
21600 ;
3600 ;
2592000 ;
86400 ;
);
@ IN NS ns.dardevil.tech.
@ IN NS ns.deadpool.tech.
ns IN A 193.48.57.169
ns IN AAAA 2001:660:4401:60a0:216:3eff:fe8f:4743
@ IN A 193.48.57.169
@ IN AAAA 2001:660:4401:60a0:216:3eff:fe8f:4743
www IN CNAME dardevil.tech.
Génération des clés DNSSEC
BIND9 avec la directive dnssec-policy et inline-signing yes génère et gère automatiquement les clés. Elles sont stockées dans /etc/bind/keys/ :
ls /etc/bind/keys/
# Kdardevil.tech.+013+42449.key Kdardevil.tech.+013+42449.state
# Kdardevil.tech.+013+42449.private Kdardevil.tech.+013+45786.key
# Kdardevil.tech.+013+45786.private Kdardevil.tech.+013+45786.state
Les deux paires de clés correspondent à la KSK (Key Signing Key) et la ZSK (Zone Signing Key), toutes deux utilisant l'algorithme 13 (ECDSA P-256 avec SHA-256). On redémarre BIND9 pour appliquer la configuration :
systemctl restart bind9
On vérifie que la zone est correctement signée :
dig @localhost dardevil.tech DNSKEY
dig @localhost dardevil.tech DS
HTTPS et Certificat SSL
Obtention du certificat via Gandi
Nous avons obtenu un certificat SSL pour le domaine dardevil.tech auprès de Gandi. Les fichiers sont placés aux emplacements suivants sur catwoman :
- Certificat :
/etc/ssl/certs/dardevil.tech.crt - Clé privée :
/etc/ssl/private/dardevil.tech.key - Chaîne de certification :
/etc/ssl/certs/GandiCert.pem
Configuration Apache2
On active les modules nécessaires :
apt install apache2
a2enmod ssl proxy proxy_http
On crée le fichier /etc/apache2/sites-available/dardevil.tech.conf :
# Partie HTTP (port 80) - redirection vers le serveur web en IPv6
<VirtualHost *:80>
ServerName dardevil.tech
ServerAlias www.dardevil.tech
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe8f:4743]/
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe8f:4743]/
</VirtualHost>
# Partie HTTPS (port 443)
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName dardevil.tech
ServerAlias www.dardevil.tech
SSLEngine on
SSLCertificateFile /etc/ssl/certs/dardevil.tech.crt
SSLCertificateKeyFile /etc/ssl/private/dardevil.tech.key
SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem
ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe8f:4743]/
ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe8f:4743]/
</VirtualHost>
</IfModule>
On active le site et on redémarre Apache :
a2ensite dardevil.tech.conf
systemctl restart apache2
Le site est désormais accessible en HTTP et HTTPS à l'adresse https://dardevil.tech.
openssl req -nodes -newkey rsa:2048 -sha256 -keyout dardevil.tech.key -out dardevil.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]:PolytechLille
Organizational Unit Name (eg, section) []:IOT
Common Name (e.g. server FQDN or YOUR name) []:dardevil.tech
Email Address []:billel.cheklat@polytech-lille.net