« Atelier SysRes SE4 2025/2026 E11 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
 
(15 versions intermédiaires par le même utilisateur non affichées)
Ligne 58 : Ligne 58 :


== '''Configuration de la Machine de Services''' ==
== '''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 <code>/'''var'''</code> et <code>'''/home'''</code> de la machine virtuelle soient implantés sur ces partitions LVM<syntaxhighlight lang="text">
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 <code>/'''var'''</code> et <code>'''/home'''</code> de la machine virtuelle soient implantés sur ces partitions LVM
SE4.Poseidon.home lv_home_SE4Elf lv_var_SE4Elf  SE4.Gaby.home SE4.Poseidon.var SE4.Gaby.var
</syntaxhighlight>Apres nous avons modifié le fichier /etc/xen/SE4.Elf.cfg piur y ajouter deux répertoires


=== '''Création des volumes logiques''' ===
<syntaxhighlight lang="text">
lvcreate -L 10G -n lv_var_SE4Elf
lvcreate -L 10G -n lv_home_SE4Elf
</syntaxhighlight>Faire '''lvdisplay''' pour faire la verification


Depuis le serveur Capbreton, on a créé 2 fichiers de partitions dans <code>/dev/virtual</code> pour chaque machines de services <syntaxhighlight lang="text">
root@capbreton:/dev/virtual# ls
SE4.Poseidon.home lv_home_SE4Elf lv_var_SE4Elf  SE4.Gaby.home SE4.Poseidon.var SE4.Gaby.var
</syntaxhighlight>Apres nous avons modifié le fichier /etc/xen/SE4.Elf.cfg piur y ajouter deux répertoires<syntaxhighlight lang="text">
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'
]
</syntaxhighlight>


 
=== ''' Création et formatage des partitions''' ===
=== '''Création et formatage des partitions''' ===
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
mkfs -t ext4 /dev/xvdb  # Formatage de la partition pour /var  
mkfs -t ext4 /dev/xvdb  # Formatage de la partition pour /var  
Ligne 115 : Ligne 128 :
remet les données dans le fichier déplacer.
remet les données dans le fichier déplacer.


Puis, pour appliquer les changement nous avons redémarré la VM :
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'''


== '''Serveur SSH''' ==
=== '''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 '''<code>df -h</code>''' pour afficher l'espace disque utilisé et disponible sur les partitions montées.
 
Cela nous permet de confirmer que les partitions '''<code>/var</code>''' et '''<code>/home</code>''' sont correctement montées sur les répertoires associés et qu'il n'y a pas de problème d'espace disque.
 
.
 
== <big>'''Configuration Reseau'''</big> ==
 
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 '''<code>/etc/network/interfaces</code>'''. 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 ===
<syntaxhighlight lang="text">
# 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
</syntaxhighlight>Il faut ensuite aciver l'interface en faisan'''t  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 <syntaxhighlight lang="text">
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
</syntaxhighlight>
 
=== '''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 bind9'''Aprè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''' ===
'''<code>Modification du fichier /etc/network/interfaces</code>'''<syntaxhighlight lang="text">
# 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
</syntaxhighlight>Il faut ensuite aciver l'interface en faisan'''t  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é.<syntaxhighlight lang="text">
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
</syntaxhighlight>
 
=== '''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 <code>/etc/ssh/sshd_config  :</code>'''<syntaxhighlight lang="text">
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 <code>/etc/ssh/sshd_config  :</code>'''<syntaxhighlight lang="text">
PermitRootLogin yes
PermitRootLogin yes
Ligne 146 : 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 https://www.gandi.net/fr '''.''' 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.
 
=== Configuration bind9 ===
 
==== Configuration du Serveur DNS Maître et Secondaire ====
La machine Elf est le serveur DNS principal, tandis que Kasav sert de DNS secondaire et récupère la zone depuis Elf.
 
Puis on créer le fichier de zone pour le domaine : '''<code>/etc/bind/db.elvis21.tech</code>'''
 
Après des modifications on a du augmenter le numéro de série dans le fichier '''<code>/etc/bind/db.elvis21.tech</code>'''<syntaxhighlight lang="text">
$TTL 86400
$TTL 86400
@ IN SOA ns1.elvis21.tech. admin.elvis21.tech. (
@ IN SOA ns1.elvis21.tech. admin.elvis21.tech. (
Ligne 163 : Ligne 304 :
www IN A 192.168.50.12
www IN A 192.168.50.12


</syntaxhighlight><syntaxhighlight lang="text">
</syntaxhighlight>Dans <code>/etc/bind/named.conf.local</code> :avons configuré les zones DNS<syntaxhighlight lang="text">
root@Elf:/etc/bind# cat named.conf.local  
root@Elf:/etc/bind# cat named.conf.local  
zone "elvis21.tech" {
zone "elvis21.tech" {
Ligne 192 : Ligne 333 :
};
};


</syntaxhighlight><syntaxhighlight lang="text">
</syntaxhighlight>Pour charger la version du fichier de zone, on tape la commande "named-checkzone elvis21.tech /etc/bind/db.elvis21.tech " en étant dans le répertoire /etc/bind<syntaxhighlight lang="text">
root@Elf:/etc/bind# named-checkzone elvis21.tech /etc/bind/db.elvis21.tech
root@Elf:/etc/bind# named-checkzone elvis21.tech /etc/bind/db.elvis21.tech
zone elvis21.tech/IN: loaded serial 3298267246
zone elvis21.tech/IN: loaded serial 3298267246
Ligne 200 : Ligne 341 :


</syntaxhighlight>
</syntaxhighlight>
[[Fichier:ImageDns.png|gauche|vignette|994x994px]]
[[Fichier:ImageDns.png|vignette|994x994px|centré]]
 
== Mise en place du serveur Apache (http et https) ==
 


== '''Mise en place du serveur Apache (http et https)''' ==
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
apt update
apt update
Ligne 212 : Ligne 351 :
[[Fichier:Elvis21.tech-DNS.png|gauche|vignette|863x863px]]
[[Fichier:Elvis21.tech-DNS.png|gauche|vignette|863x863px]]


== Installation Fail2ban ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
== '''Installation Fail2ban''' ==
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
root@Elf:/# apt install fail2ban  
root@Elf:/# apt install fail2ban  
Ligne 250 : Ligne 419 :
</syntaxhighlight>
</syntaxhighlight>


== WIFI ==
== '''WIFI''' ==
Faire ip link
Faire ip link



Version actuelle datée du 21 février 2026 à 20:39

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 https://www.gandi.net/fr . 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.

Configuration bind9

Configuration du Serveur DNS Maître et Secondaire

La machine Elf est le serveur DNS principal, tandis que Kasav sert de DNS secondaire et récupère la zone depuis Elf.

Puis on créer le fichier de zone pour le domaine : /etc/bind/db.elvis21.tech

Après des modifications on a du augmenter le numéro de série dans le fichier /etc/bind/db.elvis21.tech

$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

Dans /etc/bind/named.conf.local :avons configuré les zones DNS

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;
};

Pour charger la version du fichier de zone, on tape la commande "named-checkzone elvis21.tech /etc/bind/db.elvis21.tech " en étant dans le répertoire /etc/bind

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
ImageDns.png

Mise en place du serveur Apache (http et https)

apt update
apt install apache2
systemctl enable --now apache2
Elvis21.tech-DNS.png
















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