Atelier SysRes SE4 2024/2025 E4

De wiki-se.plil.fr
Révision datée du 15 mars 2025 à 20:32 par Rboursau (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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 machine de service

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

/etc/interfaces de la mandataire

On modifie ensuite la configuration de l'interface des machines de service

/etc/interfaces d'une machine de service

On peut ping entre les machines.

Ping entre mandataire et une machine de service

SSH

Pour activer le SSH, on attribue des ports a chacune des machines de service grace à iptables.

Ensuite on peut renseigner ce port dans la commande ssh pour choisir la machine à laquelle on veut se connecter :

ssh -p i root@193.48.57.174 avec i le numéro de port (2201 pour Bree, 2202 pour Gaby).

DNS

Après avoir installé bind9 et apache2, on a plusieurs fichiers de configuration à modifier pour mettre en place le DNS.

Dans /etc/resolv.conf on ajoute:

search merci-macron.online

nameserver 192.168.1.20

nameserver 192.168.1.21


Dans /etc/bind/named.conf.local dans Bree :

zone "merci-macron.online" {

    type master;

    file "/etc/bind/merci-macron.online.db";

    allow-transfer{secondaries;};

    also-notify{hiddensecondaries;};

    notify yes;

};

acl "secondaries"{

    2001:660:4401:60a0:216:3eff:fe2d:8017;

    2001:660:4401:60a0:216:3eff:fe7a:5d61;

};

masters "hiddensecondaries" {

    2001:660:4401:60a0:216:3eff:fe7a:5d61;

};

zone "pardon-macron.online" {

    type slave;

    file "/etc/bind/pardon-macron.online.db";

    masters {2001:660:4401:60a0:216:3eff:fe2d:8017; };

};


Dans /etc/bind/merci-macron.online.db :

$TTL 200

@   IN  SOA ns.merci-macron.online. admin.merci-macron.online. (

        2023021103 ; Serial

        3600       ; Refresh

        1800       ; Retry

        1209600    ; Expire

        200 )    ; Minimum TTL

@   IN  NS  ns.merci-macron.online.

@   IN  A  193.48.57.174

@   IN  AAAA  2001:660:4401:60a0:216:3eff:fe1f:1cae

ns IN  A   193.48.57.174  ; Adresse IPv4 de votre serveur DNS primaire

ns IN  AAAA 2001:660:4401:60a0:216:3eff:fe1f:1cae

www IN CNAME ns

En utilisant dig @localhost ns.merci-macron.online , on peut vérifier qu'on obtient bien une réponse :

; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> @localhost ns.merci-macron.online
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49202
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b39162197e5f806c0100000067c9f2d908bfad76ed0da298 (good)
;; QUESTION SECTION:
;ns.merci-macron.online.                IN      A

;; ANSWER SECTION:
ns.merci-macron.online. 200     IN      A       193.48.57.174

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(localhost) (UDP)
;; WHEN: Thu Mar 06 19:09:13 UTC 2025
;; MSG SIZE  rcvd: 95

De même on peut faire la même chose avec merci-macron.online, on peut le faire en Ipv4 et aussi en Ipv6 et on voit bien que tout fonctionne.

En créant une page web qu'on met dans /var/www/html/index.html, notre page s'affiche si l'on se connecte en Ipv6.

DNSSEC

Pour obtenir le DNSSEC, on ajoute dans named.conf.local :

zone "merci-macron.online" {

    type master;

    file "/etc/bind/merci-macron.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;

};

On crée un dossier keys dans lequel vont être générées les clés, puis on ajoute la clé KSK sur Gandi.

Fail2Ban

Fail2Ban permet de protéger les machines des attaques.

On l'installe avec ces options :

[sshd]

enabled  = true

port     = ssh

filter   = sshd

logpath  = /var/log/auth.log

maxretry = 3

bantime  = 3600

findtime = 600

On peut voir que ça fonctionne car des machines sont déjà bannies (des bots étaient déjà en train d'attaquer nos machines).

HTTPS

Ayant peur d'être envoyés au front devant les récents événements, nous avons décidé d'opter pour des noms de domaines plus respectueux de notre grand président de la République actuel. (nous avons perdu les clés SSL et avons dû tout recommencer). Pour activer HTTPS, nous avons besoin de trois fichiers :

*le certificat SSL délivré par Gandi

*le certificat intermédiaire qu'on peut retrouver au même endroit

* la clé SSH (que nous avions perdu)

Nous allons déposer ces trois fichiers dans /etc/ssl puis nous devons créer un nouveau fichier de configuration dans /etc/apache2/sites-available/ que nous appellerons judicieusement merci-macron.conf :

<IfModule mod_ssl.c>
        <VirtualHost *:80>
                ServerName merci-macron.online
                ServerAlias www.merci-macron.online
                Redirect / https://merci-macron.online/
        </VirtualHost>

 
       <VirtualHost _default_:443>
                ServerName merci-macron.online
                ServerAlias www.merci-macron.online
                DocumentRoot /var/www/html
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
                SSLEngine on
                SSLCertificateFile /etc/ssl/merci-macron/merci-macron.online.crt
                SSLCertificateKeyFile /etc/ssl/merci-macron/myserver.key
                SSLCertificateChainFile /etc/ssl/merci-macron/GandiCert.pem
                SSLProxyEngine on
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
        </VirtualHost>
</IfModule>

Pour que le fichier soit pris en compte, nous exécutons les commandes :

a2enmod ssl

a2ensite pardon-macron.conf

service apache2 reload

En essayant de se connecter au site en HTTPS, on voit bien que le site s'affiche.

Configuration du site pour l'IPv4

Finalement pour avoir l'accès en IPv4, on va devoir utiliser la machine mandataire qui va recevoir les requêtes HTTP et HTTPS pour le domaine merci-macron.online et les transmettre à la machine de service SE4.Bree. C'est donc une machine faisant du reverse proxy. On ajoute donc un fichier de configuration merci-macron.conf dans /etc/apache2/sites-available :

# Partie HTTP (port 80)
<VirtualHost *:80>
    ServerName merci-macron.online
    ServerAlias www.merci-macron.online

    ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/
    ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/
</VirtualHost>

#Partie HTTPS (port 443)
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName merci-macron.online
    ServerAlias www.merci-macron.online

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/merci-macron.online.crt
    SSLCertificateKeyFile /etc/ssl/private/merci-macron.key
    SSLCertificateChainFile /etc/ssl/certs/GandiCert.pem

    ProxyPass / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/
    ProxyPassReverse / http://[2001:660:4401:60a0:216:3eff:fe1f:1cae]/

</VirtualHost>
</IfModule>

Ensuite on ajoute ce fichier à la configuration exécutée puis on redémarre le service :

a2ensite pardon-macron.online.conf
systemctl restart apache2

On peut essayer sur le réseau de la fac de se connecter en IPv4 car il n'est pas configuré pour l'IPv6 et on voit que ça fonctionne.

Conclusion

Le lien du site est : https://merci-macron.online/

Grâce à ce projet, nous avons beaucoup appris de comment les VM peuvent être configurés et sur la flexibilité qu'ils apportent. Nous avons également compris comment on peut configurer un DNS, et un site Internet de nous-mêmes. A l'avenir, nous ferons beaucoup plus attention aux fichiers importants, heureusement cette erreur ne nous a pas empêchés d'aller plus loin.