TP sysres SE2a5 2022/2023 G3 : Différence entre versions

De Wiki d'activités IMA
(Sécurisation par DNSSEC)
(Sécurisation par DNSSEC)
Ligne 364 : Ligne 364 :
 
On modifie le fichier /etc/bind/named.conf.local de la manière suivante :
 
On modifie le fichier /etc/bind/named.conf.local de la manière suivante :
 
  zone "regretable.site" {
 
  zone "regretable.site" {
type master;
+
        type master;
 
         file "/etc/bind/db.regretable.site.signed";
 
         file "/etc/bind/db.regretable.site.signed";
 
  };
 
  };

Version du 18 novembre 2022 à 15:36

Cahier de suivi - Groupe 3 : LELEU Lionel et DEDO Fabrice

Ce cahier fait office de rapport pour nos séances de TP réalisées dans le cadre du projet de l'UE de Système et Réseau de 5ème année.

Résumé

Cours

Lien: https://rex.plil.fr/Enseignement/Reseau/Reseau.IMA5sc/

Sujet Projet

Lien : https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/

Objectif

Mise en place une architecture système et réseau permettant d'héberger un serveur web sur une machine virtuelle (VM) Xen hébergé sur le serveur Capbreton de la salle E304.


Etapes Projet

  1. Réinstallation de la machine Zabeth2 en salle E306 sous OS Chimera Linux et en boot UEFI.
  2. Configuration réseau de la machine Zabeth2 et propagation d'une configuration via Ansible
  3. Création et configuration de la VM Xen VMDedoLeleu hebergé sur Capbreton
  4. Expression du besoin de l'architecture réseau matérielle et mise en place du matériel
  5. Configuration du matériel réseau (routeur, switch, AP Wifi, machines...)
  6. Achat des noms de domaine et création des certificats X509 pour le serveur web hébergé sur la VM
  7. Configuration des serveurs web

Ré-installation d'une machine Zabeth

Installation du système d'exploitation

Configuration machine

Propagation d'une configuration via Ansible

Création de la Machine Virtuelle Xen

On se connecte en ssh à capbreton :

 ssh root@capbreton

Une fois connectée à la machine virtuelle, on peut inclure le proxy de polytech dans nos variables d'environnement:

 export http_proxy=http://proxy.plil.fr:3128

Nous pouvons maintenant procéder l'installation de la machine virtuelle. Pour la création de la machine virtuelle on utilise la commande xen-create-image en précisant à cet utilitaire le nom de votre machine (VMDedoLeleu), son adresse IP (193.48.57.165).

 xen-create-image --hostname=VMDedoLeleu --ip=193.48.57.165 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=glopglopglop --dist=bullseye

Ensuite, on crée deux LV, chacun de 10 Go sur le groupe de volume de stockage:

 lvcreate -L10G -n VMDedoLeleu1 storage
 lvcreate -L10G -n VMDedoLeleu2 storage

Une fois que cela est fait on formate les disques crées au format ext4 de la manière suivante:

 mkfs.ext4 /dev/storage/VMDedoLeleu1
 mkfs.ext4 /dev/storage/VMDedoLeleu2

Enuiste on modifie notre fichier "/etc/xen/VMDedoLeleu.cfg" pour préciser l'ajout les volumes logiques VMDedoLeleu1 et VMDedoLeleu2 , de plus on ajoute le bridge IMA5a dans la fonction vif. Pour cela on ajoute les lignes suivantes:

#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                  'file:/usr/local/xen/domains/VMDedoLeleu/disk.img,xvda2,w',
                  'file:/usr/local/xen/domains/VMDedoLeleu/swap.img,xvda1,w',
                  'phy:/dev/storage/VMDedoLeleu-home, xvda3,w',
                  'phy:/dev/storage/VMDedoLeleu-var,xvda4,w'
              ]
#
#  Physical volumes
#
#
#  Hostname
#
name        = 'VMDedoLeleu'
#
#  Networking
#
vif         = [ 'mac=00:16:3E:86:A2:66,bridge=IMA2a5' ]

Une fois cette étape terminé, on peut lancer la machine virtuelle avec la commande suivante:

xen create -c /etc/xen/VMDedoLeleu.cfg

On ajoute les répertoires liés à xvda3 et xvda4 pour y placer /home et /var:

mkdir /mnt/xvda3
mkdir /mnt/xvda4
mount /dev/xvda3 /mnt/xvda3
mount /dev/xvda4 /mnt/xvda4

Ensuite on déplace le répertoire /var/ dans xvda4 en faisant

mv /var/* /mnt/xvda4

Afin de monter les disques, on modifie les lignes suivantes dans /etc/fstab:

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/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
/dev/xvda3 /home ext4 defaults 0 2
/dev/xvda4 /var ext4 defaults 0 2

Lançons la commande de montage:

mount -a

On obtient les partitions suivantes:

lsblk
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda1 202:1    0  512M  0 disk [SWAP]
xvda2 202:2    0    4G  0 disk /
xvda3 202:3 0 10G 0 disk /home
xvda4 202:4 0 10G 0 disk /var

Activons l'IPv6 dans l'interface en ajoutant les lignes suivantes dans /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 193.48.57.165
gateway 193.48.57.188
netmask 255.255.255.240
iface eth0 inet6 auto 
# post-up  ethtool -K eth0 tx off
#
# The commented out line above will disable TCP checksumming which
# might resolve problems for some users.  It is disabled by default

Architecture Réseau

Schéma Architecture

https://wiki-ima.plil.fr/mediawiki//images/e/e1/Global_scheme_PRA_2020.png

Représentation des connexions matérielles

Plan d'adressage du réseau

Groupe VLAN Réseau IPv4 Réseau IPv6 @IPv4 virtuelle IPv4/IPv6 6509E (E304) IPv4/IPv6 C9200 (E306) IPv4/IPv6 ISR4331 SSID VM
Antonin / Hugo 20 10.20.0.0/16 - 10.20.0.250 10.20.0.251 10.20.0.252 10.20.0.253 - HG
Clément / Adrien J 21 10.21.0.0/16 - 10.21.0.250 10.21.0.251 10.21.0.252 10.21.0.253 - Goudale
Fabrice / Lionel 22 10.22.0.0/16 - 10.22.0.250 10.22.0.251 10.22.0.252 10.22.0.253 - VMDedoLeleu
Arthur / Adrien D 23 10.23.0.0/16 - 10.23.0.250 10.23.0.251 10.23.0.252 10.23.0.253 - VMALAD
Alex / Alexandre 24 10.24.0.0/16 - 10.24.0.250 10.24.0.251 10.24.0.252 10.24.0.253 - VMalex2
Tom / Guillaume 25 10.25.0.0/16 - 10.25.0.250 10.25.0.251 10.25.0.252 10.25.0.253 - GUIGUITOTO
INTERCO 530 192.168.222.65/29 - - 192.168.222.67 192.168.222.68 192.168.222.69 - -
XEN 40 193.48.57.162/28 - 193.48.57.172/28 193.48.57.171/28 193.48.57.170/28 192.48.57.169/28 - -

Table du VLAN 40

Groupe @IPv4 MV non routée @IPv4 MV routée Nom de domaine
Antonin / Hugo 172.26.145.76/24 193.48.57.163/28 detestable.site
Clément / Adrien J 172.26.145.77/24 193.48.57.164/28 lamentable.site
Fabrice / Lionel 172.26.145.52/24 193.48.57.165/28 regretable.site
Arthur / Adrien D 172.26.145.53/24 193.48.57.166/28 minable.site
Alex / Alexandre 172.26.145.54/24 193.48.57.167/28 miserable.site
Tom / Guillaume 172.26.145.55/24 193.48.57.168/28 pitoyable.site

Configuration des machines réseau

Routeur C9200

Configuration des VLAN

Nous avons configuré ce routeur pour y ajouter :

  • une connexion vers le routeur de l'école assurant un routage vers internet de nos machines Xen via le VLAN40 Xen
  • l'interconnexion des machines par le VLAN530

VLAN40

enable
 conf t
   vlan 40
     name xen
     exit
   int vlan 40
     no shut
     ip address 193.48.57.170 255.255.255.248
     exit
   int Gi1/0/1
     no shut
     switchport mode access
     switchport access vlan 40
     exit
   exit
 write

VLAN530

enable
 conf t
   vlan 530
     name interco
     exit
   int vlan 530
     no shut
     ip address 192.168.222.68  255.255.255.0
     exit
   int Gi1/0/2
     no shut
     switchport mode access
     switchport access vlan 530
     exit
   exit
 write

Paramétrage de l'OSPF

router ospf 1
 router-id 192.168.222.68
 summary-address 192.168.0.0 255.255.0.0
 summary-address 193.48.57.160 255.255.255.224
 redistribute connected subnets ! subnets allowed
 redistribute static subnets route-map ospf ! subnets allowed
 network 192.168.222.64 0.0.0.7 area 10
 default-information originate

On ajoute cette commande pour filtrer nos réseaux locaux qu'on ne souhaite pas faire sortir

 summary-address 10.0.0.0 255.0.0.0 not-advertise

Routeur 6509E (E304)

Configuration réalisée par le groupe n°1 (Antonin/Hugo)

Routeur ISR4331

Non réalisé puisque la connexion ADSL Orange ne fonctionne plus

Site internet

Nous avons acheté un nom de domaine sur le registrar Gandi : [1]

Sécurité du site : Certificat SSL

Nous avons généré nos clés sur notre machine virtuelle :

apt install openssl
openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8 

Nous nous sommes aidé de ce tutoriel : https://docs.gandi.net/en/ssl/common_operations/csr.html

A la suite de ces étapes, le certificat SSL est disponible au téléchargement depuis le site de gandi (fichier .crt) que l'on place stocke aussi dans notre machine sous /etc/dns. On télécharge également le certificat intermédiaire de gandi : GandiStandardSSLCA2.pem que l'on place également dans la même direction.

Configuration DNS

On a installé le package bind9 :

>apt install bind9

Sur le site gandit.net, nous avons modifié :

Fenêtre Glue Records : ns1.regretable.site | 193.48.57.165

Fenêtre Serveurs de noms :

DNS Primaire : ns1.regretable.site | DNS Secondaire : ns6.gandi.net

Dans le fichier /etc/resolv.conf, ajout de la ligne :

nameserver 127.0.0.1

Afin de configurer le DNS par défaut.

DNS Primaire

Nous ajoutons une zone liée à notre domaine regretable.site de type master et le chemin de son fichier de configuration et on permet les transferts d'informations avec le DNS secondaire ns6.gandi.net.

Attention : modifier les fichiers pour named.conf.options etc... On ajoute donc les lignes suivantes dans /etc/bind/named.conf.local:

>vim /etc/bind/named.conf.local

zone "regretable.site" {
        type master;
        file "/etc/bind/db.paixdieu.site";
};

Nous avons séparés configuration des serveurs autorisés à dupliqué nos zones de la config de nos zones en insérant les acl suivantes dans le fichier /etc/bind/named.conf.

options {
  directory "/var/cache/bind";
  dnssec-validation auto;
  dnssec-enable yes;
  dnssec-lookaside auto;
  listen-on-v6 { any; };
  allow-transfer { "allowed_to_transfer"; };
};
acl "allowed_to_transfer" {
  217.70.177.40; //@ de ns6.gandi.net mais plus utilisé au final
};

Puis nous configurons la zone regretable.site, pour cela on ajoute les ns. On ajoute les lignes suivantes dans /etc/bind/db.regretable.site:

>vim /etc/bind/db.regretable.site
@       IN      SOA     ns1.paixdieu.site. postmaster.paixdieu.site. (
                             2         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.regretable.site.
ns1     IN      A       193.48.57.165
www     IN      A       193.48.57.165

Pour tester le bon fonctionnement du serveur DNS, nous utilisons la commande :

>host -t any regretable.site localhost

Résultat attendu :

AJOUTER LE RESULTAT

Sécurisation par DNSSEC

Activation du DNSSEC :

Dans /etc/bind/named.conf.options on ajoute les lignes :

dnssec-validation yes;
dnssec-enable yes;
dnssec-lookaside auto;

Création d'un répertoire /etc/bind/regretable.site.dnssec/

Génération de la clef asymétrique de signature de clefs de zone

dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE regretable.site

Renommer les clés KSK générées :

mv Kregretable.site.+005+17429.key regretable.site-ksk.key
mv Kregretable.site.+005+17429.private regretable.site-ksk.private

Génération de la clef asymétrique de la zone pour signer les enregistrements

dnssec-keygen -a RSASHA1 -b 1024 -n ZONE regretable.site

Renommer les clés ZSK générées :

mv Kregretable.site.+005+28633.key regretable.site-zsk.key
mv Kregretable.site.+005+28633.private regretable.site-zsk.private

Nous ajoutons en $include dans le fichier /etc/bind/db.regretable.site

$include /etc/bind/paixdieu.site.dnssec/paixdieu.site-ksk.key
$include /etc/bind/paixdieu.site.dnssec/paixdieu.site-zsk.key

Puis incrémente le numéro de série Serial :

@       IN      SOA     ns1.regretable.site. postmaster.regretable.site. (
                             2         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL

Signature des enregistrements de la zone

dnssec-signzone -o regretable.site -k regretable.site-ksk ../db.regretable.site regretable.site-zsk

Prise en compte du fichier signé

On modifie le fichier /etc/bind/named.conf.local de la manière suivante :

zone "regretable.site" {
       type master;
       file "/etc/bind/db.regretable.site.signed";
};

Pour finir, nous allons sur gandi.net, sur notre nom de domaine dans DNSSEC et nous ajoutons la clef (ksk avec l'algorithme 5 (RSA/SHA-1). Et nous vérifions le bon fonctionnement du DNSSEC de la manière suivante :

> dnssec-verify -o regretable.site db.regretable.site.signed

Attention : ajouter le résultat de la ligne de commande