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

De Wiki d'activités IMA
(Analyse des plans de câblage avant modification)
(Liste des différents appareils et connexions)
 
(45 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
== Introduction ==
 
== Introduction ==
=== Objectifs: ===
+
 
 +
Dans le cadre de la 5ème année en section IMA à Polytech'Lille nous avons pu réaliser sur une machine virtuelle des serveurs web et DNS. De plus une tâche personnel nous a été confiée.
 +
<br>Ce wiki relate des tenants et aboutissants des mésaventures encourues.
 +
 
 +
=== Objectifs communs ===
 
<ul>
 
<ul>
<li> Rétablir les connexions ADSL et SDSL du local technique en B300
+
<li> Installer une machine virtuelle
 +
</li>
 +
 
 +
<li> Mettre en place un serveur DNS sécurisé
 +
</li>
 +
 
 +
<li> Mettre en place un serveur web sécurisé
 +
</li>
 +
 
 +
<li> Réaliser des tests d'intrusion WIFI
 +
</li>
 +
 
 +
</ul>
 +
 
 +
=== Objectifs personnels ===
 +
<ul>
 +
<li> Rétablir les connexions ADSL et SDSL du local technique en B300.
 
</li>
 
</li>
  
Ligne 11 : Ligne 31 :
 
</li>
 
</li>
 
</ul>
 
</ul>
 
+
<br>
 
+
<br>
 +
<br>
  
 
== Analyse des plans de câblage avant modification==
 
== Analyse des plans de câblage avant modification==
 
=== Liste des différents appareils et connexions ===
 
=== Liste des différents appareils et connexions ===
==== SpeedTouch 546-V6 ====
+
'''1. SpeedTouch 546-V6'''
 
<ul>
 
<ul>
 
<li> Port 1 > Câble Ethernet Rouge > CISCO Catalyst 3560-E Series "3560E-2" | Port 7
 
<li> Port 1 > Câble Ethernet Rouge > CISCO Catalyst 3560-E Series "3560E-2" | Port 7
Ligne 29 : Ligne 50 :
  
  
==== SpeedTouch 609-V5 ====
+
'''2. SpeedTouch 609-V5'''
 
<ul>
 
<ul>
 
<li> Port 1 > Câble Ethernet Blanc > SpeedTouch 546-V6 | Port 2
 
<li> Port 1 > Câble Ethernet Blanc > SpeedTouch 546-V6 | Port 2
Ligne 39 : Ligne 60 :
  
  
==== LA-210 ====
+
'''3. LA-210'''
 
<ul>
 
<ul>
 
<li> Port 1/2 > Câble Ethernet Blanc > "Rocade" Baie de brassage | A-05
 
<li> Port 1/2 > Câble Ethernet Blanc > "Rocade" Baie de brassage | A-05
Ligne 52 : Ligne 73 :
  
  
==== CISCO-1700 ====
+
'''4. CISCO-1700'''
 
<ul>
 
<ul>
 
<li> Port 2 > Câble Ethernet Noir > CISCO Catalyst 3560-E Series "3560E-2" | Port 5
 
<li> Port 2 > Câble Ethernet Noir > CISCO Catalyst 3560-E Series "3560E-2" | Port 5
Ligne 65 : Ligne 86 :
  
  
==== "Rocade" Baie de brassage ====
+
'''5. "Rocade" Baie de brassage'''
 
<ul>
 
<ul>
 
<li> A-01 > PC
 
<li> A-01 > PC
Ligne 88 : Ligne 109 :
 
=== Topographie des différents appareils et connexions ===
 
=== Topographie des différents appareils et connexions ===
 
<ul>
 
<ul>
<li> Batteries (reçu)
+
[[Fichier:Topographie.png|500px|left]]
</li>
 
 
 
<li> Quelques interrupteurs et coupe-circuit ( reçu )
 
</li>
 
 
 
<li> Un dissipateur de chaleur pour le variateur (annulé)
 
</li>
 
 
 
<li> Un nouveau relais contacteur étanche (en cours)
 
</li>
 
 
 
<li> Un connecteur spécial pour la pédale d'accélérateur (reçu)
 
</li>
 
 
 
<li> Les broches correspondantes au connecteur de la pédale (à commander)
 
</li>
 
 
</ul>
 
</ul>
  
== Avancement du projet ==
+
<br>
=== Semaine 39 et 40 ===
+
<br>
Lecture du rapport des étudiants précédents et des différentes documentations concernant le moteur et le variateur.
+
<br>
=== Semaine 41 à 49 ===
+
<br>
Modélisation en REM du véhicule et simulation sur Matlab Simulink:
+
<br>
[[Fichier:REM.jpg]]
+
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
<br>
 +
== TP commun ==
 +
=== Installation de la machine virtuelle ===
  
Résultat de la simulation:
+
Nous avons installé notre machine sur le serveur Cordouan de l'école, c'est pourquoi dans un premier temps nous nous connectâmes sur ce dernier en ssh:
 +
  ssh cordouan.insecserv.deule.net
  
[[Fichier:Resultat.jpg|600px|thumb|right]]
+
Puis avec la commande suivante...
 +
  xen-create-image
  
 +
... et les paramètres ci-dessous, nous avons pu crée notre VM:
 +
  --hostname karmeliett -- ip 193.48.57.167 -- dir /etc/xen
  
 +
Pour lancer la VM il suffit d'entrer la commande suivante:
 +
xl create /etc/karmeliett.cfg
  
 +
(comme vous avez pu le remarquer, 'karmeliet' est écrit avec une faute d'orthographe, pour une question de cohérence la faute ne sera pas corrigée sur ce wiki)
  
 +
Pour s'y connecter, le mot clé 'console' est utilisé:
 +
xl console karmeliett
  
 +
Par la suite, le ssh étant configuré sur la VM nous avons utilisé:
 +
ssh root@193.48.57.167
  
 +
=== Configuration du serveur DNS ===
  
 +
Grâce à l'achat d'un nom de domaine sur Gandi, nous avons pu configurer notre propre serveur DNS sur notre VM.
 +
Dans un premier temps il a fallu installer les packages Bind9
  
 +
$ apt-get install bind9
  
 +
On commence par renseigner notre nom de réseau IP, l'interface du routeur, notre machine et le nom de l'adresse de diffusion de notre réseau IP dans le fichier de zone correspondant à notre nom de domaine: db.karmeliet.space . (PS: NE PAS OUBLIER LES '.' A LA FIN DES ADRESSES ! En effet c'est une erreur qui nous a coûté chère en heures...)
 +
 +
root@karmeliett:/etc/bind# cat db.karmeliet.space
 +
$TTL 604800
 +
@ IN SOA ns.karmeliet.space. admin.karmeliet.space. (
 +
6 ; Serial
 +
72000 ; Refresh
 +
3600 ; Retry
 +
1209600 ; Expire
 +
259200 ); Negative Cache TTL
 +
  IN NS ns.karmeliet.space.
 +
  IN NS ns6.gandi.net.
 +
  IN MX 100 ns.karmeliet.space.
 +
ns IN A 193.48.57.167
 +
IN MX 100 ns.karmeliet.space.
 +
IN AAAA 2001:660:4401:60b8:216:3eff:fe96:a908
 +
ns6 IN A 217.70.177.40
 +
www IN CNAME ns
  
 +
A notre nom de domaine, on associe le fichier de zone précédemment crée:
  
 +
root@karmeliett:/etc/bind# cat named.conf.local
 +
zone "karmeliet.space" {
 +
type master;
 +
file "/etc/bind/db.karmeliet.space";
 +
};
  
 +
On autorise également le DNS secondaire ns6.gandi.net à transferer:
  
 +
root@karmeliett:/etc/bind# cat named.conf.options
 +
 +
...     
 +
    allow-transfer {217.70.177.40;};
 +
};
  
 +
On modifie le fichier resolv.conf afin d'indiquer le serveur de nom utilisé par notre machine.
  
 +
root@karmeliett:/etc/bind# cat /etc/resolv.conf
 +
search karmeliet.space
 +
nameserver 127.0.0.1
  
 +
Après un restart du service bind, on vérifie le bon fonctionnement du service DNS configuré
  
 +
root@karmeliett:/etc/bind# host ns.karmeliet.space
 +
ns.karmeliet.space has address 193.48.57.167
 +
ns.karmeliet.space has IPv6 address 2001:660:4401:60b8:216:3eff:fe96:a908
 +
ns.karmeliet.space mail is handled by 100 ns.karmeliet.space.
 +
 +
La dernière étape consiste à renseigner (sur Gandi) les noms des serveurs DNS associés à notre nom de domaine:
 +
ns.karmeliet.space et ns6.gandi.net
  
 +
C'est sur cette dernière étape qu'a était notre plus grosse erreur. C'est également à partir de ce point que nous avons était en retard sur le reste du groupe.
 +
En effet n'y connaissant peu dans ce domaine, nous avons décidé de renseigner sur Gandi le nom du serveur DNS maître de l'école: 'douaisis.escaut.net' .
 +
Or une fois enregistré par Gandi, nous avons essayé une dizaine de fois de remettre ns.karmeliet.space et ns6.gandi.net sans succès.
 +
48h après une demande, Gandi rejetait à chaque fois notre requête.
 +
Finalement in extremis pendant la dernière séance, l'idée de rétablir les serveurs DNS Gandi par défaut nous est venue.
 +
'a.dns.gandi.net', 'b.dns.gandi.net' et 'c.dns.gandi.net' furent trouvés en 10 minutes à peine.
 +
C'est seulement à partir de ce point que Gandi à pu retrouver 'ns.karmeliet.space' et 'ns6.gandi.net', en 10 minutes également.
 +
(PS/Conclusion : préférez rester en retrait et suivre les autres groupes de TP pas à pas que de vouloir prendre les devants)
  
En jaune la courbe de vitesse que doit suivre le véhicule (vitesse de référence) et en violet la vitesse du véhicule par simulation (vitesse mesurée).
+
=== Installation d'un site web sécurisé ===
 +
Installation du package apache2 pour faire office de serveur web
  
 +
root@karmeliett:/# apt-get install apache2
  
 +
Ajout du nom du serveur web et de son alias:
  
=== Semaine 50 ===
+
root@karmeliett:/etc/apache2/sites-available# cat default-ssl.conf
Réception des différents interrupteurs et du coupe-circuit afin de les implémenter sur le véhicule électrique avant recoquage.
+
...
 +
ServerName www.karmeliet.space
 +
ServerAlias karmeliet.space
 +
...
  
=== Janvier et Février ===
+
Certification SSL :
  
D'après de nouvelles informations concernant le cahier des charges et les consignes auxquelles la voiture devrait pouvoir rouler, nous avons réalisé une simulation avec les coefficients se rapprochant le plus possible de la réalité.
+
Pour la sécurisation de notre site web, nous avons utilisé 'openssl' pour créer une clé asymétrique (myKEY.key) et une demande de certification (myCRS.crs) afin de recevoir un certificat signé (myCRT.crt) par un CA (dans notre cas Gandi) et une chaîne de certification (myPEM.pem):
Nous avons obtenu des résultats assez encourageant, ne dépassant pas les limites demandées (80 Nm de couple en sortie de l'arbre de réduction, une puissance de 8 Kw alors que le moteur peut aller jusqu'à 8.6 Kw et une vitesse de 90 Km/h atteinte) et atteignant celles souhaitées.
+
On voit donc dans les courbes suivantes que la vitesse de consigne(25m/s) est bien atteinte et la puissance su moteur est de 8000W.
+
root@karmeliett:/etc/apache2# ls
 +
apache2.conf conf-enabled  magic       mods-enabled  myCSR.csr  myPEM.pem  sites-available
 +
conf-available envvars      mods-available  myCRT.crt    myKEY.key  ports.conf  sites-enabled
  
[[Fichier:VITESSE.png|600px|thumb|right]]
 
[[Fichier:PUISSANCE.png|600px|thumb|right]]
 
  
 +
Ensuite il faut renseigner tous ces fichiers dans la configuration pour gérer le HTTPS sur le port 443:
  
 +
root@karmeliett:/etc/apache2# cat sites-available/default-ssl.conf
 +
<IfModule mod_ssl.c>
 +
<VirtualHost _default_:443>
 +
ServerName www.karmeliet.space
 +
        ServerAlias karmeliet.space
 +
 +
...
 +
 +
#  SSL Engine Switch:
 +
#  Enable/Disable SSL for this virtual host.
 +
SSLEngine on
 +
 +
#  A self-signed (snakeoil) certificate can be created by installing
 +
#  the ssl-cert package. See
 +
#  /usr/share/doc/apache2/README.Debian.gz for more info.
 +
#  If both key and certificate are stored in the same file, only the
 +
#  SSLCertificateFile directive is needed.
 +
SSLCertificateFile myCRT.crt
 +
SSLCertificateKeyFile myKEY.key
 +
 +
#  Server Certificate Chain:
 +
#  Point SSLCertificateChainFile at a file containing the
 +
#  concatenation of PEM encoded CA certificates which form the
 +
#  certificate chain for the server certificate. Alternatively
 +
#  the referenced file can be the same as SSLCertificateFile
 +
#  when the CA certificates are directly appended to the server
 +
#  certificate for convinience.
 +
SSLCertificateChainFile myPEM.pem
 +
 +
...
 +
 +
</VirtualHost>
 +
</IfModule>
  
  
 +
Finalement notre site web sécurisé fonctionne bien:
 +
<br>
 +
https://www.karmeliet.space/
  
 +
=== Installation du DNSSEC ===
  
 +
Nous avons sécurisé notre serveur DNS avec la création de deux clés asymétriques et en signant les enregistrements de la zone grâce à celle-ci.
  
 +
Dans un premier temps il a fallut ajouter l'option 'dnssec-enable yes' dans le fichier named.conf.options:
  
 +
root@karmeliett:/etc/bind# cat named.conf.options
 +
options {
 +
directory "/etc/bind";
 +
        ...
 +
dnssec-validation auto;
 +
dnssec-enable yes;
 +
auth-nxdomain no;    # conform to RFC1035
 +
listen-on-v6 { any; };
 +
};
  
 +
Puis nous avons crée le dossier karmeliet.space.dnssec pour y stocker les clés.
 +
La première paire de clés crée est la clé asymétrique de signature de clefs de zone:
 +
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE karmeliet.space
 +
(utilisez '-r /dev/urandom' uniquement pour un système de test)
 +
Les clés crées sont renommées en 'karmeliet.space-ksk.key' et 'karmeliet.space-ksk.private'.
  
 +
la deuxième paire de clés crée est la clé asymétrique de la zone pour signer les enregistrements
 +
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE karmeliet.space
 +
(de même utilisez '-r /dev/urandom' uniquement pour un système de test)
 +
Les clés crées sont renommées en 'karmeliet.space-zsk.key' et 'karmeliet.space-zsk.private'.
  
 +
Ensuite nous avons inclus les clés publics dans notre fichier de zone 'db.karmeliet.space':
  
 +
root@karmeliett:/etc/bind# cat db.karmeliet.space
 +
;
 +
; BIND data file for local loopback interface
 +
;
 +
$TTL 604800
 +
 +
$include /etc/bind/karmeliet.space.dnssec/karmeliet.space-ksk.key
 +
$include /etc/bind/karmeliet.space.dnssec/karmeliet.space-zsk.key
 +
...
 +
(PS: ne pas oublier d'incrémenter le numéro de série du fichier de zone et de redemarrer bind9 'service bind9 restart')
  
 +
Et enfin la commande suivante lancée depuis le dossier 'karmeliet.space.dnssec' nous a permis de signer les enregistrements de notre zone:
 +
dnssec-signzone -o karmeliet.space -k karmeliet.space-ksk ../db.karmeliet.space karmeliet.space-zsk
 +
 
 +
L'avant dernière étape consistait remplacer l'ancienne zone par la nouvelle signée en remplaçant 'db.karmeliet.space' par 'db.karmeliet.space.signed' dans le fichier 'named.conf.local':
 +
root@karmeliett:/etc/bind# cat named.conf.local
 +
zone "karmeliet.space" {
 +
type master;
 +
file "/etc/bind/db.karmeliet.space.signed";
 +
};
 +
...
  
 +
La dernière étape était de communiquer la partie publique de la KSK soit 'karmeliet.space-ksk.key' à Gandi.
 +
(Voir l'onglet "Manage DNSSEC" sur Gandi)
  
 +
Pour vérifier la sécurisation DNSSEC on peut utiliser le site 'dnsviz.net' et entrer notre nom de domaine 'www.karmeliet.space'
 +
<br>
 +
http://dnsviz.net/d/www.karmeliet.space/dnssec/
  
 
+
<ul>
 
+
[[Fichier:Dnsviz_karmeliet.png|500px|left]]
 
+
</ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Suite à différents inprévus de la part du fournisseur qui devait venir câbler les batteries et le BMS, nous n'avons pas pu configurer le variateur. Nous nous sommes donc reporter sur de la documentation sur celui-ci, ainsi que sur le BMS, afin de permettre un gain de temps pour le futur binôme qui reprendra le sujet normalement l'année pochaine. Nous avons également réalisé les différents câblages pour implémenter les différents éléments.
 
 
 
 
 
[[Fichier:Batterie.JPG|600px|thumb|left]]
 
 
 
[[Fichier:BMS.JPG|600px|thumb|left]]
 
 
 
[[Fichier:Chargeur.JPG|600px|thumb|left]]
 
 
 
[[Fichier:Variateur.JPG|600px|thumb|left]]
 
 
 
[[Fichier:Vehicule.JPG|600px|thumb|left]]
 

Version actuelle datée du 30 novembre 2017 à 14:26

Introduction

Dans le cadre de la 5ème année en section IMA à Polytech'Lille nous avons pu réaliser sur une machine virtuelle des serveurs web et DNS. De plus une tâche personnel nous a été confiée.
Ce wiki relate des tenants et aboutissants des mésaventures encourues.

Objectifs communs

  • Installer une machine virtuelle
  • Mettre en place un serveur DNS sécurisé
  • Mettre en place un serveur web sécurisé
  • Réaliser des tests d'intrusion WIFI

Objectifs personnels

  • Rétablir les connexions ADSL et SDSL du local technique en B300.
  • Déplacer les modems sur le routeur destiné aux TP et reconfigurer ce dernier
  • Aménager un espace pour les différents modems




Analyse des plans de câblage avant modification

Liste des différents appareils et connexions

1. SpeedTouch 546-V6

  • Port 1 > Câble Ethernet Rouge > CISCO Catalyst 3560-E Series "3560E-2" | Port 7
  • Port 2 > Câble Ethernet Blanc > SpeedTouch 609-V5 | Port 1
  • Port Adsl > Câble Adsl Noir > "Rocade" Baie de brassage | A-03


2. SpeedTouch 609-V5

  • Port 1 > Câble Ethernet Blanc > SpeedTouch 546-V6 | Port 2
  • Port Adsl > Câble Adsl Blanc > "Rocade" Baie de brassage | A-04


3. LA-210

  • Port 1/2 > Câble Ethernet Blanc > "Rocade" Baie de brassage | A-05
  • Port 3/4 > Câble Ethernet Blanc > "Rocade" Baie de brassage | A-06
  • Port 10/100 > Câble Ethernet Rouge > CISCO-1700 | Port 10/100


4. CISCO-1700

  • Port 2 > Câble Ethernet Noir > CISCO Catalyst 3560-E Series "3560E-2" | Port 5
  • Port 3 > Câble Ethernet Blanc > "Rocade" Baie de brassage | A-01
  • Port 10/100 > Câble Ethernet Blanc > LA-210 | Port 10/100


5. "Rocade" Baie de brassage

  • A-01 > PC
  • A-02 > ADSL
  • A-03 > ADSL
  • A-04 > SDSL
  • A-05 > SDSL - 0036WvW5
  • A-06 > SDSL - S036WvW5

Topographie des différents appareils et connexions

    Topographie.png




































TP commun

Installation de la machine virtuelle

Nous avons installé notre machine sur le serveur Cordouan de l'école, c'est pourquoi dans un premier temps nous nous connectâmes sur ce dernier en ssh:

 ssh cordouan.insecserv.deule.net

Puis avec la commande suivante...

 xen-create-image

... et les paramètres ci-dessous, nous avons pu crée notre VM:

 --hostname karmeliett -- ip 193.48.57.167 -- dir /etc/xen

Pour lancer la VM il suffit d'entrer la commande suivante:

xl create /etc/karmeliett.cfg

(comme vous avez pu le remarquer, 'karmeliet' est écrit avec une faute d'orthographe, pour une question de cohérence la faute ne sera pas corrigée sur ce wiki)

Pour s'y connecter, le mot clé 'console' est utilisé:

xl console karmeliett

Par la suite, le ssh étant configuré sur la VM nous avons utilisé:

ssh root@193.48.57.167

Configuration du serveur DNS

Grâce à l'achat d'un nom de domaine sur Gandi, nous avons pu configurer notre propre serveur DNS sur notre VM. Dans un premier temps il a fallu installer les packages Bind9

$ apt-get install bind9

On commence par renseigner notre nom de réseau IP, l'interface du routeur, notre machine et le nom de l'adresse de diffusion de notre réseau IP dans le fichier de zone correspondant à notre nom de domaine: db.karmeliet.space . (PS: NE PAS OUBLIER LES '.' A LA FIN DES ADRESSES ! En effet c'est une erreur qui nous a coûté chère en heures...)

root@karmeliett:/etc/bind# cat db.karmeliet.space
$TTL 604800
@ IN SOA ns.karmeliet.space. admin.karmeliet.space. (
	6	; Serial
	72000	; Refresh
	3600	; Retry
	1209600	; Expire
	259200 ); Negative Cache TTL
 IN NS	ns.karmeliet.space.
 IN NS	ns6.gandi.net.
 IN MX 100 ns.karmeliet.space.
ns	IN A 193.48.57.167
	IN MX	100 ns.karmeliet.space.
	IN AAAA	2001:660:4401:60b8:216:3eff:fe96:a908
ns6	IN A 217.70.177.40
www	IN CNAME ns

A notre nom de domaine, on associe le fichier de zone précédemment crée:

root@karmeliett:/etc/bind# cat named.conf.local 
zone "karmeliet.space" {
	type master;
	file "/etc/bind/db.karmeliet.space";
};

On autorise également le DNS secondaire ns6.gandi.net à transferer:

root@karmeliett:/etc/bind# cat named.conf.options

...       
    allow-transfer {217.70.177.40;};
};

On modifie le fichier resolv.conf afin d'indiquer le serveur de nom utilisé par notre machine.

root@karmeliett:/etc/bind# cat /etc/resolv.conf
search karmeliet.space
nameserver 127.0.0.1

Après un restart du service bind, on vérifie le bon fonctionnement du service DNS configuré

root@karmeliett:/etc/bind# host ns.karmeliet.space
ns.karmeliet.space has address 193.48.57.167
ns.karmeliet.space has IPv6 address 2001:660:4401:60b8:216:3eff:fe96:a908
ns.karmeliet.space mail is handled by 100 ns.karmeliet.space.

La dernière étape consiste à renseigner (sur Gandi) les noms des serveurs DNS associés à notre nom de domaine: ns.karmeliet.space et ns6.gandi.net

C'est sur cette dernière étape qu'a était notre plus grosse erreur. C'est également à partir de ce point que nous avons était en retard sur le reste du groupe. En effet n'y connaissant peu dans ce domaine, nous avons décidé de renseigner sur Gandi le nom du serveur DNS maître de l'école: 'douaisis.escaut.net' . Or une fois enregistré par Gandi, nous avons essayé une dizaine de fois de remettre ns.karmeliet.space et ns6.gandi.net sans succès. 48h après une demande, Gandi rejetait à chaque fois notre requête. Finalement in extremis pendant la dernière séance, l'idée de rétablir les serveurs DNS Gandi par défaut nous est venue. 'a.dns.gandi.net', 'b.dns.gandi.net' et 'c.dns.gandi.net' furent trouvés en 10 minutes à peine. C'est seulement à partir de ce point que Gandi à pu retrouver 'ns.karmeliet.space' et 'ns6.gandi.net', en 10 minutes également. (PS/Conclusion : préférez rester en retrait et suivre les autres groupes de TP pas à pas que de vouloir prendre les devants)

Installation d'un site web sécurisé

Installation du package apache2 pour faire office de serveur web

root@karmeliett:/# apt-get install apache2

Ajout du nom du serveur web et de son alias:

root@karmeliett:/etc/apache2/sites-available# cat default-ssl.conf 
...
ServerName www.karmeliet.space
ServerAlias karmeliet.space
...

Certification SSL :

Pour la sécurisation de notre site web, nous avons utilisé 'openssl' pour créer une clé asymétrique (myKEY.key) et une demande de certification (myCRS.crs) afin de recevoir un certificat signé (myCRT.crt) par un CA (dans notre cas Gandi) et une chaîne de certification (myPEM.pem):

root@karmeliett:/etc/apache2# ls
apache2.conf	conf-enabled  magic	      mods-enabled  myCSR.csr  myPEM.pem   sites-available
conf-available	envvars       mods-available  myCRT.crt     myKEY.key  ports.conf  sites-enabled


Ensuite il faut renseigner tous ces fichiers dans la configuration pour gérer le HTTPS sur le port 443:

root@karmeliett:/etc/apache2# cat sites-available/default-ssl.conf 
<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
		ServerName www.karmeliet.space
        	ServerAlias karmeliet.space

		...

		#   SSL Engine Switch:
		#   Enable/Disable SSL for this virtual host.
		SSLEngine on

		#   A self-signed (snakeoil) certificate can be created by installing
		#   the ssl-cert package. See
		#   /usr/share/doc/apache2/README.Debian.gz for more info.
		#   If both key and certificate are stored in the same file, only the
		#   SSLCertificateFile directive is needed.
		SSLCertificateFile	myCRT.crt
		SSLCertificateKeyFile 	myKEY.key

		#   Server Certificate Chain:
		#   Point SSLCertificateChainFile at a file containing the
		#   concatenation of PEM encoded CA certificates which form the
		#   certificate chain for the server certificate. Alternatively
		#   the referenced file can be the same as SSLCertificateFile
		#   when the CA certificates are directly appended to the server
		#   certificate for convinience.
		SSLCertificateChainFile myPEM.pem

		...

	</VirtualHost>
</IfModule>


Finalement notre site web sécurisé fonctionne bien:
https://www.karmeliet.space/

Installation du DNSSEC

Nous avons sécurisé notre serveur DNS avec la création de deux clés asymétriques et en signant les enregistrements de la zone grâce à celle-ci.

Dans un premier temps il a fallut ajouter l'option 'dnssec-enable yes' dans le fichier named.conf.options:

root@karmeliett:/etc/bind# cat named.conf.options

options {
	directory "/etc/bind";
       ...
	dnssec-validation auto;
	dnssec-enable yes;
	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };
};

Puis nous avons crée le dossier karmeliet.space.dnssec pour y stocker les clés. La première paire de clés crée est la clé asymétrique de signature de clefs de zone:

dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE karmeliet.space

(utilisez '-r /dev/urandom' uniquement pour un système de test) Les clés crées sont renommées en 'karmeliet.space-ksk.key' et 'karmeliet.space-ksk.private'.

la deuxième paire de clés crée est la clé asymétrique de la zone pour signer les enregistrements

dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE karmeliet.space

(de même utilisez '-r /dev/urandom' uniquement pour un système de test) Les clés crées sont renommées en 'karmeliet.space-zsk.key' et 'karmeliet.space-zsk.private'.

Ensuite nous avons inclus les clés publics dans notre fichier de zone 'db.karmeliet.space':

root@karmeliett:/etc/bind# cat db.karmeliet.space
;
; BIND data file for local loopback interface
;
$TTL 604800

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

(PS: ne pas oublier d'incrémenter le numéro de série du fichier de zone et de redemarrer bind9 'service bind9 restart')

Et enfin la commande suivante lancée depuis le dossier 'karmeliet.space.dnssec' nous a permis de signer les enregistrements de notre zone:

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

L'avant dernière étape consistait remplacer l'ancienne zone par la nouvelle signée en remplaçant 'db.karmeliet.space' par 'db.karmeliet.space.signed' dans le fichier 'named.conf.local':

root@karmeliett:/etc/bind# cat named.conf.local 
zone "karmeliet.space" {
	type master;
	file "/etc/bind/db.karmeliet.space.signed";
};
...

La dernière étape était de communiquer la partie publique de la KSK soit 'karmeliet.space-ksk.key' à Gandi. (Voir l'onglet "Manage DNSSEC" sur Gandi)

Pour vérifier la sécurisation DNSSEC on peut utiliser le site 'dnsviz.net' et entrer notre nom de domaine 'www.karmeliet.space'
http://dnsviz.net/d/www.karmeliet.space/dnssec/

    Dnsviz karmeliet.png