TP sysres IMA2a5 2017/2018 G2
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
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
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
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
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
"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
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 .
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é à notre nom de domaine: ns.karmeliet.space et ns6.gandi.net
Malheureusement, Gandi n'a jamais réussi à trouver notre serveur DNS malgré le fait que nous ayons essayé de relancer la recherche sur plusieurs séances.
Sécurisation de site web par certificat
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>