Cahier 2016 groupe n°3 : Différence entre versions

De Wiki de Projets IMA
(Sécurisation de site web par certificat)
(Sécurisation de site web par certificat)
Ligne 481 : Ligne 481 :
  
 
=== Sécurisation de site web par certificat ===
 
=== Sécurisation de site web par certificat ===
 +
Une fois notre certificat validé et généré par Gandi, on déplace nos fichiers de certificats
 
<pre>
 
<pre>
 
cp piscinemorte.net.crt /etc/ssl/certs/piscinemorte.net.crt
 
cp piscinemorte.net.crt /etc/ssl/certs/piscinemorte.net.crt

Version du 28 novembre 2016 à 18:27

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

Gestion du serveur DAS

Site IBM [1]

Site Hp [2], Maintenance et service G5.

Site Hp [3], Datasheet G5

Site Hp, [4], Datasheet MSA60

Site Hp, [5], Datasheet en Français

Installation des outils HP

Source : http://wiki.csnu.org/index.php/Installation_des_outils_HP_pour_debian

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

Script and cie

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

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 
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 
#aireplay-ng --deauth=5 -a 04:DA:D2:9C:50:52
result ?

puis on lance le décodage avec le dico

aircrack-ng dump-03.cap -w dico.txt -l KEY

result

Services Internet

Serveur SSH

Serveur DNS

Nous avons réservé sur Gandi notre nom de domaine : piscinemorte.net

Ensuite, nous avons installé les paquets apache et bind

apt-get update
apt-get install apache2 bind9

Une fois bind installé, on créer un fichier de zone db.piscinemorte.net (//TODO Expliquer à quoi ça sert):

;
; 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

Sécurisation de site web par certificat

Une fois notre certificat validé et généré par Gandi, on déplace nos fichiers de certificats

cp piscinemorte.net.crt /etc/ssl/certs/piscinemorte.net.crt
cp monserveur.key /etc/ssl/private/piscinemorte.net.key  
cp GandiStandardSSLCA2.pem /etc/ssl/certs/GandiStandardSSLCA2.pem
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

//TODO : port.conf fait, faire 000 -ssl.conf

Sécurisation de serveur DNS par DNSSEC