Cahier 2016 groupe n°4 : Différence entre versions
(→Références) |
(→Plan des séances) |
||
(97 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 6 : | Ligne 6 : | ||
|- | |- | ||
! scope="row" | Séance 2 (10/10) | ! scope="row" | Séance 2 (10/10) | ||
− | | Installation de la machine virtuelle/ Configuration des commutateurs | + | | Installation de la machine virtuelle/ Configuration des commutateurs en LACP |
|- | |- | ||
! scope="row" | Séance 3 (13/10) | ! scope="row" | Séance 3 (13/10) | ||
− | | | + | | Configuration des switchports en mode trunk/ Mettre des commutateurs dans la salle technique |
|- | |- | ||
+ | ! scope="row" | Séance 4 (24/10) | ||
+ | | Câblages des commutateurs dans la salle locale technique/ Création des LVM | ||
+ | |- | ||
+ | ! scope="row" | Séance 5 (07/11) | ||
+ | | Tests d'intrusion/ Services Internet | ||
+ | |- | ||
+ | ! scope="row" | Séance 6 (14/11) | ||
+ | | Tests d'intrusion (Cassage de mot de passe WPA-PSK par force brute) | ||
+ | |- | ||
+ | ! scope="row" | Séance 7 (28/11) | ||
+ | | Sécurisation Wifi par WPA2-EAP | ||
+ | |- | ||
+ | ! scope="row" | Séance 8 (12/12) | ||
+ | | Configuration d'un PCBX | ||
|} | |} | ||
+ | |||
<h2>Partie I - Réalisation en monome : LACP</h2> | <h2>Partie I - Réalisation en monome : LACP</h2> | ||
Ligne 32 : | Ligne 47 : | ||
<br /> | <br /> | ||
− | |||
+ | <h2>Partie II - Réalisation de la machine virtuelle</h2> | ||
+ | Pour réaliser une machine virtuelle il faut taper la commande comme suit: | ||
+ | <pre> | ||
+ | xen-create-image --hostname=Mulan --ip=193.48.57.164 --netmask=255.255.255.240 --gateway=193.48.57.174 --dir=/usr/local/xen | ||
+ | --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie | ||
+ | </pre> | ||
+ | Une fois que ma machine virtuelle est crée j'ai eu des informations comme ci-dessous: | ||
+ | <pre> | ||
+ | Hostname : Mulan | ||
+ | Distribution : jessie | ||
+ | MAC Address : 00:16:3E:20:B9:4F | ||
+ | IP Address(es) : 193.48.57.164 | ||
+ | RSA Fingerprint : ae:b1:59:03:ad:d1:ac:3b:13:df:fe:94:0a:3b:81 | ||
+ | Root Password : EZ5VWgMP | ||
+ | </pre> | ||
+ | Ensuite avec la commande ls /etc/xen j'arrive à visualiser les machines crées sur xen | ||
+ | <pre> | ||
+ | Batman.cfg Gringe.cfg Orelsa.cfg xend-config.sxp | ||
+ | Deadpool.cfg Kdoc.cfg Pnl.cfg xl.conf | ||
+ | Flash.cfg Lartiste.cfg scripts xlexample.hvm | ||
+ | Gradur.cfg Mulan.cfg Vald.cfg xlexample.pvlinux | ||
+ | </pre> | ||
+ | Après j'ai lancé la commande | ||
+ | <pre> | ||
+ | xl create -c /etc/xen/Mulan.cfg | ||
+ | </pre> | ||
+ | Cette commande est pour visualiser le fichier de ma machine virtuelle Mulan, ici: | ||
+ | <pre> | ||
+ | xl -------- Gérer la machine virtuelle | ||
+ | create ----- Démarrer la machine virtuelle | ||
+ | -c -------- Avoir la console | ||
+ | </pre> | ||
+ | Il faut changer certains paramètres de ma machine virtuelle, donc avec vi j'ai accédé à mon fichier. Après les changements, j'ai eu un fichier comme montré: | ||
+ | <pre> | ||
+ | # | ||
+ | # Kernel | ||
+ | # | ||
+ | Kernel = '/boot/vmlinuz-3.14-2-amd64' | ||
+ | extra = 'elevator = noop' | ||
+ | ramdisk = '/boot/initrd.img-3.14-2-amd64' | ||
+ | vcpus = '1' | ||
+ | memory = '512' | ||
+ | # | ||
+ | # Disk device(s) | ||
+ | # | ||
+ | root = '/dev/xvda2 ro' | ||
+ | disk = [ | ||
+ | 'file:/usr/local/xen/domains/Mulan/disk,img,xvda2,w', | ||
+ | 'file:/usr/local/xen/domains/Mulan/swap,img,xvda1,w', | ||
+ | ] | ||
+ | # | ||
+ | # Hostname | ||
+ | # | ||
+ | name = '/Mulan' | ||
+ | # | ||
+ | # Networking | ||
+ | # | ||
+ | vif = [ 'mac = 00:16:3E:20:139:4F,bridge=IMA5sc' ] | ||
+ | # | ||
+ | # Behavior | ||
+ | # | ||
+ | on_poweroff = 'destroy' | ||
+ | on_reboot = 'restart' | ||
+ | on_crash = 'restart' | ||
+ | </pre> | ||
+ | Pour voir le mot de passe, il faut regarder dans le fichier '''/etc/xen/var/log/xen-tools/Mulan.cfg'''.Souvent le mot de passe est trop long donc pour le changer il faut taper '''passwd'''. | ||
+ | |||
+ | <h2>Partie III - Configuration des commutateurs en mode LACP </h2> | ||
+ | <h4>a) Travail à effectuer</h4> | ||
+ | Principal travail: Dans cette parties il faut que je configures deux commutateurs dans le mode LACP avant que je les branche. Ensuite il faut qu'ils | ||
+ | soient reliés par des câbles pour voir s'ils peuvent communiquer ou pas. | ||
+ | [[Fichier:commu.JPG|thumb|center|600xp|Deux commutateurs]] | ||
+ | <h4>b) La configuration</h4> | ||
+ | <pre> | ||
+ | Switch> enable | ||
+ | Switch# configure terminal | ||
+ | Switch(config) # interface port-channel 1 | ||
+ | Switch(config-if)# interface g1/0/1 | ||
+ | Switch(config-if)# no ip address | ||
+ | Switch(config-if)# channel-group 1 mode active | ||
+ | Switch(config-if)# exit | ||
+ | Switch(config)# interface g1/0/2 | ||
+ | Switch(config-if)# no ip address | ||
+ | Switch(config-if)# channel-group 1 mode active | ||
+ | Switch(config-if)# end | ||
+ | Switch# write | ||
+ | </pre> | ||
+ | Petits rappels: | ||
+ | <pre> | ||
+ | port-channel -------- interface virtuelle | ||
+ | show int summary ---- savoir les informations des ports et vlans du commutateur | ||
+ | 10 ports ont été configurés ---- de g1/0/1 à g1/0/10 | ||
+ | il ne faut surtout pas oublier le write ! ---- enregistrer toutes les configurations | ||
+ | </pre> | ||
+ | Les memes commandes pour configurer l'autre commutateur sauf que le numéro des ports sont de g0/1 à g0/10.Comme l'autre commutateur est déjà configuré donc avant que j'ai commencé le configurer j'ai supprimé toutes les informations dedans avec '''no vlan x''' Une fois que les configurations sont faites, j'ai lié ces deux commutateurs par des câbles internet. | ||
+ | [[Fichier:cable.JPG|thumb|center|600xp|Lier les commutateurs]] | ||
+ | <h4>c) Test</h4> | ||
+ | Pour voir si les ports sont bien connecté avec l'interface virtuelle ou pas il faut faire la commande | ||
+ | <pre> | ||
+ | sh int port-channel | ||
+ | </pre> | ||
+ | Et j'ai eu un ecran comme suit | ||
+ | <pre> | ||
+ | Port-channel1 is up, line protocol is up (connected) | ||
+ | Hardware is EtherChannel, address is 4c4e.355e.b901 (bia 4c4e.355e.b901) | ||
+ | MTU 1500 bytes, BW 8000000 Kbit, DLY 10 usec, | ||
+ | reliability 255/255, txload 1/255, rxload 1/255 | ||
+ | Encapsulation ARPA, loopback not set | ||
+ | Keepalive set (10 sec) | ||
+ | Full-duplex, 1000Mb/s, link type is auto, media type is unknown | ||
+ | input flow-control is off, output flow-control is unsupported | ||
+ | Members in this channel: Gi0/1 Gi0/2 Gi0/3 Gi0/4 Gi0/5 Gi0/6 Gi0/7 Gi0/8 | ||
+ | ARP type: ARPA, ARP Timeout 04:00:00 | ||
+ | Last input 00:00:00, output 00:13:18, output hang never | ||
+ | Last clearing of "show interface" counters never | ||
+ | Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 | ||
+ | Queueing strategy: fifo | ||
+ | Output queue: 0/40 (size/max) | ||
+ | 5 minute input rate 1000 bits/sec, 2 packets/sec | ||
+ | 5 minute output rate 0 bits/sec, 0 packets/sec | ||
+ | 1583 packets input, 166045 bytes, 0 no buffer | ||
+ | Received 1082 broadcasts (1082 multicasts) | ||
+ | 0 runts, 0 giants, 0 throttles | ||
+ | 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored | ||
+ | 0 watchdog, 1082 multicast, 0 pause input | ||
+ | 0 input packets with dribble condition detected | ||
+ | 1187 packets output, 148752 bytes, 0 underruns | ||
+ | 0 output errors, 0 collisions, 1 interface resets | ||
+ | 0 babbles, 0 late collision, 0 deferred | ||
+ | 0 lost carrier, 0 no carrier, 0 PAUSE output | ||
+ | 0 output buffer failures, 0 output buffers swapped out | ||
+ | </pre> | ||
+ | Par ces informations je peux bien savoir que mon interface virtuelle est en mode active et il y a que 8 ports qui sont pris en compte. | ||
+ | [[Fichier:light.JPG|thumb|center|600xp|Les lumières du commutateur]] | ||
+ | Même par les lumières du commutateur, 8 ports sont en vert et 2 ports sont en orange. | ||
+ | '''Pourquoi?'''Parce que LACP permet un maximum de 16 ports dont 8 actifs.(voir la référence) | ||
+ | Pour voir toutes les informations de port-channel 1 il y a une commande | ||
+ | <pre> | ||
+ | sh lacp 1 internal | ||
+ | </pre> | ||
+ | Avec cette commande je peux visualiser tous les ports qui marchent sur cette interface virtuelle. | ||
+ | <pre> | ||
+ | Channel group 1 | ||
+ | LACP port Admin Oper Port Port | ||
+ | Port Flags State Priority Key Key Number State | ||
+ | Gi1/0/1 SA bndl 32768 0x1 0x1 0x102 0x3D | ||
+ | Gi1/0/2 SA bndl 32768 0x1 0x1 0x103 0x3D | ||
+ | Gi1/0/3 SA bndl 32768 0x1 0x1 0x104 0x3D | ||
+ | Gi1/0/4 SA bndl 32768 0x1 0x1 0x105 0x3D | ||
+ | Gi1/0/5 SA bndl 32768 0x1 0x1 0x106 0x3D | ||
+ | Gi1/0/6 SA bndl 32768 0x1 0x1 0x107 0x3D | ||
+ | Gi1/0/7 SA bndl 32768 0x1 0x1 0x108 0x3D | ||
+ | Gi1/0/8 SA bndl 32768 0x1 0x1 0x109 0x3D | ||
+ | Gi1/0/9 SA hot-sby 32768 0x1 0x1 0x10A 0x5 | ||
+ | Gi1/0/10 SA hot-sby 32768 0x1 0x1 0x10B 0x5 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | <h2>Partie IV - Configurations des switchports en mode trunk </h2> | ||
+ | <h4>a) Travail à effectuer</h4> | ||
+ | Principal travail: Dans cette séance il faut configurer les switchports en mode trunk ensuite il faut installer les commutateurs dans l'armoire. | ||
+ | <h4>b) Configurations des switchports</h4> | ||
+ | Pour configurer les switchports il faut utiliser les commandes en bas | ||
+ | <pre> | ||
+ | Switch#configure terminal | ||
+ | Switch(config)#interface XXX | ||
+ | Switch(config-if)#switchport mode trunk | ||
+ | Switch(config-if)#switchport trunk encapsulation dot1q | ||
+ | Switch(config-if)#exit | ||
+ | </pre> | ||
+ | Dans mon cas, les interfaces que j'ai configurées sont | ||
+ | <pre> | ||
+ | Te1/0/1 Te1/0/2 TenGigabitEthernet1/1 TenGigabitEthernet1/2 | ||
+ | </pre> | ||
+ | Pour voir si les switchports ont été bien configuré ou pas il faut taper | ||
+ | <pre> | ||
+ | sh run | ||
+ | </pre> | ||
+ | Ensuite sur le console j'ai eu des informations comme suit | ||
+ | <pre> | ||
+ | interface TenGigabitEthernet1/0/1 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | ! | ||
+ | interface TenGigabitEthernet1/0/2 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | ! | ||
+ | </pre> | ||
+ | Les ports sont bien configurés. | ||
+ | <h4>c) Installations des commutateurs</h4> | ||
+ | Après la configurations des commutateurs il faut les installer dans la salle technique. | ||
+ | [[Fichier:com.JPG|thumb|center|600xp|L'installation des commutateur]] | ||
+ | |||
+ | |||
+ | <h2>Partie V - Câblages et créations des LVM </h2> | ||
+ | <h4>a) Travail à effectuer</h4> | ||
+ | Principal travail: Pour que tous les paquets puissent passer par mes commutateurs, il faut mettre des câbles entre les commutateurs de la salle E304 et la salle E306 et mes commutateurs configurés en mode LACP. Ensuite il faut créer des LVM. | ||
+ | <h4>b) Câblages des commutateurs</h4> | ||
+ | <gallery style="margin: 0 auto;"> | ||
+ | Fichier:ca2.JPG|Cablage | ||
+ | Fichier:ca0.JPG|Cablage | ||
+ | Fichier:ca1.JPG|Cablage | ||
+ | </gallery> | ||
+ | <h4>c) Créations des LVM</h4> | ||
+ | Pour créer le LVM il faut taper la commande | ||
+ | <pre> | ||
+ | lvcreate -L 10G -n /dev/virtual/ima5-Mulan-var -v | ||
+ | lvcreate -L 10G -n /dev/virtual/ima5-Mulan-home -v | ||
+ | </pre> | ||
+ | Ensuite il faut compléter le fichier Mulan.cfg | ||
+ | <pre> | ||
+ | 'phy:/dev/spool1/mail-spool,xvdb1,w', | ||
+ | 'phy:/dev/spool2/mail-backup,xvdc1,w' | ||
+ | </pre> | ||
+ | Pour visualiser la réussite de la création de LVM, il faut utiliser la commande '''fdisk -l''' et j'ai sur le console j'ai eu | ||
+ | <pre> | ||
+ | Disk /dev/xvda2: 4 GiB, 4294967296 bytes, 8388608 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/xvda1: 128 MiB, 134217728 bytes, 262144 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/xvdb1: 10 GiB, 10737418240 bytes, 20971520 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/xvdc1: 10 GiB, 10737418240 bytes, 20971520 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 | ||
+ | </pre> | ||
+ | Donc j'ai choisit xvdb1 pour home et xvdc1 pour var. | ||
+ | Ensuite j'ai modifié le fichier /etc/fstab en rajoutant | ||
+ | <pre> | ||
+ | /dev/xvdb1 /home ext4 defaults 0 2 | ||
+ | /dev/xvdc1 /var ext4 defaults 0 3 | ||
+ | </pre> | ||
+ | Après il faut lancer la commande | ||
+ | <pre> | ||
+ | mkfs -t ext4 /dev/xvdb1 | ||
+ | mkfs -t ext4 /dev/xvdc1 | ||
+ | </pre> | ||
+ | Ces deux commandes permettent de créer un ext4 fichier sur une partition d'un système. | ||
+ | Mais avant d'exécuter '''mount a''' pour var, il faut d'abord déplacer les fichiers existants dans un autre répertoire''' mnt'''. | ||
+ | <pre> | ||
+ | mount /dev/xdbc1 /mnt | ||
+ | cd /var | ||
+ | mv /mnt | ||
+ | unmont /mnt | ||
+ | </pre> | ||
+ | Petit Rappel | ||
+ | <pre> | ||
+ | The mount command mounts a storage device or filesystem, making it accessible and attaching it to an existing directory structure. | ||
+ | The umount command "unmounts" a mounted filesystem, informing the system to complete any pending read or write operations, and safely detaching it. | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | <h2>Partie VI - Tests d'intrusion </h2> | ||
+ | <h4>a) Travail à effectuer</h4> | ||
+ | Principal travail: Dans cette section il faut tester les méthodes de sécurisation du WIFI | ||
+ | <h4>b) Cassage de clef WEP d'un point d'accès Wifi</h4> | ||
+ | Le travail réalisé dans cette partie est sur un eeePC. Dans un premier temps, il faut installer le paquetage '''aircrack-ng''' sur eeePC avec la commande | ||
+ | <pre> | ||
+ | apt-get install aircrack-ng | ||
+ | </pre> | ||
+ | Ensuite pour passer la carte WIFI en mode '''monitor''', il faut taper la commande | ||
+ | <pre> | ||
+ | airmon-ng start wlan3 # | ||
+ | # check_cert_cn = %{User-Name} | ||
+ | # | ||
+ | |||
+ | </pre> | ||
+ | En même temps une interface mon0 est crée, cette interface est la même que le wlan3 sauf qu'elle est en mode '''monitor'''. Son rôle est d’écouter toutes les trames qui passent les interfaces. | ||
+ | Pour trouver les informations plus précisés de cette interface de monitor, avec l'aide de la commande | ||
+ | <pre> | ||
+ | airodump-ng mon0 | ||
+ | </pre> | ||
+ | J'obtiens | ||
+ | <pre> | ||
+ | BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID | ||
+ | 00:12:D9:B7:E7:D0 -77 3 0 0 12 54e. WPA2 CCMP MGT <length: 1> | ||
+ | C8:00:84:84:00:54 -79 15 0 0 9 54e. WPA2 CCMP MGT PolytechLille | ||
+ | </pre> | ||
+ | Pour surveiller les réseaux WIFI, il faut lancer | ||
+ | <pre> | ||
+ | airodump-ng -w manchot -c 13 --bssid 04:DA:D2:9C:50:54 mon0 | ||
+ | </pre> | ||
+ | Petit Rappel | ||
+ | <pre> | ||
+ | -w permet de créer un fichier de capture dans lequel seront enregistrés tous les paquets. | ||
+ | -c permet de cibler l'écoute sur un canal wifi particulier. | ||
+ | --bssid permet de ne cibler qu'un seul point d'accès en fonction de son adresse mac. | ||
+ | </pre> | ||
+ | Quatre fichiers manchots sont crées | ||
+ | <pre> | ||
+ | manchot-01.cap manchot-01.csv manchot-01.kismet.csv manchot-01.kismet.netxml | ||
+ | </pre> | ||
+ | Finalement il faut lancer l'algorithme de craquage de la clef WEP | ||
+ | <pre> | ||
+ | aircrack-ng manchot-01.cap | ||
+ | </pre> | ||
+ | Sur mon shell, j'obtiens | ||
+ | <pre> | ||
+ | Aircrack-ng 1.2 beta3 | ||
+ | |||
+ | |||
+ | [00:00:00] Tested 782 keys (got 276993 IVs) | ||
+ | |||
+ | KB depth byte(vote) | ||
+ | 0 0/ 15 EE(374528) 78(301568) 0B(298752) 11(296960) 87(294656) | ||
+ | 1 0/ 2 46(383488) A8(300544) 6D(297216) FF(295680) 25(295168) | ||
+ | 2 9/ 2 C3(291840) 28(290304) 85(290048) F7(290048) 19(289792) | ||
+ | 3 6/ 3 D4(294400) 30(294144) 94(294144) BD(294144) 14(293632) | ||
+ | 4 0/ 1 1F(383488) 3F(296960) A8(296960) 83(296192) 1A(295936) | ||
+ | |||
+ | KEY FOUND! [ EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:E4:44:44 ] | ||
+ | Decrypted correctly: 100% | ||
+ | </pre> | ||
+ | <h4>c) Cassage de mot de passe WPA-PSK par force brute</h4> | ||
+ | Pour cette partie, il faut reprendre les étapes pour la cassage de clef WEP d'un point d'accès Wifi. Mais il faut créer un dictionnaire pour toutes les possibilités de la clef WPA qui est un nombre sur 8 chiffres. Le code pour la dictionnaire est | ||
+ | <pre> | ||
+ | #include <stdio.h> | ||
+ | #include <stdlib.h> | ||
+ | #include <time.h> | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | int i; | ||
+ | for (i=0; i<1000000; i++) | ||
+ | { | ||
+ | printf("%08d\n",i); | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </pre> | ||
+ | Ensuite il faut lancer la commande | ||
+ | <pre> | ||
+ | aircrack-ng -w dictionnaire record-01.cap | ||
+ | </pre> | ||
+ | Donc j'ai eu | ||
+ | <pre> | ||
+ | # BSSID ESSID Encryption | ||
+ | 1 04:DA:D2:9C:50:52 cracotte03 WPA (1 handshake) | ||
+ | Choosing first network as target. | ||
+ | |||
+ | Opening record-01.cap | ||
+ | Reading packets, please wait... | ||
+ | Aircrack-ng 1.2 beta3 | ||
+ | |||
+ | [00:57:58] 12399908 keys tested (3650.27 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 : 86 B4 17 90 2B BE 9E CA 9A 5E 59 D7 F4 D9 94 A7 | ||
+ | AE 0D 63 1C 83 3B 48 C4 FF 01 C4 85 4B 32 7F C0 | ||
+ | 9A CE DC 63 D6 3A 72 16 1E BE E4 CE 5D 1C B1 3D | ||
+ | 1F 91 A1 F5 F4 1A 50 17 B9 55 0F 9F D4 3B 94 BD | ||
+ | |||
+ | EAPOL HMAC : B3 F0 FA 27 2F E6 2E A4 73 F9 55 14 C7 4A 72 E0 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | <h2>Partie VII - Services Internet </h2> | ||
+ | <h4>a) Travail à effectuer</h4> | ||
+ | Principal travail: Dans cette partie il faut réaliser un site Web sécurisé | ||
+ | <h4>b) Serveur DNS</h4> | ||
+ | Sur le registrar Gandi, j'ai réservé un nom DNS '''mulan.website''' sur Gandi. Ensuite il faut installer '''bind9''' sur le serveur virtuel xen pour donner les adresses correspondant à mon nom de réseau IP, au nom de mon interface de routeur, au nom de ma machine et au nom de l'adresse de diffusion de mon réseau IP. Cependant pour régler le problème de changer l'adresse du passerelle il faut faire '''/etc/network/interfaces''' et '''/etc/resolv.conf''' | ||
+ | Dans mon répertoire''' /etc/bind''' j'ai rajouté un fichier de description de zone'''db.mulan.website''' | ||
+ | <pre> | ||
+ | ; TTL (Time To Live) | ||
+ | $TTL 604800 | ||
+ | |||
+ | ; Informations générales | ||
+ | @ IN SOA ns.mulnan.website. root.mulan.website. ( | ||
+ | 12 ; Serial | ||
+ | 604800 ; Refresh | ||
+ | 86400 ; Retry | ||
+ | 2419200 ; Expire | ||
+ | 604800 ) ; Negative Cache TTL | ||
+ | ; | ||
+ | |||
+ | IN NS ns6.gandi.net. | ||
+ | IN NS ns.mulan.website. | ||
+ | IN MX 100 ns.mulan.website. | ||
+ | |||
+ | ns IN A 193.48.57.164 | ||
+ | www IN A 193.48.57.164 | ||
+ | </pre> | ||
+ | Petit Rappel | ||
+ | <pre> | ||
+ | Les dernières 4 lignes sont les détails du domaine,de ses sous-domaines,etc.C'est là qu'on fait notamment l'association entre l'IP et le nom de domaine. | ||
+ | </pre> | ||
+ | Dans le fichier '''named.conf.local''' il faut rajouter | ||
+ | <pre> | ||
+ | zone "mulan.website"{ | ||
+ | type master; | ||
+ | allow-transfer {193.48.57.170;} ; | ||
+ | file "/etc/bind/db.mulan.website"; | ||
+ | }; | ||
+ | </pre> | ||
+ | '''Attention''' | ||
+ | <pre> | ||
+ | L'adresse dans allow-transfer doit être l'adresse du serveur esclave. | ||
+ | </pre> | ||
+ | Ensuite pour tester si cela marche ou pas il faut taper les commandes | ||
+ | <pre> | ||
+ | --service bind9 restart | ||
+ | --cat /var/log/daemon.log | ||
+ | --host ns.mulan.website 127.0.0.1 | ||
+ | </pre> | ||
+ | J'obtiens | ||
+ | <pre> | ||
+ | Using domain server: | ||
+ | Name: 127.0.0.1 | ||
+ | Address: 127.0.0.1#53 | ||
+ | Aliases: | ||
+ | |||
+ | ns.mulan.website has address 193.48.57.164 | ||
+ | </pre> | ||
+ | Je peux conclure que nom DNS correspond bien à mon adresse IP '''193.48.57.164''' | ||
+ | <h4>c) Sécurisation de site web par certificat </h4> | ||
+ | Le travail a été réalisé sur '''Mulan''', il faut générer un '''CSR''' afin d'activer la '''SSL Certification'''. Pour réussir cela, il faut taper la commande | ||
+ | <pre> | ||
+ | openssl req -nodes -newkey rsa:2048 -sha256 -keyout mulan1.key -out mulan1.csr | ||
+ | </pre> | ||
+ | Après la création des clefs et le CSR, j'ai obtenu mon certificat SSL sur Gandi. Ensuite j'ai configuré apache2 pour gérer du HTTPS sur le port 443. Pour réussir cela, j'ai crée un fichier mulan.conf. | ||
+ | <pre> | ||
+ | <VirtualHost *:443> | ||
+ | ServerName mulan.website | ||
+ | ServerAlias www.mulan.website | ||
+ | DocumentRoot /var/www/mulan | ||
+ | SSLEngine on | ||
+ | SSLCertificateFile "/etc/apache2/mulan.crt" | ||
+ | SSLCertificateKeyFile "/etc/apache2/mulan.key" | ||
+ | SSLCertificateChainFile "/etc/apache2/gandi.crt" | ||
+ | </VirtualHost> | ||
+ | |||
+ | <VirtualHost *:80> | ||
+ | ServerName mulan.website | ||
+ | ServerAlias www.mulan.website | ||
+ | DocumentRoot /var/www/mulan | ||
+ | </VirtualHost> | ||
+ | </pre> | ||
+ | Ensuite j'ai créé une page index.html dans /var/www/mulan | ||
+ | <pre> | ||
+ | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> | ||
+ | <HTML> | ||
+ | <HEAD> | ||
+ | <TITLE>Mulan</TITLE> | ||
+ | </HEAD> | ||
+ | |||
+ | <BODY> | ||
+ | |||
+ | L'une des plus belles filles du monde! | ||
+ | <p style="text-align:center;"><img src="mulan.jpg"/></p> | ||
+ | |||
+ | </BODY> | ||
+ | </HTML> | ||
+ | </pre> | ||
+ | Donc le https://www.mulan.website donne | ||
+ | [[Fichier:mulan.png|thumb|center|600xp|Page principale]] | ||
+ | <h4>d) Sécurisation de serveur DNS par DNSSEC</h4> | ||
+ | L'objectif de cette partie est de sécuriser mon serveur DNS en signant la zone correspondant à mon nom de domaine. | ||
+ | Pour réussir cela, il faut certaines étapes. | ||
+ | 1.Dans /etc/bind/named.conf.options,j'ai ajouté | ||
+ | <pre> | ||
+ | dnssec-enable yes; | ||
+ | </pre> | ||
+ | 2.Ensuite j'ai crée un répertoire mulan.website.dnssec pour gérer tous les clefs dans /etc/bind | ||
+ | <pre> | ||
+ | mkdir mulan.website.dnssec | ||
+ | </pre> | ||
+ | 3.J'ai crée la clef asymétrique de signature de clefs de zone | ||
+ | <pre> | ||
+ | dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE mulan.website | ||
+ | </pre> | ||
+ | 4.Pour créer la clef asymétrique de la zone pour signer les enregistrement, il faut | ||
+ | <pre> | ||
+ | dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE mulan.website | ||
+ | </pre> | ||
+ | 5.J'ai renommé les clefs dans mon répertoire mulan.website.dnssec | ||
+ | <pre> | ||
+ | root@Mulan:/etc/bind/mulan.website.dnssec# ls -l | ||
+ | total 20 | ||
+ | -rw-r--r-- 1 root bind 171 Dec 7 18:56 dsset-mulan.website. | ||
+ | -rw-r--r-- 1 root bind 609 Dec 7 18:54 mulan.website-ksk.key | ||
+ | -rw------- 1 root bind 1774 Dec 7 18:54 mulan.website-ksk.private | ||
+ | -rw-r--r-- 1 root bind 435 Dec 7 18:55 mulan.website-zsk.key | ||
+ | -rw------- 1 root bind 1010 Dec 7 18:55 mulan.website-zsk.private | ||
+ | </pre> | ||
+ | 6.Dans mon fichier /etc/bind/db.mulan.website, il faut inclure les clefs publiques et incrémenter le numéro de version de la zone | ||
+ | <pre> | ||
+ | $include /etc/bind/mulan.website.dnssec/mulan.website-ksk.key | ||
+ | $include /etc/bind/mulan.website.dnssec/mulan.website-zsk.key | ||
+ | </pre> | ||
+ | 7.Après il faut signer les enregistrements de la zone | ||
+ | <pre> | ||
+ | dnssec-signzone -o mulan.website -k mulan.website-ksk ../db.mulan.website mulan.website-zsk | ||
+ | </pre> | ||
+ | 8.Ensuite il faut modifier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed | ||
+ | <pre> | ||
+ | zone "mulan.website"{ | ||
+ | type master; | ||
+ | allow-transfer {193.48.57.170;217.70.177.40;} ; | ||
+ | file "/etc/bind/db.mulan.website.signed"; | ||
+ | }; | ||
+ | </pre> | ||
+ | 9.La dernière étape est de rajouter la clé ksk dans gandi.net | ||
+ | <gallery style="margin: 0 auto;"> | ||
+ | Fichier:gandi1.png|sécurisation par gandi | ||
+ | Fichier:gandi2.png|sécurisation par gandi | ||
+ | </gallery> | ||
+ | Pour être sur que mon DNS est bien sécurisé, j'ai visualisé sur DNSVIZ | ||
+ | [[Fichier:dnsviz.png|thumb|center|600xp|Visualisation de la sécurisation de DNS]] | ||
+ | |||
+ | |||
+ | <h2>Partie VIII - Réalisations </h2> | ||
+ | <h4>a) Travail à effectuer</h4> | ||
+ | Principal travail: Dans cette section il faut sécuriser un réseau Wifi, faire transiter des flux vidéos via UPnP et installer un auto-commutateur téléphonique logiciel. | ||
+ | <h4>b) Sécurisation de données</h4> | ||
+ | J'ai commencé par créer trois partitions LVM de 1Go | ||
+ | <pre> | ||
+ | lvcreate -L 1G -n /dev/virtual/Mulan-raid1 -v | ||
+ | lvcreate -L 1G -n /dev/virtual/Mulan-raid2 -v | ||
+ | lvcreate -L 1G -n /dev/virtual/Mulan-raid3 -v | ||
+ | </pre> | ||
+ | Ensuite j'ai rajouté trois lignes dans mon fichier /etc/xen/Mulan.cfg | ||
+ | <pre> | ||
+ | 'phy:/dev/virtual/Mulan-raid1,xvdd1,w', | ||
+ | 'phy:/dev/virtual/Mulan-raid2,xvde1,w', | ||
+ | 'phy:/dev/virtual/Mulan-raid3,xvdf1,w', | ||
+ | </pre> | ||
+ | Pour utiliser la commande mdadm, il faut d'abord installer le paquetage | ||
+ | <pre> | ||
+ | apt-get install mdadm | ||
+ | </pre> | ||
+ | Il faut faut entrer cette commande pour charger le module MD-subsystem | ||
+ | <pre> | ||
+ | apt-get install linux-image-3.16.0-4-amd64 | ||
+ | </pre> | ||
+ | Après je peux créer volume /dev/md0 grâce à la commande suivante | ||
+ | <pre> | ||
+ | mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd1 /dev/xvde1 /dev/xvdf1 | ||
+ | </pre> | ||
+ | Pour visualiser la statue de kernel md | ||
+ | <pre> | ||
+ | cat /proc/mdstat | ||
+ | </pre> | ||
+ | J'ai eu | ||
+ | <pre> | ||
+ | md0 : active raid5 xvdf1[2] xvde1[1] xvdd1[0] | ||
+ | 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] | ||
+ | |||
+ | unused devices: <none> | ||
+ | </pre> | ||
+ | Ensuite il faut mounter | ||
+ | <pre> | ||
+ | mount /dev/md0 /mnt | ||
+ | </pre> | ||
+ | Sur le console, j'ai eu | ||
+ | <pre> | ||
+ | mount: wrong fs type, bad option, bad superblock on /dev/md0, | ||
+ | missing codepage or helper program, or other error | ||
+ | |||
+ | In some cases useful info is found in syslog - try | ||
+ | dmesg | tail or so. | ||
+ | </pre> | ||
+ | Ensuite j'ai crée un fichier système | ||
+ | <pre> | ||
+ | root@Mulan:~# mkfs -t ext4 /dev/md0 | ||
+ | mke2fs 1.42.12 (29-Aug-2014) | ||
+ | Creating filesystem with 523776 4k blocks and 131072 inodes | ||
+ | Filesystem UUID: 6148741b-9ebd-4ccc-8581-af7bbe3fea3c | ||
+ | Superblock backups stored on blocks: | ||
+ | 32768, 98304, 163840, 229376, 294912 | ||
+ | |||
+ | Allocating group tables: done | ||
+ | Writing inode tables: done | ||
+ | Creating journal (8192 blocks): done | ||
+ | Writing superblocks and filesystem accounting information: done | ||
+ | </pre> | ||
+ | Après il faut le mounter | ||
+ | <pre> | ||
+ | root@Mulan:~# mount /dev/md0 /mnt | ||
+ | [17819.221864] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null) | ||
+ | </pre> | ||
+ | Pour afficher la valeur d'espace disque disponible des systèmes de fichier dont l'utilisateur possède l'accès en lecture, il faut une commande .df | ||
+ | <pre> | ||
+ | root@Mulan:/mnt# df . | ||
+ | Filesystem 1K-blocks Used Available Use% Mounted on | ||
+ | /dev/md0 2029392 3072 1905184 1% /mnt | ||
+ | </pre> | ||
+ | Pour montrer l'espace disque libre listé en format lisible pour l'homme, c'est-à-dire avec le Système_international_d'unités | ||
+ | <pre> | ||
+ | root@Mulan:/mnt# df -h | ||
+ | Filesystem Size Used Avail Use% Mounted on | ||
+ | /dev/xvda2 3.9G 718M 3.0G 20% / | ||
+ | udev 10M 0 10M 0% /dev | ||
+ | tmpfs 50M 88K 50M 1% /run | ||
+ | tmpfs 5.0M 0 5.0M 0% /run/lock | ||
+ | tmpfs 125M 0 125M 0% /run/shm | ||
+ | /dev/xvdb1 9.8G 23M 9.2G 1% /home | ||
+ | /dev/xvdc1 9.8G 246M 9.0G 3% /var | ||
+ | /dev/md0 2.0G 3.0M 1.9G 1% /mnt | ||
+ | </pre> | ||
+ | Ensuite j'ai copié le fichier /boot/vmlinuz-3.16.0-4-amd64 . | ||
+ | <pre> | ||
+ | root@Mulan:/mnt# cp /boot/vmlinuz-3.16.0-4-amd64 . | ||
+ | </pre> | ||
+ | Après j'ai mit ma partition xvde1 en mode Faulty | ||
+ | <pre> | ||
+ | root@Mulan:~# mdadm --set-faulty /dev/md0 /dev/xvde1 | ||
+ | [17884.887698] md/raid:md0: Disk failure on xvde1, disabling device. | ||
+ | [17884.887698] md/raid:md0: Operation continuing on 2 devices. | ||
+ | mdadm: set /dev/xvde1 faulty in /dev/md0 | ||
+ | </pre> | ||
+ | Pour vérifier dans mon fichier | ||
+ | <pre> | ||
+ | root@Mulan:~# cat /proc/mdstat | ||
+ | Personalities : [raid6] [raid5] [raid4] | ||
+ | md0 : active raid5 xvdf1[2] xvde1[1](F) xvdd1[0] | ||
+ | 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] | ||
+ | |||
+ | unused devices: <none> | ||
+ | </pre> | ||
+ | J'ai bien vu que ma partition xvde1 a changé sa mode en Faulty. | ||
+ | Pour voir comment le raid marche, j'ai fait un remove et add | ||
+ | <pre> | ||
+ | root@Mulan:~# mdadm --remove /dev/md0 /dev/xvde1 | ||
+ | [17940.265360] md: unbind<xvde1> | ||
+ | [17940.265378] md: export_rdev(xvde1) | ||
+ | mdadm: hot removed /dev/xvde1 from /dev/md0 | ||
+ | </pre> | ||
+ | <pre> | ||
+ | root@Mulan:~# mdadm --add /dev/md0 /dev/xvde1 | ||
+ | [17946.741301] md: export_rdev(xvde1) | ||
+ | [17946.774588] md: bind<xvde1> | ||
+ | mdadm: added /dev/xvde1 | ||
+ | </pre> | ||
+ | <pre> | ||
+ | root@Mulan:~# [17946.799645] md: recovery of RAID array md0 | ||
+ | [17946.799650] md: minimum _guaranteed_ speed: 1000 KB/sec/disk. | ||
+ | [17946.799653] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery. | ||
+ | [17946.799658] md: using 128k window, over a total of 1047552k. | ||
+ | </pre> | ||
+ | Donc dans mon fichier du système, j'ai vu la statue a été changée | ||
+ | <pre> | ||
+ | root@Mulan:~# cat /proc/mdstat | ||
+ | Personalities : [raid6] [raid5] [raid4] | ||
+ | md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0] | ||
+ | 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] | ||
+ | [=>...................] recovery = 9.6% (101696/1047552) finish=0.4min speed=33898K/sec | ||
+ | |||
+ | unused devices: <none> | ||
+ | root@Mulan:~# cat /proc/mdstat | ||
+ | Personalities : [raid6] [raid5] [raid4] | ||
+ | md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0] | ||
+ | 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] | ||
+ | [=====>...............] recovery = 29.2% (306320/1047552) finish=0.4min speed=30632K/sec | ||
+ | |||
+ | unused devices: <none> | ||
+ | root@Mulan:~# cat /proc/mdstat | ||
+ | Personalities : [raid6] [raid5] [raid4] | ||
+ | md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0] | ||
+ | 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] | ||
+ | [===========>.........] recovery = 55.2% (578592/1047552) finish=0.2min speed=30452K/sec | ||
+ | |||
+ | unused devices: <none> | ||
+ | root@Mulan:~# [17982.504053] md: md0: recovery done. | ||
+ | </pre> | ||
+ | La partition xvde1 a été bien réparé. | ||
+ | <h4>c) Cryptage de données</h4> | ||
+ | Pour cette partie il faut créer une unique partition sur la carte SD de l'eeePC.Pour sécuriser la partition en utilisant l'unitaire crytsetup, j'ai commencé par | ||
+ | <pre> | ||
+ | root@perche:/home/pifou# cryptsetup create card /dev/mmcblk1p1 | ||
+ | </pre> | ||
+ | Ensuite j'ai fait | ||
+ | <pre> | ||
+ | Saisissez la phrase secrète : | ||
+ | root@perche:/home/pifou# # la phrase est chencong | ||
+ | root@perche:/home/pifou# mkfs /dev/mapper/card | ||
+ | mke2fs 1.42.12 (29-Aug-2014) | ||
+ | Creating filesystem with 3777536 4k blocks and 944704 inodes | ||
+ | Filesystem UUID: 344190aa-fc4f-42a1-9241-ac9910bb11aa | ||
+ | Superblock backups stored on blocks: | ||
+ | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 | ||
+ | |||
+ | Allocating group tables: done | ||
+ | Writing inode tables: done | ||
+ | Writing superblocks and filesystem accounting information: done | ||
+ | </pre> | ||
+ | Pour monter le périphérique, j'ai fait | ||
+ | <pre> | ||
+ | root@perche:/home/pifou# mount /dev/mapper/card /mnt | ||
+ | </pre> | ||
+ | Pour démonter le périphérique,il fallait taper | ||
+ | <pre> | ||
+ | root@perche:/home/pifou# umount /mnt | ||
+ | root@perche:/home/pifou# cryptsetup remove card | ||
+ | </pre> | ||
+ | Pour mieux comprendre comment ca marche le cryptage de données, j'ai crée une autre partition qui s'appelle mulan dans /dev/mmcblk1p1 et puis j'ai refait toutes les étapes | ||
+ | <pre> | ||
+ | root@perche:/home/pifou# cryptsetup create mulan /dev/mmcblk1p1 | ||
+ | Saisissez la phrase secrète : | ||
+ | root@perche:/home/pifou# mount /dev/mapper/mulan /mnt | ||
+ | </pre> | ||
+ | Dans la partition card, j'ai créer un fichier dans /mnt/coffre-fort | ||
+ | <pre> | ||
+ | root@perche:/home/pifou# echo "gros secret" > /mnt/coffre-fort | ||
+ | </pre> | ||
+ | Cela me permet de vérifier si je peux le retrouver après. Donc j'ai essayé de le retrouver après monter la partition mulan. | ||
+ | <pre> | ||
+ | root@perche:/home/pifou# ls -l /mnt | ||
+ | total 20 | ||
+ | -rw-r--r-- 1 root root 12 déc. 7 19:58 coffre-fort | ||
+ | drwx------ 2 root root 16384 déc. 7 19:53 lost+found | ||
+ | root@perche:/home/pifou# cat /mnt/coffre-fort | ||
+ | gros secret | ||
+ | </pre> | ||
+ | <h4>d) Sécurisation Wifi par WPA2-EAP</h4> | ||
+ | Le but de cette partie est de contrôler l’accès à la borne Wifi par WPA2-EAP. Pour réussir cela, j'ai commencé par configuré /etc/freeraduis/eap.conf | ||
+ | <pre> | ||
+ | default_eap_type = mschapv2 | ||
+ | </pre> | ||
+ | Ensuite j'ai configuré /etc/freeraduis/users | ||
+ | <pre> | ||
+ | Mulan Cleartext-Password := "Chencong" | ||
+ | </pre> | ||
+ | J'ai aussi configuré /etc/freeraduis/client.conf | ||
+ | <pre> | ||
+ | client 10.60.1.2/24 { | ||
+ | secret = Mulan | ||
+ | shortname = rex | ||
+ | } | ||
+ | </pre> | ||
+ | Une fois que la configuration de freeraduis était faite, j'ai configuré le point d'accès Wifi. Pour le connecter par ma machine virtuelle il fallait faire | ||
+ | <pre> | ||
+ | root@Mulan:/# telnet 10.60.1.6 | ||
+ | Trying 10.60.1.6... | ||
+ | Connected to 10.60.1.6. | ||
+ | Escape character is '^]'. | ||
+ | |||
+ | |||
+ | User Access Verification | ||
+ | |||
+ | Username: Cisco | ||
+ | Password: | ||
+ | </pre> | ||
+ | Après j'ai ajouté les lignes comme montré sur le point d'acces Wifi | ||
+ | <pre> | ||
+ | aaa group server radius radius_mulan | ||
+ | server 193.48.57.164 auth-port 1812 acct-port 1813 | ||
+ | ! | ||
+ | |||
+ | aaa authentication login eap_mulan group radius_mulan | ||
+ | |||
+ | dot11 ssid Mulan | ||
+ | vlan 5 | ||
+ | authentication open eap eap_mulan | ||
+ | authentication network-eap eap_mulan | ||
+ | authentication key-management wpa | ||
+ | mbssid guest-mode | ||
+ | ! | ||
+ | |||
+ | encryption vlan 5 mode ciphers aes-ccm tkip | ||
+ | ! | ||
+ | |||
+ | ssid Mulan | ||
+ | ! | ||
+ | |||
+ | interface Dot11Radio0.5 | ||
+ | encapsulation dot1Q 5 | ||
+ | no ip route-cache | ||
+ | bridge-group 5 | ||
+ | bridge-group 5 subscriber-loop-control | ||
+ | bridge-group 5 spanning-disabled | ||
+ | bridge-group 5 block-unknown-source | ||
+ | no bridge-group 5 source-learning | ||
+ | no bridge-group 5 unicast-flooding | ||
+ | ! | ||
+ | |||
+ | interface GigabitEthernet0.5 | ||
+ | encapsulation dot1Q 5 | ||
+ | bridge-group 5 | ||
+ | bridge-group 5 spanning-disabled | ||
+ | no bridge-group 5 source-learning | ||
+ | ! | ||
+ | </pre> | ||
+ | Ensuite sur eeePC il fallait aussi changer /etc/network/interfaces | ||
+ | <pre> | ||
+ | iface wlan3 inet static | ||
+ | address 10.60.5.10 | ||
+ | netmask 255.255.255.0 | ||
+ | gateway 10.60.5.1 | ||
+ | wpa-ssid Mulan | ||
+ | wpa-key-mgmt WPA-EAP | ||
+ | wpa-eap PEAP | ||
+ | wpa-identity Mulan | ||
+ | wpa-password Chencong | ||
+ | </pre> | ||
+ | <h4>e) Configuration d'un PCBX</h4> | ||
+ | Pour réussir cette partie, il faut installer un serveur DHCP sur eeePC | ||
+ | <pre> | ||
+ | apt-get install isc-dchp-server | ||
+ | </pre> | ||
+ | Il faut aussi installer un paquetage asterisk sur cet eeePC | ||
+ | <pre> | ||
+ | apt-get install asterisk | ||
+ | </pre> | ||
+ | Pour que tous les téléphones IP puissent s'y enregistrer avec comme numéro de poste des numéros à partir de 100, il faut modifier le ficher /etc/asterisk/sip.conf | ||
+ | <pre> | ||
+ | [chencong] | ||
+ | type=friend | ||
+ | context=default | ||
+ | callerid=Chen Cong <71000> | ||
+ | host=dynamic | ||
+ | directmedia=yes | ||
+ | dtmfmode=info | ||
+ | disallow=all | ||
+ | allow=ulaw | ||
+ | allow=alaw | ||
+ | allow=g723.1 | ||
+ | allow=g729 | ||
+ | secret=mulan | ||
+ | |||
+ | [clara] | ||
+ | type=friend | ||
+ | context=default | ||
+ | callerid=Chen Cong <72000> | ||
+ | host=dynamic | ||
+ | directmedia=yes | ||
+ | dtmfmode=info | ||
+ | disallow=all | ||
+ | allow=ulaw | ||
+ | allow=alaw | ||
+ | allow=g723.1 | ||
+ | allow=g729 | ||
+ | secret=mulan | ||
+ | </pre> | ||
+ | En meme temps, il faut aussi modifier le fichier /etc/asterisk/extensions.conf. Ce fichier permet d'ajouter des utilisateurs. | ||
+ | <pre> | ||
+ | include => demo | ||
+ | |||
+ | exten => 71000,1,Dial(SIP/chencong) | ||
+ | exten => 72000,1,Dial(SIP/clara) | ||
+ | </pre> | ||
+ | Dans le fichier /etc/bind9/db.mulan.website, il faut changer le serial et ajouter un autre nom de domaine. | ||
+ | <pre> | ||
+ | 42 ; Serial | ||
+ | |||
+ | sip IN A 193.48.57.164 | ||
+ | |||
+ | _sip._udp IN SRV 10 1 5060 sip | ||
+ | </pre> | ||
+ | Chanque fois après la modification de ce fichier, il faut résigner la zone avec les commandes | ||
+ | <pre> | ||
+ | dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE mulan.website | ||
+ | dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE mulan.website | ||
+ | </pre> | ||
+ | Pour voir les détailles, sur le console j'ai tapé | ||
+ | <pre> | ||
+ | service asterisk start | ||
+ | asterisk -vvvvv -r | ||
+ | sip show peers | ||
+ | </pre> | ||
+ | Sur le console, j'ai peux voir | ||
+ | <pre> | ||
+ | Mulan*CLI> sip show peers | ||
+ | Name/username Host Dyn Forcerport Comedia ACL Port Status Description | ||
+ | chencong/chencong 10.60.5.10 D Auto (No) No 5060 Unmonitored | ||
+ | clara/clara 10.60.5.103 D Auto (No) No 50032 Unmonitored | ||
+ | 2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 0 offline] | ||
+ | </pre> | ||
+ | Ensuite pour faire le test il faut télécharger deux application sipdroid(sur le portable HTC) et ekiga(sur eeePC). J'ai essayé d'appeler ekiga avec le portable HTC. Sur le console,j'ai eu | ||
+ | <pre> | ||
+ | [Dec 16 16:00:10] NOTICE[5591]: chan_sip.c:27870 handle_request_subscribe: Received SIP subscribe for peer without mailbox: clara | ||
+ | == Using SIP RTP CoS mark 5 | ||
+ | [Dec 16 16:01:12] NOTICE[5591][C-000001ba]: chan_sip.c:25652 handle_request_invite: Call from '' (85.25.207.90:5108) to extension '972594105693' | ||
+ | rejected because extension not found in context 'public'. | ||
+ | == Using SIP RTP CoS mark 5 | ||
+ | [Dec 16 16:02:09] NOTICE[5591][C-000001bb]: chan_sip.c:25652 handle_request_invite: Call from '' (209.126.97.238:5070) to extension '0046184952042' | ||
+ | rejected because extension not found in context 'public'. | ||
+ | == Using SIP RTP CoS mark 5 | ||
+ | -- Executing [71000@default:1] Dial("SIP/clara-00000008", "SIP/chencong") in new stack | ||
+ | == Using SIP RTP CoS mark 5 | ||
+ | -- Called SIP/chencong | ||
+ | -- SIP/chencong-00000009 is ringing | ||
+ | > 0x7f3754015760 -- Probation passed - setting RTP source address to 10.60.5.10:5066 | ||
+ | -- SIP/chencong-00000009 answered SIP/clara-00000008 | ||
+ | -- Remotely bridging SIP/clara-00000008 and SIP/chencong-00000009 | ||
+ | > 0x7f3754015760 -- Probation passed - setting RTP source address to 10.60.5.10:5066 | ||
+ | > 0x7f373c0a8970 -- Probation passed - setting RTP source address to 10.60.5.103:4002 | ||
+ | [Dec 16 16:02:41] WARNING[5591]: chan_sip.c:4035 retrans_pkt: Retransmission timeout reached on transmission b2988c5312894a9e6a8a38767c07cdca for | ||
+ | seqno 1 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions | ||
+ | Packet timed out after 32000ms with no response | ||
+ | == Spawn extension (default, 71000, 1) exited non-zero on 'SIP/clara-00000008' | ||
+ | == Using SIP RTP CoS mark 5 | ||
+ | -- Executing [71000@default:1] Dial("SIP/clara-0000000a", "SIP/chencong") in new stack | ||
+ | == Using SIP RTP CoS mark 5 | ||
+ | -- Called SIP/chencong | ||
+ | -- SIP/chencong-0000000b is ringing | ||
+ | == Spawn extension (default, 71000, 1) exited non-zero on 'SIP/clara-0000000a' | ||
+ | [Dec 16 16:05:11] NOTICE[5591]: chan_sip.c:27870 handle_request_subscribe: Received SIP subscribe for peer without mailbox: clara | ||
+ | </pre> | ||
+ | J'ai essayé d'appeler le eeePC par mon portable | ||
+ | <gallery style="margin: 0 auto;"> | ||
+ | Fichier:appel1.jpg | ||
+ | Fichier:call.jpg | ||
+ | </gallery> | ||
+ | |||
+ | =Problème Rencontré= | ||
+ | Dans ce TP, un moment donné, j'arrivais pas à faire le ping à un routeur par ma machine virtuel. Le problème était que le routeur de l'école n'était pas sur le vlan 130. Donc les paquets ne pouvaient pas passer. Voici un schéma pour expliquer comment ca marche. | ||
+ | [[Fichier:schema_routage.jpg|thumb|center|1200xp|Routage]] | ||
+ | Donc je peux bien voir qu'il y a une bonne communication entre mon portable et mon eeePC. | ||
+ | |||
+ | =Références= | ||
Configurations Guide: http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/3se/layer2/configuration_guide/b_lay2_3se_3650_cg/b_lay2_3se_3650_cg_chapter_0101.html#task_1275918 | Configurations Guide: http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/3se/layer2/configuration_guide/b_lay2_3se_3650_cg/b_lay2_3se_3650_cg_chapter_0101.html#task_1275918 | ||
+ | |||
+ | Configurations Guide LACP: http://www.cisco.com/c/en/us/td/docs/ios/12_2sb/feature/guide/gigeth.html#wp1087351 | ||
+ | |||
+ | LACP: https://fr.wikipedia.org/wiki/IEEE_802.3ad |
Version actuelle datée du 2 mars 2017 à 10:11
Sommaire
- 1 Plan des séances
- 2 Partie I - Réalisation en monome : LACP
- 3 Partie II - Réalisation de la machine virtuelle
- 4 Partie III - Configuration des commutateurs en mode LACP
- 5 Partie IV - Configurations des switchports en mode trunk
- 6 Partie V - Câblages et créations des LVM
- 7 Partie VI - Tests d'intrusion
- 8 Partie VII - Services Internet
- 9 Partie VIII - Réalisations
- 10 Problème Rencontré
- 11 Références
Plan des séances
Séance 1 (03/10) | Connaissances du TP/ Recherche des informations de LACP/ Familiarisation avec des équipements |
---|---|
Séance 2 (10/10) | Installation de la machine virtuelle/ Configuration des commutateurs en LACP |
Séance 3 (13/10) | Configuration des switchports en mode trunk/ Mettre des commutateurs dans la salle technique |
Séance 4 (24/10) | Câblages des commutateurs dans la salle locale technique/ Création des LVM |
Séance 5 (07/11) | Tests d'intrusion/ Services Internet |
Séance 6 (14/11) | Tests d'intrusion (Cassage de mot de passe WPA-PSK par force brute) |
Séance 7 (28/11) | Sécurisation Wifi par WPA2-EAP |
Séance 8 (12/12) | Configuration d'un PCBX |
Partie I - Réalisation en monome : LACP
a) Travail à effectuer
Travail principal: Dans un premier temps mon travail principal c'est de faire la connexion entre la salle E306,E304 et mon propre commutateur. Ensuite il faut connecter mon commutateur avec le commutateur de l'école.
b) Les matériels nécessaires
c) Le fonctionnement
Dans les images, on peut voir qu'il y deux genres de câbles.Les câbles en rouges sont pour la salle E306 et la salle E304, les câbles en bleus sont pour l'école. Pour communiquer avec mon commutateur il faut brancher les câbles en rouges sur mon commutateur. Ensuite, pour connecter mon commutateur au commutateur de l'école il faut un autre câble. Le LC et le SC sont des adaptateurs.
d) La recherche du LACP
LACP (Link Aggregation Control Protocol) est un protocole de niveau 2 du modèle OSI qui permet de grouper plusieurs ports physiques en une seule voie logique. La norme décrit l'utilisation de multiples câbles réseau Ethernet ou un port parallèle pour augmenter la rapidité du lien au-delà des limites d'un câble ou d'un seul port, et d'accroître la redondance pour une plus grande disponibilité.
Partie II - Réalisation de la machine virtuelle
Pour réaliser une machine virtuelle il faut taper la commande comme suit:
xen-create-image --hostname=Mulan --ip=193.48.57.164 --netmask=255.255.255.240 --gateway=193.48.57.174 --dir=/usr/local/xen --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie
Une fois que ma machine virtuelle est crée j'ai eu des informations comme ci-dessous:
Hostname : Mulan Distribution : jessie MAC Address : 00:16:3E:20:B9:4F IP Address(es) : 193.48.57.164 RSA Fingerprint : ae:b1:59:03:ad:d1:ac:3b:13:df:fe:94:0a:3b:81 Root Password : EZ5VWgMP
Ensuite avec la commande ls /etc/xen j'arrive à visualiser les machines crées sur xen
Batman.cfg Gringe.cfg Orelsa.cfg xend-config.sxp Deadpool.cfg Kdoc.cfg Pnl.cfg xl.conf Flash.cfg Lartiste.cfg scripts xlexample.hvm Gradur.cfg Mulan.cfg Vald.cfg xlexample.pvlinux
Après j'ai lancé la commande
xl create -c /etc/xen/Mulan.cfg
Cette commande est pour visualiser le fichier de ma machine virtuelle Mulan, ici:
xl -------- Gérer la machine virtuelle create ----- Démarrer la machine virtuelle -c -------- Avoir la console
Il faut changer certains paramètres de ma machine virtuelle, donc avec vi j'ai accédé à mon fichier. Après les changements, j'ai eu un fichier comme montré:
# # Kernel # Kernel = '/boot/vmlinuz-3.14-2-amd64' extra = 'elevator = noop' ramdisk = '/boot/initrd.img-3.14-2-amd64' vcpus = '1' memory = '512' # # Disk device(s) # root = '/dev/xvda2 ro' disk = [ 'file:/usr/local/xen/domains/Mulan/disk,img,xvda2,w', 'file:/usr/local/xen/domains/Mulan/swap,img,xvda1,w', ] # # Hostname # name = '/Mulan' # # Networking # vif = [ 'mac = 00:16:3E:20:139:4F,bridge=IMA5sc' ] # # Behavior # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart'
Pour voir le mot de passe, il faut regarder dans le fichier /etc/xen/var/log/xen-tools/Mulan.cfg.Souvent le mot de passe est trop long donc pour le changer il faut taper passwd.
Partie III - Configuration des commutateurs en mode LACP
a) Travail à effectuer
Principal travail: Dans cette parties il faut que je configures deux commutateurs dans le mode LACP avant que je les branche. Ensuite il faut qu'ils soient reliés par des câbles pour voir s'ils peuvent communiquer ou pas.
b) La configuration
Switch> enable Switch# configure terminal Switch(config) # interface port-channel 1 Switch(config-if)# interface g1/0/1 Switch(config-if)# no ip address Switch(config-if)# channel-group 1 mode active Switch(config-if)# exit Switch(config)# interface g1/0/2 Switch(config-if)# no ip address Switch(config-if)# channel-group 1 mode active Switch(config-if)# end Switch# write
Petits rappels:
port-channel -------- interface virtuelle show int summary ---- savoir les informations des ports et vlans du commutateur 10 ports ont été configurés ---- de g1/0/1 à g1/0/10 il ne faut surtout pas oublier le write ! ---- enregistrer toutes les configurations
Les memes commandes pour configurer l'autre commutateur sauf que le numéro des ports sont de g0/1 à g0/10.Comme l'autre commutateur est déjà configuré donc avant que j'ai commencé le configurer j'ai supprimé toutes les informations dedans avec no vlan x Une fois que les configurations sont faites, j'ai lié ces deux commutateurs par des câbles internet.
c) Test
Pour voir si les ports sont bien connecté avec l'interface virtuelle ou pas il faut faire la commande
sh int port-channel
Et j'ai eu un ecran comme suit
Port-channel1 is up, line protocol is up (connected) Hardware is EtherChannel, address is 4c4e.355e.b901 (bia 4c4e.355e.b901) MTU 1500 bytes, BW 8000000 Kbit, DLY 10 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, 1000Mb/s, link type is auto, media type is unknown input flow-control is off, output flow-control is unsupported Members in this channel: Gi0/1 Gi0/2 Gi0/3 Gi0/4 Gi0/5 Gi0/6 Gi0/7 Gi0/8 ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:13:18, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 1583 packets input, 166045 bytes, 0 no buffer Received 1082 broadcasts (1082 multicasts) 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog, 1082 multicast, 0 pause input 0 input packets with dribble condition detected 1187 packets output, 148752 bytes, 0 underruns 0 output errors, 0 collisions, 1 interface resets 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier, 0 PAUSE output 0 output buffer failures, 0 output buffers swapped out
Par ces informations je peux bien savoir que mon interface virtuelle est en mode active et il y a que 8 ports qui sont pris en compte.
Même par les lumières du commutateur, 8 ports sont en vert et 2 ports sont en orange. Pourquoi?Parce que LACP permet un maximum de 16 ports dont 8 actifs.(voir la référence) Pour voir toutes les informations de port-channel 1 il y a une commande
sh lacp 1 internal
Avec cette commande je peux visualiser tous les ports qui marchent sur cette interface virtuelle.
Channel group 1 LACP port Admin Oper Port Port Port Flags State Priority Key Key Number State Gi1/0/1 SA bndl 32768 0x1 0x1 0x102 0x3D Gi1/0/2 SA bndl 32768 0x1 0x1 0x103 0x3D Gi1/0/3 SA bndl 32768 0x1 0x1 0x104 0x3D Gi1/0/4 SA bndl 32768 0x1 0x1 0x105 0x3D Gi1/0/5 SA bndl 32768 0x1 0x1 0x106 0x3D Gi1/0/6 SA bndl 32768 0x1 0x1 0x107 0x3D Gi1/0/7 SA bndl 32768 0x1 0x1 0x108 0x3D Gi1/0/8 SA bndl 32768 0x1 0x1 0x109 0x3D Gi1/0/9 SA hot-sby 32768 0x1 0x1 0x10A 0x5 Gi1/0/10 SA hot-sby 32768 0x1 0x1 0x10B 0x5
Partie IV - Configurations des switchports en mode trunk
a) Travail à effectuer
Principal travail: Dans cette séance il faut configurer les switchports en mode trunk ensuite il faut installer les commutateurs dans l'armoire.
b) Configurations des switchports
Pour configurer les switchports il faut utiliser les commandes en bas
Switch#configure terminal Switch(config)#interface XXX Switch(config-if)#switchport mode trunk Switch(config-if)#switchport trunk encapsulation dot1q Switch(config-if)#exit
Dans mon cas, les interfaces que j'ai configurées sont
Te1/0/1 Te1/0/2 TenGigabitEthernet1/1 TenGigabitEthernet1/2
Pour voir si les switchports ont été bien configuré ou pas il faut taper
sh run
Ensuite sur le console j'ai eu des informations comme suit
interface TenGigabitEthernet1/0/1 switchport trunk encapsulation dot1q switchport mode trunk ! interface TenGigabitEthernet1/0/2 switchport trunk encapsulation dot1q switchport mode trunk !
Les ports sont bien configurés.
c) Installations des commutateurs
Après la configurations des commutateurs il faut les installer dans la salle technique.
Partie V - Câblages et créations des LVM
a) Travail à effectuer
Principal travail: Pour que tous les paquets puissent passer par mes commutateurs, il faut mettre des câbles entre les commutateurs de la salle E304 et la salle E306 et mes commutateurs configurés en mode LACP. Ensuite il faut créer des LVM.
b) Câblages des commutateurs
c) Créations des LVM
Pour créer le LVM il faut taper la commande
lvcreate -L 10G -n /dev/virtual/ima5-Mulan-var -v lvcreate -L 10G -n /dev/virtual/ima5-Mulan-home -v
Ensuite il faut compléter le fichier Mulan.cfg
'phy:/dev/spool1/mail-spool,xvdb1,w', 'phy:/dev/spool2/mail-backup,xvdc1,w'
Pour visualiser la réussite de la création de LVM, il faut utiliser la commande fdisk -l et j'ai sur le console j'ai eu
Disk /dev/xvda2: 4 GiB, 4294967296 bytes, 8388608 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/xvda1: 128 MiB, 134217728 bytes, 262144 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/xvdb1: 10 GiB, 10737418240 bytes, 20971520 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/xvdc1: 10 GiB, 10737418240 bytes, 20971520 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
Donc j'ai choisit xvdb1 pour home et xvdc1 pour var. Ensuite j'ai modifié le fichier /etc/fstab en rajoutant
/dev/xvdb1 /home ext4 defaults 0 2 /dev/xvdc1 /var ext4 defaults 0 3
Après il faut lancer la commande
mkfs -t ext4 /dev/xvdb1 mkfs -t ext4 /dev/xvdc1
Ces deux commandes permettent de créer un ext4 fichier sur une partition d'un système. Mais avant d'exécuter mount a pour var, il faut d'abord déplacer les fichiers existants dans un autre répertoire mnt.
mount /dev/xdbc1 /mnt cd /var mv /mnt unmont /mnt
Petit Rappel
The mount command mounts a storage device or filesystem, making it accessible and attaching it to an existing directory structure. The umount command "unmounts" a mounted filesystem, informing the system to complete any pending read or write operations, and safely detaching it.
Partie VI - Tests d'intrusion
a) Travail à effectuer
Principal travail: Dans cette section il faut tester les méthodes de sécurisation du WIFI
b) Cassage de clef WEP d'un point d'accès Wifi
Le travail réalisé dans cette partie est sur un eeePC. Dans un premier temps, il faut installer le paquetage aircrack-ng sur eeePC avec la commande
apt-get install aircrack-ng
Ensuite pour passer la carte WIFI en mode monitor, il faut taper la commande
airmon-ng start wlan3 # # check_cert_cn = %{User-Name} #
En même temps une interface mon0 est crée, cette interface est la même que le wlan3 sauf qu'elle est en mode monitor. Son rôle est d’écouter toutes les trames qui passent les interfaces. Pour trouver les informations plus précisés de cette interface de monitor, avec l'aide de la commande
airodump-ng mon0
J'obtiens
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:12:D9:B7:E7:D0 -77 3 0 0 12 54e. WPA2 CCMP MGT <length: 1> C8:00:84:84:00:54 -79 15 0 0 9 54e. WPA2 CCMP MGT PolytechLille
Pour surveiller les réseaux WIFI, il faut lancer
airodump-ng -w manchot -c 13 --bssid 04:DA:D2:9C:50:54 mon0
Petit Rappel
-w permet de créer un fichier de capture dans lequel seront enregistrés tous les paquets. -c permet de cibler l'écoute sur un canal wifi particulier. --bssid permet de ne cibler qu'un seul point d'accès en fonction de son adresse mac.
Quatre fichiers manchots sont crées
manchot-01.cap manchot-01.csv manchot-01.kismet.csv manchot-01.kismet.netxml
Finalement il faut lancer l'algorithme de craquage de la clef WEP
aircrack-ng manchot-01.cap
Sur mon shell, j'obtiens
Aircrack-ng 1.2 beta3 [00:00:00] Tested 782 keys (got 276993 IVs) KB depth byte(vote) 0 0/ 15 EE(374528) 78(301568) 0B(298752) 11(296960) 87(294656) 1 0/ 2 46(383488) A8(300544) 6D(297216) FF(295680) 25(295168) 2 9/ 2 C3(291840) 28(290304) 85(290048) F7(290048) 19(289792) 3 6/ 3 D4(294400) 30(294144) 94(294144) BD(294144) 14(293632) 4 0/ 1 1F(383488) 3F(296960) A8(296960) 83(296192) 1A(295936) KEY FOUND! [ EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:E4:44:44 ] Decrypted correctly: 100%
c) Cassage de mot de passe WPA-PSK par force brute
Pour cette partie, il faut reprendre les étapes pour la cassage de clef WEP d'un point d'accès Wifi. Mais il faut créer un dictionnaire pour toutes les possibilités de la clef WPA qui est un nombre sur 8 chiffres. Le code pour la dictionnaire est
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i; for (i=0; i<1000000; i++) { printf("%08d\n",i); } return 0; }
Ensuite il faut lancer la commande
aircrack-ng -w dictionnaire record-01.cap
Donc j'ai eu
# BSSID ESSID Encryption 1 04:DA:D2:9C:50:52 cracotte03 WPA (1 handshake) Choosing first network as target. Opening record-01.cap Reading packets, please wait... Aircrack-ng 1.2 beta3 [00:57:58] 12399908 keys tested (3650.27 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 : 86 B4 17 90 2B BE 9E CA 9A 5E 59 D7 F4 D9 94 A7 AE 0D 63 1C 83 3B 48 C4 FF 01 C4 85 4B 32 7F C0 9A CE DC 63 D6 3A 72 16 1E BE E4 CE 5D 1C B1 3D 1F 91 A1 F5 F4 1A 50 17 B9 55 0F 9F D4 3B 94 BD EAPOL HMAC : B3 F0 FA 27 2F E6 2E A4 73 F9 55 14 C7 4A 72 E0
Partie VII - Services Internet
a) Travail à effectuer
Principal travail: Dans cette partie il faut réaliser un site Web sécurisé
b) Serveur DNS
Sur le registrar Gandi, j'ai réservé un nom DNS mulan.website sur Gandi. Ensuite il faut installer bind9 sur le serveur virtuel xen pour donner les adresses correspondant à mon nom de réseau IP, au nom de mon interface de routeur, au nom de ma machine et au nom de l'adresse de diffusion de mon réseau IP. Cependant pour régler le problème de changer l'adresse du passerelle il faut faire /etc/network/interfaces et /etc/resolv.conf Dans mon répertoire /etc/bind j'ai rajouté un fichier de description de zonedb.mulan.website
; TTL (Time To Live) $TTL 604800 ; Informations générales @ IN SOA ns.mulnan.website. root.mulan.website. ( 12 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS ns6.gandi.net. IN NS ns.mulan.website. IN MX 100 ns.mulan.website. ns IN A 193.48.57.164 www IN A 193.48.57.164
Petit Rappel
Les dernières 4 lignes sont les détails du domaine,de ses sous-domaines,etc.C'est là qu'on fait notamment l'association entre l'IP et le nom de domaine.
Dans le fichier named.conf.local il faut rajouter
zone "mulan.website"{ type master; allow-transfer {193.48.57.170;} ; file "/etc/bind/db.mulan.website"; };
Attention
L'adresse dans allow-transfer doit être l'adresse du serveur esclave.
Ensuite pour tester si cela marche ou pas il faut taper les commandes
--service bind9 restart --cat /var/log/daemon.log --host ns.mulan.website 127.0.0.1
J'obtiens
Using domain server: Name: 127.0.0.1 Address: 127.0.0.1#53 Aliases: ns.mulan.website has address 193.48.57.164
Je peux conclure que nom DNS correspond bien à mon adresse IP 193.48.57.164
c) Sécurisation de site web par certificat
Le travail a été réalisé sur Mulan, il faut générer un CSR afin d'activer la SSL Certification. Pour réussir cela, il faut taper la commande
openssl req -nodes -newkey rsa:2048 -sha256 -keyout mulan1.key -out mulan1.csr
Après la création des clefs et le CSR, j'ai obtenu mon certificat SSL sur Gandi. Ensuite j'ai configuré apache2 pour gérer du HTTPS sur le port 443. Pour réussir cela, j'ai crée un fichier mulan.conf.
<VirtualHost *:443> ServerName mulan.website ServerAlias www.mulan.website DocumentRoot /var/www/mulan SSLEngine on SSLCertificateFile "/etc/apache2/mulan.crt" SSLCertificateKeyFile "/etc/apache2/mulan.key" SSLCertificateChainFile "/etc/apache2/gandi.crt" </VirtualHost> <VirtualHost *:80> ServerName mulan.website ServerAlias www.mulan.website DocumentRoot /var/www/mulan </VirtualHost>
Ensuite j'ai créé une page index.html dans /var/www/mulan
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <TITLE>Mulan</TITLE> </HEAD> <BODY> L'une des plus belles filles du monde! <p style="text-align:center;"><img src="mulan.jpg"/></p> </BODY> </HTML>
Donc le https://www.mulan.website donne
d) Sécurisation de serveur DNS par DNSSEC
L'objectif de cette partie est de sécuriser mon serveur DNS en signant la zone correspondant à mon nom de domaine. Pour réussir cela, il faut certaines étapes. 1.Dans /etc/bind/named.conf.options,j'ai ajouté
dnssec-enable yes;
2.Ensuite j'ai crée un répertoire mulan.website.dnssec pour gérer tous les clefs dans /etc/bind
mkdir mulan.website.dnssec
3.J'ai crée la clef asymétrique de signature de clefs de zone
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE mulan.website
4.Pour créer la clef asymétrique de la zone pour signer les enregistrement, il faut
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE mulan.website
5.J'ai renommé les clefs dans mon répertoire mulan.website.dnssec
root@Mulan:/etc/bind/mulan.website.dnssec# ls -l total 20 -rw-r--r-- 1 root bind 171 Dec 7 18:56 dsset-mulan.website. -rw-r--r-- 1 root bind 609 Dec 7 18:54 mulan.website-ksk.key -rw------- 1 root bind 1774 Dec 7 18:54 mulan.website-ksk.private -rw-r--r-- 1 root bind 435 Dec 7 18:55 mulan.website-zsk.key -rw------- 1 root bind 1010 Dec 7 18:55 mulan.website-zsk.private
6.Dans mon fichier /etc/bind/db.mulan.website, il faut inclure les clefs publiques et incrémenter le numéro de version de la zone
$include /etc/bind/mulan.website.dnssec/mulan.website-ksk.key $include /etc/bind/mulan.website.dnssec/mulan.website-zsk.key
7.Après il faut signer les enregistrements de la zone
dnssec-signzone -o mulan.website -k mulan.website-ksk ../db.mulan.website mulan.website-zsk
8.Ensuite il faut modifier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed
zone "mulan.website"{ type master; allow-transfer {193.48.57.170;217.70.177.40;} ; file "/etc/bind/db.mulan.website.signed"; };
9.La dernière étape est de rajouter la clé ksk dans gandi.net
Pour être sur que mon DNS est bien sécurisé, j'ai visualisé sur DNSVIZ
Partie VIII - Réalisations
a) Travail à effectuer
Principal travail: Dans cette section il faut sécuriser un réseau Wifi, faire transiter des flux vidéos via UPnP et installer un auto-commutateur téléphonique logiciel.
b) Sécurisation de données
J'ai commencé par créer trois partitions LVM de 1Go
lvcreate -L 1G -n /dev/virtual/Mulan-raid1 -v lvcreate -L 1G -n /dev/virtual/Mulan-raid2 -v lvcreate -L 1G -n /dev/virtual/Mulan-raid3 -v
Ensuite j'ai rajouté trois lignes dans mon fichier /etc/xen/Mulan.cfg
'phy:/dev/virtual/Mulan-raid1,xvdd1,w', 'phy:/dev/virtual/Mulan-raid2,xvde1,w', 'phy:/dev/virtual/Mulan-raid3,xvdf1,w',
Pour utiliser la commande mdadm, il faut d'abord installer le paquetage
apt-get install mdadm
Il faut faut entrer cette commande pour charger le module MD-subsystem
apt-get install linux-image-3.16.0-4-amd64
Après je peux créer volume /dev/md0 grâce à la commande suivante
mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd1 /dev/xvde1 /dev/xvdf1
Pour visualiser la statue de kernel md
cat /proc/mdstat
J'ai eu
md0 : active raid5 xvdf1[2] xvde1[1] xvdd1[0] 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>
Ensuite il faut mounter
mount /dev/md0 /mnt
Sur le console, j'ai eu
mount: wrong fs type, bad option, bad superblock on /dev/md0, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.
Ensuite j'ai crée un fichier système
root@Mulan:~# mkfs -t ext4 /dev/md0 mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 523776 4k blocks and 131072 inodes Filesystem UUID: 6148741b-9ebd-4ccc-8581-af7bbe3fea3c Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
Après il faut le mounter
root@Mulan:~# mount /dev/md0 /mnt [17819.221864] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
Pour afficher la valeur d'espace disque disponible des systèmes de fichier dont l'utilisateur possède l'accès en lecture, il faut une commande .df
root@Mulan:/mnt# df . Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 2029392 3072 1905184 1% /mnt
Pour montrer l'espace disque libre listé en format lisible pour l'homme, c'est-à-dire avec le Système_international_d'unités
root@Mulan:/mnt# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 3.9G 718M 3.0G 20% / udev 10M 0 10M 0% /dev tmpfs 50M 88K 50M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 125M 0 125M 0% /run/shm /dev/xvdb1 9.8G 23M 9.2G 1% /home /dev/xvdc1 9.8G 246M 9.0G 3% /var /dev/md0 2.0G 3.0M 1.9G 1% /mnt
Ensuite j'ai copié le fichier /boot/vmlinuz-3.16.0-4-amd64 .
root@Mulan:/mnt# cp /boot/vmlinuz-3.16.0-4-amd64 .
Après j'ai mit ma partition xvde1 en mode Faulty
root@Mulan:~# mdadm --set-faulty /dev/md0 /dev/xvde1 [17884.887698] md/raid:md0: Disk failure on xvde1, disabling device. [17884.887698] md/raid:md0: Operation continuing on 2 devices. mdadm: set /dev/xvde1 faulty in /dev/md0
Pour vérifier dans mon fichier
root@Mulan:~# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 xvdf1[2] xvde1[1](F) xvdd1[0] 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] unused devices: <none>
J'ai bien vu que ma partition xvde1 a changé sa mode en Faulty. Pour voir comment le raid marche, j'ai fait un remove et add
root@Mulan:~# mdadm --remove /dev/md0 /dev/xvde1 [17940.265360] md: unbind<xvde1> [17940.265378] md: export_rdev(xvde1) mdadm: hot removed /dev/xvde1 from /dev/md0
root@Mulan:~# mdadm --add /dev/md0 /dev/xvde1 [17946.741301] md: export_rdev(xvde1) [17946.774588] md: bind<xvde1> mdadm: added /dev/xvde1
root@Mulan:~# [17946.799645] md: recovery of RAID array md0 [17946.799650] md: minimum _guaranteed_ speed: 1000 KB/sec/disk. [17946.799653] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery. [17946.799658] md: using 128k window, over a total of 1047552k.
Donc dans mon fichier du système, j'ai vu la statue a été changée
root@Mulan:~# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0] 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] [=>...................] recovery = 9.6% (101696/1047552) finish=0.4min speed=33898K/sec unused devices: <none> root@Mulan:~# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0] 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] [=====>...............] recovery = 29.2% (306320/1047552) finish=0.4min speed=30632K/sec unused devices: <none> root@Mulan:~# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0] 2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] [===========>.........] recovery = 55.2% (578592/1047552) finish=0.2min speed=30452K/sec unused devices: <none> root@Mulan:~# [17982.504053] md: md0: recovery done.
La partition xvde1 a été bien réparé.
c) Cryptage de données
Pour cette partie il faut créer une unique partition sur la carte SD de l'eeePC.Pour sécuriser la partition en utilisant l'unitaire crytsetup, j'ai commencé par
root@perche:/home/pifou# cryptsetup create card /dev/mmcblk1p1
Ensuite j'ai fait
Saisissez la phrase secrète : root@perche:/home/pifou# # la phrase est chencong root@perche:/home/pifou# mkfs /dev/mapper/card mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 3777536 4k blocks and 944704 inodes Filesystem UUID: 344190aa-fc4f-42a1-9241-ac9910bb11aa Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
Pour monter le périphérique, j'ai fait
root@perche:/home/pifou# mount /dev/mapper/card /mnt
Pour démonter le périphérique,il fallait taper
root@perche:/home/pifou# umount /mnt root@perche:/home/pifou# cryptsetup remove card
Pour mieux comprendre comment ca marche le cryptage de données, j'ai crée une autre partition qui s'appelle mulan dans /dev/mmcblk1p1 et puis j'ai refait toutes les étapes
root@perche:/home/pifou# cryptsetup create mulan /dev/mmcblk1p1 Saisissez la phrase secrète : root@perche:/home/pifou# mount /dev/mapper/mulan /mnt
Dans la partition card, j'ai créer un fichier dans /mnt/coffre-fort
root@perche:/home/pifou# echo "gros secret" > /mnt/coffre-fort
Cela me permet de vérifier si je peux le retrouver après. Donc j'ai essayé de le retrouver après monter la partition mulan.
root@perche:/home/pifou# ls -l /mnt total 20 -rw-r--r-- 1 root root 12 déc. 7 19:58 coffre-fort drwx------ 2 root root 16384 déc. 7 19:53 lost+found root@perche:/home/pifou# cat /mnt/coffre-fort gros secret
d) Sécurisation Wifi par WPA2-EAP
Le but de cette partie est de contrôler l’accès à la borne Wifi par WPA2-EAP. Pour réussir cela, j'ai commencé par configuré /etc/freeraduis/eap.conf
default_eap_type = mschapv2
Ensuite j'ai configuré /etc/freeraduis/users
Mulan Cleartext-Password := "Chencong"
J'ai aussi configuré /etc/freeraduis/client.conf
client 10.60.1.2/24 { secret = Mulan shortname = rex }
Une fois que la configuration de freeraduis était faite, j'ai configuré le point d'accès Wifi. Pour le connecter par ma machine virtuelle il fallait faire
root@Mulan:/# telnet 10.60.1.6 Trying 10.60.1.6... Connected to 10.60.1.6. Escape character is '^]'. User Access Verification Username: Cisco Password:
Après j'ai ajouté les lignes comme montré sur le point d'acces Wifi
aaa group server radius radius_mulan server 193.48.57.164 auth-port 1812 acct-port 1813 ! aaa authentication login eap_mulan group radius_mulan dot11 ssid Mulan vlan 5 authentication open eap eap_mulan authentication network-eap eap_mulan authentication key-management wpa mbssid guest-mode ! encryption vlan 5 mode ciphers aes-ccm tkip ! ssid Mulan ! interface Dot11Radio0.5 encapsulation dot1Q 5 no ip route-cache bridge-group 5 bridge-group 5 subscriber-loop-control bridge-group 5 spanning-disabled bridge-group 5 block-unknown-source no bridge-group 5 source-learning no bridge-group 5 unicast-flooding ! interface GigabitEthernet0.5 encapsulation dot1Q 5 bridge-group 5 bridge-group 5 spanning-disabled no bridge-group 5 source-learning !
Ensuite sur eeePC il fallait aussi changer /etc/network/interfaces
iface wlan3 inet static address 10.60.5.10 netmask 255.255.255.0 gateway 10.60.5.1 wpa-ssid Mulan wpa-key-mgmt WPA-EAP wpa-eap PEAP wpa-identity Mulan wpa-password Chencong
e) Configuration d'un PCBX
Pour réussir cette partie, il faut installer un serveur DHCP sur eeePC
apt-get install isc-dchp-server
Il faut aussi installer un paquetage asterisk sur cet eeePC
apt-get install asterisk
Pour que tous les téléphones IP puissent s'y enregistrer avec comme numéro de poste des numéros à partir de 100, il faut modifier le ficher /etc/asterisk/sip.conf
[chencong] type=friend context=default callerid=Chen Cong <71000> host=dynamic directmedia=yes dtmfmode=info disallow=all allow=ulaw allow=alaw allow=g723.1 allow=g729 secret=mulan [clara] type=friend context=default callerid=Chen Cong <72000> host=dynamic directmedia=yes dtmfmode=info disallow=all allow=ulaw allow=alaw allow=g723.1 allow=g729 secret=mulan
En meme temps, il faut aussi modifier le fichier /etc/asterisk/extensions.conf. Ce fichier permet d'ajouter des utilisateurs.
include => demo exten => 71000,1,Dial(SIP/chencong) exten => 72000,1,Dial(SIP/clara)
Dans le fichier /etc/bind9/db.mulan.website, il faut changer le serial et ajouter un autre nom de domaine.
42 ; Serial sip IN A 193.48.57.164 _sip._udp IN SRV 10 1 5060 sip
Chanque fois après la modification de ce fichier, il faut résigner la zone avec les commandes
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE mulan.website dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE mulan.website
Pour voir les détailles, sur le console j'ai tapé
service asterisk start asterisk -vvvvv -r sip show peers
Sur le console, j'ai peux voir
Mulan*CLI> sip show peers Name/username Host Dyn Forcerport Comedia ACL Port Status Description chencong/chencong 10.60.5.10 D Auto (No) No 5060 Unmonitored clara/clara 10.60.5.103 D Auto (No) No 50032 Unmonitored 2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 0 offline]
Ensuite pour faire le test il faut télécharger deux application sipdroid(sur le portable HTC) et ekiga(sur eeePC). J'ai essayé d'appeler ekiga avec le portable HTC. Sur le console,j'ai eu
[Dec 16 16:00:10] NOTICE[5591]: chan_sip.c:27870 handle_request_subscribe: Received SIP subscribe for peer without mailbox: clara == Using SIP RTP CoS mark 5 [Dec 16 16:01:12] NOTICE[5591][C-000001ba]: chan_sip.c:25652 handle_request_invite: Call from '' (85.25.207.90:5108) to extension '972594105693' rejected because extension not found in context 'public'. == Using SIP RTP CoS mark 5 [Dec 16 16:02:09] NOTICE[5591][C-000001bb]: chan_sip.c:25652 handle_request_invite: Call from '' (209.126.97.238:5070) to extension '0046184952042' rejected because extension not found in context 'public'. == Using SIP RTP CoS mark 5 -- Executing [71000@default:1] Dial("SIP/clara-00000008", "SIP/chencong") in new stack == Using SIP RTP CoS mark 5 -- Called SIP/chencong -- SIP/chencong-00000009 is ringing > 0x7f3754015760 -- Probation passed - setting RTP source address to 10.60.5.10:5066 -- SIP/chencong-00000009 answered SIP/clara-00000008 -- Remotely bridging SIP/clara-00000008 and SIP/chencong-00000009 > 0x7f3754015760 -- Probation passed - setting RTP source address to 10.60.5.10:5066 > 0x7f373c0a8970 -- Probation passed - setting RTP source address to 10.60.5.103:4002 [Dec 16 16:02:41] WARNING[5591]: chan_sip.c:4035 retrans_pkt: Retransmission timeout reached on transmission b2988c5312894a9e6a8a38767c07cdca for seqno 1 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions Packet timed out after 32000ms with no response == Spawn extension (default, 71000, 1) exited non-zero on 'SIP/clara-00000008' == Using SIP RTP CoS mark 5 -- Executing [71000@default:1] Dial("SIP/clara-0000000a", "SIP/chencong") in new stack == Using SIP RTP CoS mark 5 -- Called SIP/chencong -- SIP/chencong-0000000b is ringing == Spawn extension (default, 71000, 1) exited non-zero on 'SIP/clara-0000000a' [Dec 16 16:05:11] NOTICE[5591]: chan_sip.c:27870 handle_request_subscribe: Received SIP subscribe for peer without mailbox: clara
J'ai essayé d'appeler le eeePC par mon portable
Problème Rencontré
Dans ce TP, un moment donné, j'arrivais pas à faire le ping à un routeur par ma machine virtuel. Le problème était que le routeur de l'école n'était pas sur le vlan 130. Donc les paquets ne pouvaient pas passer. Voici un schéma pour expliquer comment ca marche.
Donc je peux bien voir qu'il y a une bonne communication entre mon portable et mon eeePC.
Références
Configurations Guide: http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/3se/layer2/configuration_guide/b_lay2_3se_3650_cg/b_lay2_3se_3650_cg_chapter_0101.html#task_1275918
Configurations Guide LACP: http://www.cisco.com/c/en/us/td/docs/ios/12_2sb/feature/guide/gigeth.html#wp1087351