TP sysres IMA5sc 2018/2019 G7 : Différence entre versions

De Wiki d'activités IMA
(Crackage de clé WPA)
(Crackage de clé WPA)
Ligne 389 : Ligne 389 :
 
Nous lançons alors airmon-ng avec notre interface wifi (wlp2s0) :
 
Nous lançons alors airmon-ng avec notre interface wifi (wlp2s0) :
  
  $ airmon-ng start wlp2s0
+
  $ airmon-ng start wlp2s0mon
  
 
Nous affichons ensuite tout les point d'accés environnants en utilisant la commande :
 
Nous affichons ensuite tout les point d'accés environnants en utilisant la commande :
  
  $ airodump-ng  wlp2s0
+
  $ airodump-ng  wlp2s0mon
  
 
Nous capturons des paquets provenants de cracotte07 que nous enregistrons dans un fichier :
 
Nous capturons des paquets provenants de cracotte07 que nous enregistrons dans un fichier :
  
  $ airodump-ng -c 9 -bssid 04:DA:d2:9C:50:56 -w ./path/cracotte07 wlp2s0
+
  $ airodump-ng -c 9 --bssid 04:DA:d2:9C:50:56 -w ./path_to_folder/cracotte07 wlp2s0mon
 +
 
 +
Une fois les fichiers générés, nous les transférons sur une ZABETH. Avant de lancer le craquage, nous devons générer un dictionnaire contenant toutes les combinaisons possibles de 8 chiffres. Pour cela, nous réalisons le script bash suivant :
 +
 
 +
#!/bin/bash
 +
charset=({0..9})
 +
permute(){
 +
  (($1 == 0)) && { echo "$2"; return; }
 +
  for char in "${charset[@]}"
 +
  do
 +
    permute "$((${1} - 1 ))" "$2$char"
 +
  done
 +
}
 +
permute "$1"
 +
 
 +
Que nous laçons en exécutant :
 +
 
 +
$ ./comb.sh 8

Version du 13 décembre 2018 à 15:10

Wiki de TP

TP GIS

Conteneurs "à la main"

Mise en place des conteneurs

  • Création d'une partition:
  dd if=/dev/zero of=/disk1 bs=1024K count=10240
  • Formatage :
  mtfs.etx4 /disk1
  • Montage de la partition:
  mount /disk1 /mnt
  • Installation d'un système Debian:
  debootstrap --include=apache2,nano stable /mnt 
  • Préparation du montage du pseudo système de fichier /proc:
  echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab
  • Démontage :
  umount /mnt
  • Copie en 2 exemplaires:
  cp /disk1 /disk2
  cp /disk1 /disk3
  • Montage des 3 partitions :
  mount -oloop /disk1 /mnt/dsk1
  mount -oloop /disk2 /mnt/dsk2
  mount -oloop /disk3 /mnt/dsk3
  • Création du processus isolé par unshare:
  unshare -p -f -m -n -u chroot /mnt/dsk1 /bin/sh -c "mount /proc ; /bin/bash"
  unshare -p -f -m -n -u chroot /mnt/dsk2 /bin/sh -c "mount /proc ; /bin/bash"
  unshare -p -f -m -n -u chroot /mnt/dsk3 /bin/sh -c "mount /proc ; /bin/bash"

Configuration réseau

  • Création d'un commutateur logiciel:
   ip link add mehcret2 type bridge
  • Création des interfaces virtuelles:
   ip link add vif1 type veth peer name eth0@vif1
   ip link add vif2 type veth peer name eth0@vif2
   ip link add vif3 type veth peer name eth0@vif3
   ip link add vif4 type veth peer name eth1@vif4
  • Ajout d'interfaces dans le commutateur :
   ip link set vif1 master mehcret2
   ip link set vif2 master mehcret2
   ip link set vif3 master mehcret2
   ip link set vif4 master bridge
  • Activation des interfaces:
   ip link set eth0 up
   ip link set eth1 up
  • Récupération du PID des conteneurs :
   ps auxwww | grep unshare
  • Ajout des interfaces dans les conteneurs :
   ip link set eth0@vif2 netns /proc/19382/ns/net name eth0 (dsk1)
   ip link set eth0@vif1 netns /proc/19377/ns/net name eth0 (dsk2)
   ip link set eth1@vif4 netns /proc/19377/ns/net name eth1 (dsk2)
   ip link set eth0@vif3 netns /proc/19396/ns/net name eth0 (dsk3)
  • Activation du pont:
   ip address add dev mehcret2 192.168.60.0/24
  • Attribution des adresses:
   ip address add dev eth0 192.168.60.51/24 (dsk1)
   ip address add dev eth0 192.168.60.52/24 (dsk2)
   ip address add dev eth0 192.168.60.53/24 (dsk3)
   ip address add dev eth1 172.26.145.67/24 (dsk2)
   ip route add default via 172.26.145.254 (dsk2)
  • Activation :
   ip link set eth0 up
   ip link set vif1 up
   ip link set vif2 up
   ip link set vif3 up
   ip link set vif4 up
   ip link set mehcret2 up

On peut désormais pinger entre les différents conteneurs.

Configuration des serveurs Web

Nous devons maintenant mettre en place les serveurs apache.

Dans un premier temps, on créé les sous-domaines dont nous avons besoin. Dans les enregistrements DNS du domaine plil.space, on ajoute les enregistrements suivants :

- mndtMehcret A 172.26.145.67 (mndtMehcret sera le serveur mandataire. On le fait pointer sur l'adresse eth1 du conteneur 2)

- web1Mehcret CNAME mndtMehcret (Serveur web du conteneur 1)

- web2Mehcret CNAME mndtMhecret (Serveur web du conteneur 3)

On configure ensuite les serveurs Apache. On attribue au premier serveur sur le conteneur 1 la configuration suivante dans le répertoire /etc/apache2/sites-available/ :

   <VirtualHost *:80>
     ServerName web1mehcret.plil.space
     Options Indexes FollowSymLinks
     DocumentRoot /var/www/html/web1mehcret/
   </VirtualHost> 

On fait de même dans le conteneur 3 pour le serveur 2 en mettant les ServerName et Document root associés. On écrit ensuite une page HTML basique dans les dossiers /var/www/html/web1mehcret/ et /var/www/html/web2mehcret/ afin de reconnaître notre serveur web.

Il faut maintenant mettre en place le reverse proxy. Dans le conteneur 2, connectée à la fois à eth0 et eth1, nous mettons en place la configuration suivante :

   <VirtualHost *:80>
     ServerName mndtMehcret.plil.space
     ProxyPass "/web1" "http://192.168.60.51/"
     ProxyPassReverse "/web1" "http://192.168.60.51/"
     ProxyPass "/web2" "http://"http://192.168.60.53/"
     ProxyPassReverse "/web2" "http://192.168.60.53/"
   </VirtualHost>

Les lignes ProxyPass et ProxyPassReverse permettent alors la redirection sur les serveurs web du conteneur 1 et 3.

Après avoir configuré les différents serveurs Apache, il faut redémarrer les services sur chaque conteneur :

    $ service apache2 restart

Pour utiliser apache en mode reverse proxy, on execute la commande :

    $ a2enmod proxy proxy_http

11h25 : Serveurs Web unshare OK

Conteneurs Docker

Avant de lancer un conteneur, il faut modifier le fichier /etc/default/docker et commenter la ligne contenant iptables. Nous exécutons ensuite la commande :

   $ iptables-save

Puis on redémarre le service Docker :

   $ service docker restart

Sans les commandes réalisées précédemment, nous n'avions pas accès au réseau dans les conteneurs.

Nous pouvons maintenant lancer un conteneur basé sur l'image officielle de debian :

   $ docker run -i -t  debian

Dans le conteneur, nous ajoutons le proxy de l'école :

   $ export http_proxy=http://proxy.polytech-lille.fr:3128/ 

Nous pouvons maintenant utiliser le gestionnaire de paquets apt afin d'installer apache2 et un éditeur de texte:

   $ apt-get update
   $ apt-get install apache2, nano, vim

On sauvegarde ensuite le conteneur pour pouvoir le lancer plus tard en 3 exemplaires :

   $ docker commit [IDduConteneur] mehcret

On créé un réseau Docker pour isoler nos conteneurs ensemble :

   $ docker network create --driver bridge mehcretnetwork

Nous lançons ensuite 3 conteneurs sur le réseau précédemment créé en liant le port 80 du conteneur 3 (qui jouera le rôle de reverse proxy) au port 80 de la machine :

   $ docker run -i --network mehcretnetwork --name mehcret1 mehcret
   $ docker run -i --network mehcretnetwork --name mehcret2 mehcret
   $ docker run -i --network mehcretnetwork --name mehcret3 -p 80:80 mehcret

Nous créons un nouveau sous domaine, dockerMehcret.plil.space pointant sur l'adresse IP de notre bridge en ajoutant un enregistrement de type A. Finalement, on configure les différents serveurs Apache comme nous l'avions fait dans la partie précédente.


10h30 Serveurs Web (docker) OK


TP PRA

Cet atelier consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système nous aurons à installer une machine virtuelle Xen ainsi qu’à implanter un auto-commutateur téléphonique logiciel. Enfin la mise en place d’un réseau Wifi sécurisé et d’un site web sécurisé nous permettra de mettre en pratiques nos connaissances en la matière.

Tâche 5 : Câblage, connexion SR52, cordouan

Connexion des routeurs au réseau de l'école

  • Connexion SR52 - Routeur ISR4221 (E306)

Dans le local SR52, on branche un câble du port 21 du routeur jusqu'au port K-16 du commutateur qui est relié à la prise murale qui se situe au dessus de cordouan en E306.

Sur le routeur, on passe le port 21 sur le vlan 131 :

  config t
  int gi1/0/21
  switchport access vlan 131
  write

En E306, on relie le port Gigabit 0/0/0 du routeur ISR4221 à la prise murale SR52.3-K16.

Les LEDs passent alors au vert et on observe que le port 21 du routeur en SR52 est bien connecté :


  • Connexion SR52 - Routeur Catalyst 3560 (E304)

En E304, on remarque une fibre libre de code couleur Blanc-Noir, on retrouve cette même fibre connectée au routeur en SR52 sur une interface 10Gb et déjà configurée sur le bon Vlan. On branche alors cette fibre sur la première interface 10 Gb du routeur Catalyst 3560 en E304 en accord avec le groupe configurant ce routeur. Le routeur de la E304 est désormais connecté au réseau de l'école.


Connexion des commutateurs aux routeurs

  • Connexion Routeur Catalyst 3560 - Commutateur 4006 (E304)

Le routeur utilisé en E304 permettant la communication 10Gb, on relie le commutateur au routeur par 10 câbles afin de profiter au maximum des possibilités offertes par le Catalyst 3560. Le groupe s'occupant des commutateurs ayant configuré le commutateur de la E304 pour communiquer avec le routeur de cette même salle par les ports 4 à 13, on branche 10 câbles ethernet sur ces ports que l'on relie au routeur sur les ports 1 à 10.

  • Connexion Routeur ISR 4221 - Commutateur 6000 (E306)

Contrairement au routeur utilisé en E304, le routeur en E306 ne permet une communication que Gb. Le commutateur sera donc relié au routeur par un seul câble. En accord avec le groupe configurant le routeur et celui configurant le commutateur, on relie ces derniers par un câble ethernet du port Gigabit 0/0/2 du routeur au port 14 du commutateur.

  • Connexion Routeur ISR 4221 (E306) - Commutateur 4006 (E304)

La connexion entre le routeur et le commutateur doit se faire par fibre étant donné que ces deux appareils se trouvent dans deux salles différentes. On utilise pour cela la fibre disponible de code couleur (A COMPLETER). Du côté de la salle E306, on connecte la fibre à l'interface Gb 0/0/1. En E304, on connecte la fibre sur un port UPLINK du commutateur.

  • Connexion Commutateur 6000 (E306) - Routeur Catalyst 3560 (E304)

La connexion au niveau du routeur ne pouvant se faire ici que par cuivre, nous devons utiliser un convertisseur fibre - cuivre. Pour interconnecter le commutateur 6000 au routeur Catalyst 3560, nous utilisons la fibre disponible de code couleur ORANGE. On connecte alors cette fibre sur le port (A COMPLETER) du commutateur de la E306. De l'autre côté, en E304, on connecte la fibre à un convertisseur puis le convertisseur au port 11 du routeur par un câble ethernet en accord avec le groupe configurant ce routeur.

Connexions au serveur Cordouan

Finalement, il faut connecter le serveur Cordouan à notre réseau afin d'avoir du réseau sur nos futures VM.

  • Connexion Commutateur 6000 (E306) - Serveur Cordouan

Le commutateur 6000 se trouvant dans la même salle que le serveur Cordouan, on peut relier ces derniers par cuivre. On relie alors le port 17 au serveur Cordouan par câble ethernet.

  • Connexion Routeur Catalyst 3560 (E306) - Serveur Cordouan

Ces deux appareils se trouvant dans deux salles différentes, la connexion ne peut se faire que par fibre. Cependant, nous ne disposons plus de convertisseur. Nous avons donc relié le serveur Cordouan au routeur de la E306 plutôt qu'au commutateur. Nous avons pour cela utilisé la fibre de code couleur BLEU. Nous connectons d'un côté la fibre au deuxième port Gigabit du routeur 3560, et de l'autre, la fibre au serveur Cordouan.

Connexion des commutateurs aux points d'accès

Schéma résumant le câblage réalisé :

ArchitectureMehCret.png

Installation des systèmes d'exploitation

Création de la machine virtuelle

Création d'une machine virtuelle sur cordouan.insecserv.deule.net :

  xen-create-image --hostname=hercule --ip=193.48.57.183 --netmask=255.255.255.224 --gateway=193.48.57.160 --dir=/usr/local/xen

Il fois la machine créée, on ajoute le bridge dans la config hercule.cfg

 vif = ['ip=193.48.57.183 , mac=#####, bridge=StudentsInfo']
 xen create hercule.cfg
 

On vérifie que la machine est bien créée en s'y connectant :

 xl console hercule

Création des partitions logiques sur Cordouan pour la machine virtuelle :

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

Modification du fichier de configuration de la machine virtuelle pour prendre en compte ces volumes créés. Ajout des lignes :

  'phy:/dev/virtual/hercule-home,xvdb1,w',
  'phy:/dev/virtual/hercule-var,xvdb2,w'

On relance la VM. On formate les disques créés sur la machine :

  mkfs -t ext4 /dev/xvdb1
  mkfs -t ext4 /dev/xvdb2

Afin de lier le home de notre vm au disque créé précédemment, on modifie le fichier /etc/fstab en y ajoutant la ligne suivante :

  /dev/xvdb1 /home ext4 defaults 0 2

Puis on effectue le montage :

  mount -a 

Pour le var, il faut monter temporairement le disque pour ne pas occulter le repertoire :

  mount /dev/xvdb2 /mnt

On déplace ensuite le contenu de var dans le point de montage précédemment créé :

  mv /var/* /mnt

Finalement, on ajoute dans le fichier /etc/fstab la ligne suivante pour effectuer le montage permanent :

  /dev/xvdb2 /var ext4 defaults 0 2

On applique les modifications :

  mount -a

Service internet

Serveur DNS

Achat du domaine hercule.pw sur gandi.

Installation de bind9:

  apt install bind9 bind9-host dnsutils

Modification de la configuration de bind9 : On créé un fichier de configuration de zone db.hercule.pw dans /etc/bind/ avec le contenu suivant :

;
; BIND data file for local loopback interface
;
$TTL	604800
@	IN	SOA	ns.hercule.space. root.hercule.space (
			2	; Serial
			604800	; Refresh
			86400	; Retry
			2419200	; Expire
			604800 )	; Negative Cache TTL
;
	IN	NS	ns.hercule.space.
	IN	NS	ns6.gandi.net
ns	IN	A	193.48.57.183
www	IN	A	193.48.57.183

Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :

zone "hercule.space" {
        type master;
        file "/etc/bind/db.hercule.space"; 
        allow-transfer {213.167.229.2;217.70.187.25;};
};

La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.

Redémarrage du serveur bind9 :

 service bind9 restart

Ajout de glue records sur Gandi pour permettre l'association du serveur DNS créé avec notre adresse IP :

 name : ns.hercule.space
 IP address : 193.48.57.183

Changement du nameserver principal sur Gandi (A FAIRE):

 DNS 1 : ns.hercule.space

On laisse ceux de Gandi pour les deux serveurs esclaves

ZONES INVERSES A FAIRE

Serveur Apache

Création du dossier /var/www/www.hercule.pw

  • Certification SSL :

Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :

  openssl req -nodes -newkey rsa:2048 -sha256 -keyout hercule.pw.key -out hercule.pw.csr

On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement.

  • Configuration Apache :

Configuration du serveur web dans le fichier /etc/apache2/sites-available/hercule.space.conf

 <VirtualHost 193.48.57.183:443>
                ServerName www.hercule.space
                ServerAlias hercule.space
                DocumentRoot /var/www/www.hercule.space/
                CustomLog /var/log/apache2/secure_acces.log combined

                SSLEngine on
                A COMPLETER POUR LE CERTIFICAT
        </VirtualHost>
ServerName "www.hercule.space"

Modification du fichier ports.conf pour que le serveur web écoute sur le port 443 :

 Listen 80 443

Crackage de clé WPA

Afin de lancer le crackage de clé WPA sur le point d'accès cracotte07, nous avons besoin du package aircrack-ng que nous installons. Nous affichons ainsi nos interfaces avec la commande :

$ iwconfig

Nous lançons alors airmon-ng avec notre interface wifi (wlp2s0) :

$ airmon-ng start wlp2s0mon

Nous affichons ensuite tout les point d'accés environnants en utilisant la commande :

$ airodump-ng  wlp2s0mon

Nous capturons des paquets provenants de cracotte07 que nous enregistrons dans un fichier :

$ airodump-ng -c 9 --bssid 04:DA:d2:9C:50:56 -w ./path_to_folder/cracotte07 wlp2s0mon

Une fois les fichiers générés, nous les transférons sur une ZABETH. Avant de lancer le craquage, nous devons générer un dictionnaire contenant toutes les combinaisons possibles de 8 chiffres. Pour cela, nous réalisons le script bash suivant :

#!/bin/bash
charset=({0..9})
permute(){
  (($1 == 0)) && { echo "$2"; return; }
  for char in "${charset[@]}"
  do
    permute "$((${1} - 1 ))" "$2$char"
  done
}
permute "$1"

Que nous laçons en exécutant :

$ ./comb.sh 8