TP sysres IMA2a5 2017/2018 G5 : Différence entre versions

De Wiki de Projets IMA
(Sécurisation du serveur DNS avec DNSSEC)
 
(3 révisions intermédiaires par le même utilisateur non affichées)
Ligne 77 : Ligne 77 :
 
  deus    IN A      193.48.57.166
 
  deus    IN A      193.48.57.166
 
           IN MX      100 deus.malfivanghe.space.
 
           IN MX      100 deus.malfivanghe.space.
 +
 +
Ensuite il faut créer le ''glue record'' sur Gandi correspondant a notre machine virtuelle. Ensuite, sur l'interface web de Gandi, nous avons changé les serveurs DNS en ajoutant en primaire le notre (''deus.malfivanghe.space'') puis le DNS secondaire de Gandi (''ns6.gandi.net''). Avec l'ajout de la règle ACL pour autoriser le transfert, le serveur DNS secondaire de Gandi va peupler notre DNS.
 +
 +
==Installation du serveur mail==
 +
 +
Pour obtenir le lien de confirmation de la demande de certificat SSL sur Gandi, il nous faut paramétrer un client mail afin de pouvoir recevoir le mail à l'adresse ''admin@malfivanghe.space''. Pour ceci nous installons Postfix.
 +
 +
apt-get install postfix bsd-mailx
 +
 +
Une fois installé il faut créer l'alias root qui pointe vers admin en l'ajoutant dans ''/etc/aliases''
 +
Il faut mettre à jour la base de données des alias :
 +
newaliases
 +
 +
Une fois l'alias et le client mail installé, nous pouvons recevoir le mail de confirmation du certificat SSL.
 +
 +
==Sécurisation du site web avec le certificat SSL==
 +
 +
Après avoir récupéré notre certificat SSL, puis récupéré le certificat intermédiaire de Gandi, on active le module ssl sur apache2.
 +
Pour activer le module ssl il faut taper la commande suivante :
 +
a2enmod ssl
 +
service apache2 restart
 +
 +
Une fois le module activé, il faut modifier le fichier de configuration dans ''/etc/apache2/sites-available/default-ssl.conf'' en ajoutant les lignes suivantes :
 +
ServerName malfivanghe.space
 +
SSLEngine on
 +
SSLCertificateFile      /etc/ssl/certs/malfivanghe.crt
 +
SSLCertificateKeyFile /etc/ssl/private/malfivanghe.key
 +
SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem
 +
 +
Puis, pour activer cette configuration il faut taper la commande :
 +
 +
a2ensite default-ssl
 +
service apache2 restart
 +
 +
Pour se connecter en HTTPS au site web, il faut absolument entrer l'URL [https://www.malfivanghe.space https://www.malfivanghe.space] qui correspond au CN de notre certificat. Le nom de machine deus n'est donc pas connu par l'autorité de certification.
 +
 +
==Sécurisation du serveur DNS avec DNSSEC==
 +
 +
Pour sécuriser le serveur DNS avec DNSSEC nous allons signer la zone correspondant à notre nom de domaine.
 +
Tout d'abord il faut ajouter l'option du dnssec pour l'activer dans ''/etc/bind/named.conf.options''
 +
dnssec-validation auto;
 +
 +
Ensuite, nous allons créer les clés KSK et ZSK dans un dossier créé dans ''/etc/bind/'' qui a pour nom ''db.malfivanghe.space.dnssec''. Pour créer les clés, on se déplace dans ce nouveau dossier et on génère les clés et on les renomme :
 +
 +
dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE malfivanghe.space
 +
mv Kmalfivanghe.space.+005+48301.key malfivanghe.space-ksk.key
 +
mv Kmalfivanghe.space.+005+48301.private malfivanghe.space-ksk.private
 +
dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE malfivanghe.space
 +
mv Kmalfivanghe.space.+005+15831.key malfivanghe.space-zsk.key
 +
mv Kmalfivanghe.space.+005+15831.private malfivanghe.space-zsk.private
 +
 +
Puis on ajoute les ''.key'' dans le fichier de zone ''/etc/bind/db.malfivanghe.space'' en ajoutant les lignes suivantes :
 +
 +
$include /etc/bind/db.malfivanghe.space.dnssec/malfivanghe.space-ksk.key
 +
$include /etc/bind/db.malfivanghe.space.dnssec/malfivanghe.space-zsk.key
 +
 +
Il faut également incrémenter le numéro de la version pour éviter une source d'erreur.
 +
 +
Ensuite il faut signer les enregistrements de la zone.
 +
 +
dnssec-signzone -o malfivanghe.space -k malfivanghe.space-ksk ../db.malfivanghe.space malfivanghe.space-zsk
 +
 +
Puis ajouter notre clé KSK sur la gestion du DNSSEC sur le site de Gandi.

Version actuelle datée du 17 novembre 2017 à 10:11

Paramétrage de la machine virtuelle

Configuration réseau

Nous avons créé une machine virtuelle Xen sur cordouan.insecserv.deule.net qui s'appelle deus. Nous avons mis, en attendant que notre routeur soit paramétré, une adresse IP du réseau insecure afin d'avoir accès à Internet. Une fois le routeur paramétré, nous avons mis la configuration suivante :

auto eth0
iface eth0 inet static
	address	193.48.57.166
	netmask	255.255.255.240
	gateway	193.48.57.161

Installation des paquets

Nous avons installé les paquets suivants :

apt-get install openssh-server apache2 bind9

Montage des partitions

Ensuite, nous avons monté les /var et /home sur une partition LVM de cordouan. Pour ceci nous avons, sur cordouan, créé les partition du volume logique virtual avec les commandes :

lvcreate -L10G -nIMA2A5_deus_home virtual ; mke2fs /dev/virtual/IMA2A5_deus_home
lvcreate -L10G -nIMA2A5_deus_var virtual ; mke2fs /dev/virtual/IMA2A5_deus_var

Les 2 partitions ont une taille de 10 Go. Pour que notre machine virtuelle ait accès à ces 2 partitions, il faut changer la configuration de la machine virtuelle en ajoutant :

disk        = [
                  'file:/usr/local/xen/domains/deus/disk.img,xvda2,w',
                  'file:/usr/local/xen/domains/deus/swap.img,xvda1,w',
                'phy:/dev/virtual/IMA2A5_deus_var,xvdb1,w',
                'phy:/dev/virtual/IMA2A5_deus_home,xvdb2,w',
              ]

Le préfixe 'phy' est présent pour indiquer que c'est une partition physique, puis ajouter le chemin des 2 partitions créée, indiquer leur nom (qui sera accessible sur la machine virtuelle) qui sera xvdb1 et 2. Le 'w' est pour indiquer qu'on est en écriture sur le disque.

Pour l'instant, la machine virtuelle voit les 2 partitions mais rien n'est monté dessus. Pour le /home c'est tout simple: il suffit de modifier le fichier /etc/fstab et ajouter :

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/xvdb2      /home   ext4    defaults        0       3

Maintenant il suffit de taper

mount -a

Pour que le système monte le /home sur la partition xvdb2.

Pour le /var, c'est un peu plus compliqué car le /var n'est pas vide (contrairement au /home). Il faut donc pouvoir le copier sur la nouvelle partition (xvdb1) puis monter cette partition en tant que /var. Pour se faire il faut faire comme suit :

mount /dev/xvdb1 /mnt
mv /var/* /mnt/
echo "/dev/xvdb1      /var    ext4    defaults        0       2" >> /etc/fstab
mount -a

Paramétrage du serveur DNS

Après avoir réservé notre nom de domaine sur gandi.net (malfivanghe.space) nous avons paramétré le serveur DNS Bind9. Ajout de la règle ACL dans le fichier /etc/bind/named.conf.options afin d'autoriser le transfert depuis le serveur DNS de Gandi vers notre serveur.

acl "allowed_to_transfer" {
     217.70.177.40;
};

Nous avons trouvé l'adresse IP du serveur ns6.gandi.net grâce au résultat de la commande:

host ns6.gandi.net

Ensuite ajout de la configuration du domaine dans /etc/bind/named.conf.default-zones

zone "malfivanghe.space" {
        type master;
        file "/etc/bind/db.malfivanghe.space";
};

Puis création du fichier /etc/bind/db.malfivanghe.space :

@ IN SOA deus.malfivanghe.space. admin.deus.malfivanghe.space. (
         3298267243       ; Version
         7200             ; Refresh (2h)
         3600             ; Retry   (1h)
         1209600          ; Expire (14j)
         259200 )         ; Minimum TTL (3j)
  IN NS deus.malfivanghe.space.
  IN NS ns6.gandi.net.
  IN MX 100 deus.malfivanghe.space.
deus    IN A       193.48.57.166
          IN MX      100 deus.malfivanghe.space.

Ensuite il faut créer le glue record sur Gandi correspondant a notre machine virtuelle. Ensuite, sur l'interface web de Gandi, nous avons changé les serveurs DNS en ajoutant en primaire le notre (deus.malfivanghe.space) puis le DNS secondaire de Gandi (ns6.gandi.net). Avec l'ajout de la règle ACL pour autoriser le transfert, le serveur DNS secondaire de Gandi va peupler notre DNS.

Installation du serveur mail

Pour obtenir le lien de confirmation de la demande de certificat SSL sur Gandi, il nous faut paramétrer un client mail afin de pouvoir recevoir le mail à l'adresse admin@malfivanghe.space. Pour ceci nous installons Postfix.

apt-get install postfix bsd-mailx

Une fois installé il faut créer l'alias root qui pointe vers admin en l'ajoutant dans /etc/aliases Il faut mettre à jour la base de données des alias :

newaliases

Une fois l'alias et le client mail installé, nous pouvons recevoir le mail de confirmation du certificat SSL.

Sécurisation du site web avec le certificat SSL

Après avoir récupéré notre certificat SSL, puis récupéré le certificat intermédiaire de Gandi, on active le module ssl sur apache2. Pour activer le module ssl il faut taper la commande suivante :

a2enmod ssl
service apache2 restart

Une fois le module activé, il faut modifier le fichier de configuration dans /etc/apache2/sites-available/default-ssl.conf en ajoutant les lignes suivantes :

ServerName malfivanghe.space
SSLEngine on
SSLCertificateFile      /etc/ssl/certs/malfivanghe.crt
SSLCertificateKeyFile /etc/ssl/private/malfivanghe.key
SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem

Puis, pour activer cette configuration il faut taper la commande :

a2ensite default-ssl
service apache2 restart

Pour se connecter en HTTPS au site web, il faut absolument entrer l'URL https://www.malfivanghe.space qui correspond au CN de notre certificat. Le nom de machine deus n'est donc pas connu par l'autorité de certification.

Sécurisation du serveur DNS avec DNSSEC

Pour sécuriser le serveur DNS avec DNSSEC nous allons signer la zone correspondant à notre nom de domaine. Tout d'abord il faut ajouter l'option du dnssec pour l'activer dans /etc/bind/named.conf.options

dnssec-validation auto;

Ensuite, nous allons créer les clés KSK et ZSK dans un dossier créé dans /etc/bind/ qui a pour nom db.malfivanghe.space.dnssec. Pour créer les clés, on se déplace dans ce nouveau dossier et on génère les clés et on les renomme :

dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE malfivanghe.space
mv Kmalfivanghe.space.+005+48301.key malfivanghe.space-ksk.key
mv Kmalfivanghe.space.+005+48301.private malfivanghe.space-ksk.private
dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE malfivanghe.space
mv Kmalfivanghe.space.+005+15831.key malfivanghe.space-zsk.key
mv Kmalfivanghe.space.+005+15831.private malfivanghe.space-zsk.private

Puis on ajoute les .key dans le fichier de zone /etc/bind/db.malfivanghe.space en ajoutant les lignes suivantes :

$include /etc/bind/db.malfivanghe.space.dnssec/malfivanghe.space-ksk.key
$include /etc/bind/db.malfivanghe.space.dnssec/malfivanghe.space-zsk.key

Il faut également incrémenter le numéro de la version pour éviter une source d'erreur.

Ensuite il faut signer les enregistrements de la zone.

dnssec-signzone -o malfivanghe.space -k malfivanghe.space-ksk ../db.malfivanghe.space malfivanghe.space-zsk

Puis ajouter notre clé KSK sur la gestion du DNSSEC sur le site de Gandi.