Atelier SysRes SE4 2025/2026 E6

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

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

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

Effraction WIFI

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%
sudo airodump-ng wlan1 --write dump --bssid 44:AD:D9:5F:87:05 -c13
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