Atelier SysRes SE4 2024/2025 E9
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 machines
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.
On peux maintenant accéder a internet et ping 8.8.8.8 depuis la mandataire, pour accéder à internet sur les machines de service il faut utiliser une mascarade.
On installe iptables avec apt install iptables
puis on crée la mascaradeiptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1.0/24
,on décommente la ligne net.ipv4.ip_forward=1
du fichier /etc/sysctl.conf et enfin sysctl -p
.
Succès, les machines de service sont connectées à internet.
SSH
On active le SSH sur les 3 machines, on peut accéder à la mandataire avec son adresse IPV4 routée, pour les machines de service on redirige un port (2201 et 2202) de la mandataire vers le port 22 des services avec iptables.
Pour se connecter à Bree on utilise donc la commande ssh -p 2201 root@193.48.57.174
Et pour se connecter à Gaby on utilise la commande ssh -p 2202 root@193.48.57.174
On peut également se connecter avec les adresses IPV6 mais elles ne sont pas facile à retenir.
DNS
Pour la partie DNS on installe bind9 et apache2, on ajoute ensuite les addresses IPV4 et IPV6 de la machine de service dans le Glue Record de Gandi.
On modifie /etc/resolv.conf
root@Gaby:/etc/bind# cat /etc/resolv.conf
search plil.info
nameserver 127.0.0.1
search macron-explosion.online
nameserver 192.168.1.21
nameserver 192.168.1.20
Le fichier /etc/bind/named.conf.local
de la machine de service Gaby
zone "macron-explosion.online" {
type master;
file "/etc/bind/macron-explosion.online.db";
allow-transfer{secondaries;};
also-notify{hiddensecondaries;};
notify yes;
};
acl "secondaries"{
2001:660:4401:60a0:216:3eff:fe1f:1cae; //Adresse de l/'autre machine de service (ici Bree)
2001:660:4401:60a0:216:3eff:fe7a:5d61; //Adresse de la mandataire
};
masters "hiddensecondaries" {
2001:660:4401:60a0:216:3eff:fe7a:5d61;
};
zone "macron-demission.online" {
type slave;
file "/etc/bind/macron-demission.online.db";
masters {2001:660:4401:60a0:216:3eff:fe1f:1cae; }; //Adresse de l/'autre machine de service (ici Bree)
};
Et le fichier macron-explosion.online.db
root@Gaby:/etc/bind# cat macron-explosion.online.db
$TTL 200
@ IN SOA ns.macron-explosion.online. admin.macron-explosion.online. (
2023021101 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
200 ) ; Minimum TTL
@ IN NS ns.macron-explosion.online.
ns IN A 193.48.57.174 ; Adresse IPv4 de votre serveur DNS primaire
ns IN AAAA 2001:660:4401:60a0:216:3eff:fe2d:8017
www IN CNAME ns
On gére le service dns avec la commande
systemctl stop bind9
systemctl start bind9
systemctl restart bind9
Et on observe les logs avec la commande cat /var/log/syslog | grep named
Avec le site DNS-checker on remarque notre DNS est en train de se propager (en IPV4 et IPV6)
On peut modifier la page d'accueil d'apache2 avec la commande echo "Coucou c'est Louis" | tee /var/www/html/index.html
On accède bien à cette page avec un navigateur à l'adresse : http://ns.macron-explosion.online (en IPV6 seulement pour l'instant ??)
DNSSEC
On ajoute dans /etc/bind/named.conf.local
zone "macron-explosion.online" {
type master;
file "/etc/bind/macron-explosion.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;
};
Ensuite on crée le dossier keys et on donne les droits a bind d'écrire dedans avec :
mkdir /etc/bind/keys
chown bind:bind /etc/bind/keys
chmod 750 /etc/bind/keys
On redemarre le daemon bind9 et les clefs sont crées automatiquement :
root@Gaby:/etc/bind/keys# ls
Kmacron-explosion.online.+013+28684.key Kmacron-explosion.online.+013+28684.state Kmacron-explosion.online.+013+30228.private
Kmacron-explosion.online.+013+28684.private Kmacron-explosion.online.+013+30228.key Kmacron-explosion.online.+013+30228.state
Il ne reste qu'à ajouter la clef KSK sur Gandi
Fail2ban
On remarque dans les logs des tentatives de connexion en SSH sur les machines. Pour stopper les attaques brutforce j'installe fail2ban sur les machines, avec la configuration suivante :
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
Si 3 tentatives infructueuses de connexion ont lieu, l’IP est bannie pendant une heure.
Ca fonctionne, en seulement quelques minutes des adresses ont été bloquées:
root@Desperate:~# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 7
| |- Total failed: 23
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 2
|- Total banned: 2
`- Banned IP list: 148.72.64.105 103.171.85.186