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

De Wiki de Projets IMA
m (Travail commun)
(Annulation des modifications 46348 de Hdelatte (discussion))
 
(16 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 50 : Ligne 50 :
 
ssh root@cordouan.insecserv.deule.net
 
ssh root@cordouan.insecserv.deule.net
 
xl create /etc/xen/GreenArrow.cfg
 
xl create /etc/xen/GreenArrow.cfg
 +
ssh username@weppes
 +
ssh root@193.48.57.162
 +
</pre>
  
 
* Achat du nom de domaine [http://jjlddelamuerto.space] sur Gandi pour 1.19€ TTC
 
* Achat du nom de domaine [http://jjlddelamuerto.space] sur Gandi pour 1.19€ TTC
Ligne 814 : Ligne 817 :
 
Nous pouvons maintenant nous connecter sur le reseau Wifi via smartphone, le serveur DHCP fonctionne correctement.
 
Nous pouvons maintenant nous connecter sur le reseau Wifi via smartphone, le serveur DHCP fonctionne correctement.
 
[[Fichier:Connexioniphone.JPG|thumb|center|Connexion via smartphone]]
 
[[Fichier:Connexioniphone.JPG|thumb|center|Connexion via smartphone]]
 +
 +
==== Configuration et utilisation du PCBX ====
 +
 +
Nous avons modifiés le fichier sip.conf :<br />
 +
<pre>[general]
 +
hasvoicemail=yes
 +
hassip=yes
 +
hasiax=yes
 +
callwaiting=yes
 +
threewaycalling=yes
 +
callwaitingcallerid=yes
 +
transfer=yes
 +
canpark=yes
 +
cancallforward=yes
 +
callreturn=yes
 +
callgroup=1
 +
pickupgroup=1
 +
nat=yes
 +
 +
[6001]
 +
type=friend
 +
host=dynamic
 +
dtmfmode=rfc2833
 +
disallow=all
 +
allow=ulaw
 +
fullname=JulienJoignaux
 +
username=jjoignaux
 +
secret=secret
 +
context=work
 +
 +
[6002]
 +
type=friend
 +
host=dynamic
 +
dtmfmode=rfc2833
 +
disallow=all
 +
allow=ulaw
 +
fullname=LoicDelecroix
 +
username=ldelecro
 +
secret=secret
 +
context=work</pre>
 +
<br />
 +
 +
Puis nous modifions le fichier extensions.conf
 +
<pre>[work]
 +
exten=>_6XXX,1,Dial(SIP/${EXTEN},20)
 +
exten => _6XXX,2,Hangup()
 +
</pre>
 +
 +
[[Fichier:voipjjld.jpg|thumb|center|Appel entre 2 smartphones]]
 +
 +
== Références ==
 +
 +
* Crackage de la clef WEP : [http://wiki.backtrack-fr.net/index.php/Casser_une_cl%C3%A9_wep/wpa_avec_la_suite_Aircrack-ng]
 +
* Cassage de mot de passe WPA-PSK : [http://www.crack-wifi.com/tutoriel-crack-wpa.php]
 +
* Cryptage de données : [https://doc.ubuntu-fr.org/cryptsetup]
 +
* DHCP : [https://doc.ubuntu-fr.org/isc-dhcp-server]
 +
* Asterisk : [http://denisrosenkranz.com/tuto-installer-et-configurer-asterisk-sous-debian-6-et-ubuntu/]

Version actuelle datée du 17 novembre 2017 à 13:58

Tâche particulière

Câblage de la fibre:
Prise de connaissance du sujet de PRA et le choix des tâches particulières. Nous avons également commencer à essayer d'identifier les câbles de fibres déjà existants.
Toujours sur la tâche particulière. Identification de tous les câbles déjà tirés. Test de link de chaque câble. Nous avons également commencé à passer les câbles restants. Tous les câbles nécessaires ont été tirés entre les deux salles, tous les link sont up. Nous avons identifié chaque câble par un scotch de couleur différente. Nous avons également percé la gouttière de la E304 pour laisser passer un raccord de fibre proprement.

  • Nous avons pu identifier les câbles déjà présents. Il y a donc 2 câbles déjà tirés entre les 2 piles, 2 câbles qui partent de la E306 jusqu'au boîtier ainsi qu'un câble par salle quid descend dans le local technique.
  • Nous allons donc prolonger les 2 câbles s'arrêtant dans le boîtier et tirer 2 nouveaux câbles entre les deux piles: nous aurons donc 6 fils au total.
  • 2 Grands câbles de 30m ~ -> Estimation de 26m entre les 2 piles.
  • 2 petits câbles de 15m ~ -> Estimation de 13m du boîtier à la pile
  • Retirer le câble ethernet qui était tiré entre les 2 piles.
  • 7 heures passées au total sur la tâche particulière
Fibre passant entre les 2 salles
Câbles dans le faux plafond
Guide câbles pour le faux plafond
Boîtiers contenant les raccords de fibres
Les fibres en E304 disponibles
Trou dans le cache laissant passer la fibre









































































Travail commun

  • Installation de la machine virtuelle XEN
xen-create-image --hostname=GreenArrow --ip=193.48.57.162 --netmask=255.255.255.240 --gateway=193.48.57.172
  --dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie

Modification du fichier de configuration de la machine virtuelle 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-GreenArrow-home -v
lvcreate -L 10G -n /dev/virtual/ima5-GreenArrow-var -v
disk        = [
                  'file:/usr/local/xen/domains/GreenArrow/disk.img,xvda2,w',
                  'file:/usr/local/xen/domains/GreenArrow/swap.img,xvda1,w',
                  'phy:/dev/virtual/ima5-GreenArrow-home,xvdc,w',
                  'phy:/dev/virtual/ima5-GreenArrow-var,xvdb,w',
              ]

Commandes de base pour démarrer la VM proprement:

ssh root@cordouan.insecserv.deule.net
xl create /etc/xen/GreenArrow.cfg
ssh username@weppes
ssh root@193.48.57.162
  • Achat du nom de domaine [1] sur Gandi pour 1.19€ TTC

Services Internet

Serveur SSH

Sur notre machine virtuelle nous avons configuré le fichier sshd_config (changement de la ligne PubkeyAuthentication) :

root@GreenArrow:~# vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

root@GreenArrow:~# service ssh restart

Nous avons ensuite réussi à nous connecter en SSH sur notre VM:

jjoignau@weppes:~$ ssh root@193.48.57.162
root@193.48.57.162'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: Mon Nov  7 10:06:49 2016
root@GreenArrow:~# exit

Serveur DNS

Tout d'abord, nous modifions le fichier named.conf.local pour créer les zones nécessaires :

root@GreenArrow:/etc/bind# vim /etc/bind/named.conf.local
zone "jjlddelamuerto.space" IN {
             type master;
             file "/etc/bind/db.jjlddelamuerto.space";
        };

zone "57.48.193.in-addr.arpa" IN {
             type master;
             file "/etc/bind/db.57.48.193.in-addr.arpa";
        };

Nous créons ensuite les fichiers db.jjlddelamuerto.space et db.57.48.193.in-addr.arpa :

$TTL    604800
@       IN      SOA     ns.jjlddelamuerto.space. root.jjlddelamuerto.space. (
                       2016113007       ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.jjlddelamuerto.space. 
@       IN      NS      ns6.gandi.net.
ns      IN      A       193.48.57.162
www     IN      A       193.48.57.162
@       IN      A       193.48.57.162
ns      IN      AAAA       2001:660:4401:60ba:216:3eff:fe80:efa8
www     IN      AAAA       2001:660:4401:60ba:216:3eff:fe80:efa8
@       IN      AAAA       2001:660:4401:60ba:216:3eff:fe80:efa8
$TTL    604800
@       IN      SOA     jjlddelamuerto.space. root.jjlddelamuerto.space. (
                        2016113007      ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
57.48.193.in-addr.arpa.         IN      NS      ns.jjlddelamuerto.space.
57.48.193.in-addr.arpa.         IN      NS      ns2.gandi.net.

162                             IN      PTR     jjlddelamuerto.space.

Nous modifions ensuite le fichier /etc/resolv.conf afin de passer par notre serveur :

root@GreenArrow:/etc/bind# vim /etc/resolv.conf
search jjlddelamuerto.space
nameserver 193.48.57.162

Enfin, nous vérifions notre configuration :

root@GreenArrow:/etc/bind# host www.jjlddelamuerto.space
www.jjlddelamuerto.space has address 193.48.57.162
www.jjlddelamuerto.space has IPv6 address 2001:660:4401:60ba:216:3eff:fe80:efa8

root@GreenArrow:/etc/bind# host -tany jjlddelamuerto.space
jjlddelamuerto.space has IPv6 address 2001:660:4401:60ba:216:3eff:fe80:efa8
jjlddelamuerto.space has address 193.48.57.162
jjlddelamuerto.space has SOA record ns.jjlddelamuerto.space. root.jjlddelamuerto.space. 2016113007 604800 86400 2419200 604800
jjlddelamuerto.space name server ns6.gandi.net.
jjlddelamuerto.space name server ns.jjlddelamuerto.space.

Sécurisation de site web par certificat

Premièrement, sur Gandi nous lançons l'étape d'achat d'un certificat SSL. Puis, sur la VM nous générons le CSR grâce à cette commande:

root@GreenArrow:/etc/apache2/sites-available/clef# openssl req -nodes -newkey rsa:2048 -sha256 -keyout GreenArrow.key -out GreenArrow.csr
Generating a 2048 bit RSA private key

If you enter '.', the field will be left blank.
-----
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]:PolytechLille
Organizational Unit Name (eg, section) []:IMA
Common Name (e.g. server FQDN or YOUR name) []:jjlddelamuerto.space
Email Address []:
A challenge password []:
An optional company name []:

root@GreenArrow:/etc/apache2/sites-available/clef# ls
GreenArrow.csr	GreenArrow.key

root@GreenArrow:/etc/apache2/sites-available/clef# cat GreenArrow.csr

-----BEGIN CERTIFICATE REQUEST-----
<CSR à renseigner sur Gandi lors de l'achat du certificat>
-----END CERTIFICATE REQUEST-----

Nous continuons donc la procédure pour obtenir le certificat, et attendons donc sa mise en place.

Pour recevoir le mail contenant le lien pour activer le certificat, nous installons les packages suivants :

root@GreenArrow:~# apt-get install postfix mailx

Une fois le certificat récupéré, nous les copions tous dans le bon répertoire, puis nous hashons le tout :

root@GreenArrow:/etc/bind# cp certificat.crt /etc/ssl/certs/jjlddelamuerto.space.crt
root@GreenArrow:/etc/bind# cp serveur.key /etc/ssl/private/jjlddelamuerto.space.key
root@GreenArrow:/etc/bind# cp GandiStandardSSLCA2.pem /etc/ssl/certs/GandiStandardSSLCA2.pem
root@GreenArrow:/etc/bind# c_rehash /etc/ssl/certs

Enfin, la dernière étape consiste en la modification des fichiers 000-jjlddelamuerto.space-ssl.conf et ports.conf :

root@GreenArrow:/etc/apache2/sites-available# cat 000-jjlddelamuerto.space-ssl.conf 
     <VirtualHost *:443>
         ServerName www.jjlddelamuerto.space
         ServerAlias jjlddelamuerto.space
         DocumentRoot /var/www/
         CustomLog /var/log/apache2/secure_access.log combined
   
         SSLEngine on
         SSLCertificateFile /etc/ssl/certs/jjlddelamuerto.space.crt
         SSLCertificateKeyFile /etc/ssl/private/jjlddelamuerto.space.key
         SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem
         SSLVerifyClient None
     </VirtualHost>

root@GreenArrow:/etc/apache2# cat ports.conf 
Listen 80

<IfModule ssl_module>
	Listen 443
</IfModule>

<IfModule mod_gnutls.c>
	Listen 443
</IfModule>

Un redémarrage du service apache2 est maintenant nécessaire :

root@GreenArrow:/etc/apache2# service apache2 stop
root@GreenArrow:/etc/apache2# service apache2 start
root@GreenArrow:/etc/apache2# service apache2 reload

Nous pouvons voir que notre site [2] est maintenant sécurisé, un cadenas vert est bien présent.

Sécurisation de serveur DNS par DNSSEC

Génération des clefs asymétriques:

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

On modifie le nom des clefs:

root@GreenArrow:/etc/bind/jjlddelamuerto.space.dnssec# ls
dsset-jjlddelamuerto.space.	  jjlddelamuerto.space-zsk.key
jjlddelamuerto.space-ksk.key	  jjlddelamuerto.space-zsk.private
jjlddelamuerto.space-ksk.private

Ensuite nous signons les zones:

root@GreenArrow:/etc/bind/jjlddelamuerto.space.dnssec# dnssec-signzone -o jjlddelamuerto.space -k jjlddelamuerto.space-ksk 
../db.jjlddelamuerto.space jjlddelamuerto.space-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.jjlddelamuerto.space.signed

Pour finir nous ajoutons la clef KSK sur Gandi avec l'algorithme RSA/SHA1.

Jjlddnssec.png

Tests d'intrusion

Intrusion par changement d'adresse MAC

Tout d'abord nous modifions le fichier /etc/network/interfaces:

root@zebrasoma:/home/pifou# vim /etc/network/interfaces
auto wlan5
iface wlan5 inet static
        address 172.26.79.21
        netmask 255.255.240.0
        gateway 172.26.79.254
        wireless mode-managed
        wireless-essid Wolverine
        wireless-key 0123456789

Nous vérifions ensuite que nous sommes associés à Wolverine:

root@zebrasoma:/home/pifou# iwconfig
wlan5     IEEE 802.11abg  ESSID:"Wolverine"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: 44:AD:D9:5F:87:00   
          Bit Rate=54 Mb/s   Tx-Power=200 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:0123-4567-89
          Power Management:off
          Link Quality=50/70  Signal level=-60 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Nous changeons ensuite l'@ MAC:

root@zebrasoma:/home/pifou# ip link set wlan5 address 00:1a:56:a4:4b:ff
root@zebrasoma:/home/pifou# ip a
3: wlan5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:1a:56:a4:4b:ff brd ff:ff:ff:ff:ff:ff
    inet 172.26.79.21/20 brd 172.26.79.255 scope global wlan5
       valid_lft forever preferred_lft forever


Après le changement d'@ MAC, l'association est bien impossible:

root@zebrasoma:/home/pifou# ifconfig wlan5 up
root@zebrasoma:/home/pifou# iwconfig        
wlan5     IEEE 802.11bgn  ESSID:"Wolverine"  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:0123-4567-89
          Power Management:off

Crackage de la clef WEP

Nous avons fait le crack de la clé WEP sur cracotte08. Pour cracker la clef WEP, nous avons tout d'abord utiliser airmon-ng afin de voir le statut des interfaces réseau.

root@zebrasoma:/home/pifou# airmon-ng


Interface	Chipset		Driver

mon0		Ralink RT2870/3070	rt2800usb - [phy1]
wlan0		Broadcom	wl - [phy0]
wlan5		Ralink RT2870/3070	rt2800usb - [phy1]

On entre ensuite en mode monitoring sur l'interface wlan5 :

root@zebrasoma:/home/pifou# airmon-ng start wlan5


Found 2 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!

PID	Name
1986	avahi-daemon
1987	avahi-daemon


Interface	Chipset		Driver

mon0		Ralink RT2870/3070	rt2800usb - [phy1]
wlan0		Broadcom	wl - [phy0]
wlan5		Ralink RT2870/3070	rt2800usb - [phy1]
				(monitor mode enabled on mon1)

Pour continuer, nous capturons les paquets transitant afin de collecter les paquets nécessaires au décryptage de la clef WEP. L'option --encrypt wep permet de filtrer uniquement les points d'accès WEP.

root@zebrasoma:/home/pifou# airodump-ng --encrypt wep wlan5

 CH  5 ][ Elapsed: 0 s ][ 2016-03-31 18:36                                         
                                                                                                       
 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
                                                                                                       
 44:AD:D9:5F:87:00  -42        3        0    0   3  54e. WEP  WEP         Wolverine                    
 04:DA:D2:9C:50:50  -59        2       11    0   2  54e. WEP  WEP         cracotte01                   
 04:DA:D2:9C:50:56  -59        3       19    0   2  54e. WEP  WEP         cracotte07                   
 04:DA:D2:9C:50:59  -59        2        0    0   2  54e. WEP  WEP         cracotte10                   
 04:DA:D2:9C:50:57  -59        2       15    0   2  54e. WEP  WEP         cracotte08                   
 04:DA:D2:9C:50:52  -58        3       85   42   2  54e. WEP  WEP         cracotte03                   
 04:DA:D2:9C:50:54  -58        1       20    9   2  54e. WEP  WEP         cracotte05                    
 04:DA:D2:9C:50:55  -60        1        9    4   2  54e. WEP  WEP         cracotte06                    
 04:DA:D2:9C:50:51  -59        2      134   66   2  54e. WEP  WEP         cracotte02                   
 04:DA:D2:9C:50:53  -61        6       95   47   2  54e. WEP  WEP         cracotte04                   
                                                                                                       
 BSSID              STATION            PWR   Rate    Lost    Frames  Probe                              
                                                                                                        
 04:DA:D2:9C:50:50  00:0F:B5:92:23:75  -66   54e-48e    68       10                                     
 04:DA:D2:9C:50:56  00:0F:B5:92:23:71  -72   36e- 2e   133       19                                     
 04:DA:D2:9C:50:57  00:0F:B5:92:22:66  -66   54e-36e    89       15                                     
 04:DA:D2:9C:50:52  00:0F:B5:92:23:6A  -62   54e-48e    23       84                                     
 04:DA:D2:9C:50:54  00:0F:B5:92:23:74  -66   54e-36e   576       20                                     

Nous avons choisi de récuperer la clef WEP de cracotte03 (son BSSID est lié à une station)

root@zebrasoma:/home/pifou# airodump-ng --essid cracotte03 --channel 2 -w crackWEP wlan5

 CH  2 ][ Elapsed: 12 s ][ 2016-03-31 18:42                                         
                                                                                                       
 BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
                                                                                                       
 04:DA:D2:9C:50:52  -57  35       43     1066   87   2  54e. WEP  WEP         cracotte03               
                                                                                                       
 BSSID              STATION            PWR   Rate    Lost    Frames  Probe                             
                                                                                                                                   
 04:DA:D2:9C:50:52  00:0F:B5:92:23:6A  -64   36e-48e  1232     1067                                     

Enfin, nous lançons le crack de la clef à l'aide de aircrack-ng :

root@zebrasoma:/home/pifou# aircrack-ng crackWEP-02.cap
                           Aircrack-ng 1.2 beta3


                 [00:00:04] Tested 112801 keys (got 3050 IVs)

   KB    depth   byte(vote)
    0    6/ 10   CD(5120) 15(4864) 6D(4864) 8C(4864) A7(4864) 
    1   46/  1   E9(4352) 04(4096) 0E(4096) 0F(4096) 16(4096) 
    2   14/ 42   C8(4864) 10(4608) 11(4608) 1D(4608) 58(4608) 
    3   19/  3   CF(4864) 0A(4608) 5E(4608) 8E(4608) 90(4608) 
    4    2/ 16   08(5632) 89(5376) 96(5376) B4(5376) F7(5376) 

Failed. Next try with 5000 IVs.

Il est nécessaire d'être proche du point d’accès (sinon le débit est trop faible, ce qui rend l'opération longue), ainsi que de capturer un minimum de 10 000 paquets.

Au final, nous arrivons bien à récupérer la clef WEP :


                               Aircrack-ng 1.2 beta3


                 [00:04:10] Tested 799 keys (got 42913 IVs)

   KB    depth   byte(vote)
    0    0/  1   EE(56320) B4(51712) 9D(50944) 4E(50688) 28(50432) 
    1    1/  2   D9(55552) 3D(50176) 68(49664) 08(49408) 49(49152) 
    2    1/  5   A2(53504) 5B(52480) 93(52480) 73(52224) 10(50432) 
    3    1/  3   30(53248) 81(51456) 5B(49920) 6E(49920) 1E(49664) 
    4    9/  4   9D(50176) 31(49408) 18(49152) 72(49152) E1(49152) 

             KEY FOUND! [ EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:E4:44 ] 
	Decrypted correctly: 100%

Cassage de mot de passe WPA-PSK par force brute

Nous refaisons les mêmes actions que pour le crackage de clef WEP. Cette fois nous essayons de cracker la clef WPA sur cracotte03.

root@zebrasoma:/home/pifou# airodump-ng --encrypt wpa wlan5
root@zebrasoma:/home/pifou# airodump-ng --essid cracotte03 --channel 13 -w crackWPA wlan5

Une fois le handshake récupéré:

root@zebrasoma:/home/pifou# aircrack-ng -w dico.txt crackWPA-01.cap

Nous avons lancé ceci sur le eeePC qui a une vitesse de traitement 5 fois inférieure à celle d'une zabeth environ (environ 5h de traitement). Puis nous obtenons le résultat suivant:

                                   Aircrack-ng 1.2 beta3


                   [04:32:42] 12399908 keys tested (759.63 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  : 70 EE 27 96 5B 34 B5 4F 06 A1 F2 B6 A7 16 1E 21 
                       7A 0B BD F4 13 67 5B 4C ED 30 A9 0D 91 E3 F9 7F 
                       88 E6 12 68 9C 77 4B 48 EB 5E 6A 5A DD 1D D9 08 
                       36 40 94 7D B4 05 80 B2 60 FA 84 81 50 CE DC 87 

      EAPOL HMAC     : 83 03 24 AC 39 AB 67 E7 7B C4 40 E8 6B 6D 7D 47 

Réalisations

Sécurisation des données

Nous créons d'abord 3 nouvelles partitions, que nous associons à notre VM en modifiant le fichier GreenArrow.cfg :

lvcreate -L 1G -n /dev/virtual/GreenArrow-1 -v
lvcreate -L 1G -n /dev/virtual/GreenArrow-2 -v
lvcreate -L 1G -n /dev/virtual/GreenArrow-3 -v

'phy:/dev/virtual/GreenArrow-1,xvdd,w',
'phy:/dev/virtual/GreenArrow-2,xvde,w',
'phy:/dev/virtual/GreenArrow-3,xvdf,w',

Il faut ensuite installer mdadm :

apt-get install mdadm

Nous avions une erreur à propos du subsystem. Pour que cela fonctionne, il nous manquait la commande :

apt-get install linux-image-3.16.0-4-amd64

Après un reboot de la machine, nous créons le volume /dev/md0:

mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf

Pour avoir le détail de la configuration actuelle:

root@GreenArrow:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Nov 28 12:56:23 2016
     Raid Level : raid5
     Array Size : 2095104 (2046.34 MiB 2145.39 MB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Mon Nov 28 12:56:23 2016
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : GreenArrow:0  (local to host GreenArrow)
           UUID : f70ca72e:e8adc585:ec023dca:21061341
         Events : 0

    Number   Major   Minor   RaidDevice State
       0     202       48        0      active sync   /dev/xvdd
       1     202       64        1      active sync   /dev/xvde
       2     202       80        2      active sync   /dev/xvdf

Puis nous sauvons cette dernière afin de conserver md0:

root@GreenArrow:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Puis:

root@GreenArrow:~# mkfs /dev/md0
root@GreenArrow:~# mkdir /datamd0
root@GreenArrow:/datamd0# mount /dev/md0 /datamd0/

Ensuite il faut éditer le fichier /etc/fstab en rajoutant la ligne suivante à la fin du fichier afin d'être surs que la partition soit encore montée après le reboot:

/dev/md0 /datamd0

Nous créons un fichier texte sur le raid5:

root@GreenArrow:/datamd0# vim testraid5.txt

Nous mettons en commentaire la 2ème partition dans le fichier de conf, puis redémarrons la machine:

root@GreenArrow:/datamd0# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Nov 28 12:56:23 2016
     Raid Level : raid5
     Array Size : 2095104 (2046.34 MiB 2145.39 MB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 3
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon Nov 28 13:20:27 2016
          State : clean, degraded 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : GreenArrow:0  (local to host GreenArrow)
           UUID : f70ca72e:e8adc585:ec023dca:21061341
         Events : 4

    Number   Major   Minor   RaidDevice State
       0     202       48        0      active sync   /dev/xvdd
       2       0        0        2      removed
       2     202       80        2      active sync   /dev/xvdf

On voit bien qu'une partition a été supprimée mais que le fichier créé auparavant est toujours présent:

root@GreenArrow:~# ls /datamd0/
testraid5.txt

Pour le test de réparation, afin de bien voir l'avancement de la reconstruction, nous avons procédé comme dans l'exemple du cours: Suppression de la partition xvdf:

root@GreenArrow:~# mdadm --set-faulty /dev/md0 /dev/xvdf
root@GreenArrow:~# mdadm --remove /dev/md0 /dev/xvdf

La partition est bien supprimée:

Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdd[0] xvde[1]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]

On remet la partition:

root@GreenArrow:~# mdadm --add /dev/md0 /dev/xvdf

On peut ensuite constater l'avancement de la reconstruction en lançant la même commande assez régulièrement:

root@GreenArrow:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdf[3] xvdd[0] xvde[1]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [===>.................]  recovery = 18.2% (191112/1047552) finish=0.4min speed=31852K/sec
      
unused devices: <none>
root@GreenArrow:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdf[3] xvdd[0] xvde[1]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [====>................]  recovery = 20.0% (210764/1047552) finish=0.4min speed=30109K/sec
      
unused devices: <none>
root@GreenArrow:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdf[3] xvdd[0] xvde[1]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [====>................]  recovery = 21.8% (229836/1047552) finish=0.4min speed=32833K/sec
      
unused devices: <none>
root@GreenArrow:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdf[3] xvdd[0] xvde[1]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [===========>.........]  recovery = 59.6% (626140/1047552) finish=0.2min speed=29816K/sec
      
unused devices: <none>
root@GreenArrow:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdf[3] xvdd[0] xvde[1]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [==================>..]  recovery = 94.3% (989688/1047552) finish=0.0min speed=30124K/sec
      
unused devices: <none>
root@GreenArrow:~# [  446.720069] md: md0: recovery done.
cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdf[3] xvdd[0] xvde[1]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

Cryptage de données

Tout d'abord, nous vérifions grâce à Gparted que la carte SD fournie comporte une seule partition. Une fois ce test passé, nous regardons grâce à dmesg où est localisé la carte SD :

root@zebrasoma:/# dmesg
[...]
[1126726.403767] mmcblk1: mmc1:59b4 NCard 14.7 GiB

Notre carte SD se situe donc sur /dev/mmcblk1. Nous faisons donc un chiffrage AES avec un hashage SHA256 de la carte SD :

root@zebrasoma:/# cryptsetup luksFormat -c aes -h sha256 /dev/mmcblk1

Nous devons alors renseigner un mot de passe pour crypter la clef. Ensuite, nous ouvrons la partition Luks, puis nous formatons la carte :

root@zebrasoma:/# cryptsetup luksOpen /dev/sdb1 crypt_sd
root@zebrasoma:/# mkfs.ext4 /dev/mapper/crypt_sd

Nous montons la partition, puis créons un fichier sur la carte :

root@zebrasoma:/# mount /dev/mapper/crypt_sd /mnt
root@zebrasoma:/# vi /mnt/test.txt #on marque un texte dans le fichier

Enfin, nous démontons la carte SD et fermons la partition Luks :

root@zebrasoma:/# umount /mnt
root@zebrasoma:/# cryptsetup luksClose crypt_sd

Nous essayons ensuite d'accéder à la carte SD. En renseignant un mauvais mot de passe, une erreur apparaît. Cependant, une fois le bon mot de passe renseigné, tout re-devient possible.

Sécurisation Wifi par WPA2-EAP

Tout d'abord, nous installons FreeRadius sur notre machine virtuelle.
Dans le fichier users, nous renseignons le login et le mot de passe pour se connecter à la borne Wifi :

GreenArrow Cleartext-Password:="glopglop"

Dans le fichier clients.conf, nous ajoutons la configuration de la borne E306 et E304 :

client E306 {
	ipaddr		= 10.60.1.2
	secret		= password
}
client E304 {
	ipaddr		= 10.60.1.4
	secret		= password
}

Ensuite, on passe à la configuration de la borne Wifi. On se connecte en telnet via telnet 10.60.1.2, puis nous rentrons en mode configuration :

aaa authentication login eap_greenarrow group radius_greenarrow
radius-server host 193.48.57.162 auth-port 1812 acct-port 1813 key glopglop
aaa group server radius radius_greenarrow
server 193.48.57.162 auth-port 1812 acct-port 1813

dot11 ssid SSID_GREENARROW
vlan 3
authentication open eap eap_greenarrow
authentication network-eap eap_greenarrow
authentication key-management wpa
mbssid guest-mode

exit

interface Dot11Radio0
encryption vlan 3 mode ciphers aes-ccm tkip
ssid SSID_GREENARROW

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 

interface GigabitEthernet0.3
encapsulation dot1Q 3
bridge-group 3

Une fois ces modifications effectuées, nous configurons l'interface wlan0 de l'eeePC pour pouvoir se connecter au Wifi à l'aide de ifup wlan0 :

auto wlan0
iface wlan0 inet static
  address 10.60.3.2
  netmask 255.255.255.0
  gateway 10.60.3.1
  wpa-ssid SSID_GREENARROW
  wpa-key-mgmt WPA-EAP
  wpa-identity GreenArrow
  wpa-password glopglop

On lance le serveur FreeRadius via freeradius -X (mode debug). Sur smartphone, nous arrivons à détecter notre SSID (SSID_GREENARROW). Nous pouvons également ping notre eeePC depuis la machine virtuelle, tout comme nous arrivons à pinger des Vm d'autres groupes depuis notre eeePC.

root@GreenArrow:/etc/freeradius# ping 10.60.3.2
PING 10.60.3.2 (10.60.3.2) 56(84) bytes of data.
64 bytes from 10.60.3.2: icmp_seq=1 ttl=255 time=1.30 ms
64 bytes from 10.60.3.2: icmp_seq=2 ttl=255 time=1.96 ms

Serveur DCHP

Pour cette partie, nous avons d'abord installer le paquet isc-dhcp-server. Ensuite, nous avons modifier le fichier dhcpd.conf :

option domain-name "jjlddelamuerto.space";
option domain-name-servers 193.48.57.162;

subnet 10.60.3.0 netmask 255.255.255.0 {
      range 10.60.3.10 10.60.3.40;
      option routers 10.60.3.1;
}

Nous modifions ensuite isc-dhcp-server pour rajouter l'interface wlan0 :

INTERFACES="wlan0"

Nous pouvons maintenant nous connecter sur le reseau Wifi via smartphone, le serveur DHCP fonctionne correctement.

Connexion via smartphone

Configuration et utilisation du PCBX

Nous avons modifiés le fichier sip.conf :

[general]
hasvoicemail=yes
hassip=yes
hasiax=yes
callwaiting=yes
threewaycalling=yes
callwaitingcallerid=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1
nat=yes

[6001]
type=friend
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
fullname=JulienJoignaux
username=jjoignaux
secret=secret
context=work

[6002]
type=friend
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
fullname=LoicDelecroix
username=ldelecro
secret=secret
context=work


Puis nous modifions le fichier extensions.conf

[work]
exten=>_6XXX,1,Dial(SIP/${EXTEN},20)
exten => _6XXX,2,Hangup()
Appel entre 2 smartphones

Références

  • Crackage de la clef WEP : [3]
  • Cassage de mot de passe WPA-PSK : [4]
  • Cryptage de données : [5]
  • DHCP : [6]
  • Asterisk : [7]