TP sysres IMA5sc 2018/2019 G2 : Différence entre versions
(→Mise en place commutateur virtuel) |
(→6.1 Sécurisation de données) |
||
(259 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | =Conteneur réalisation manuelle= | + | =TP GIS4 - Conteneur réalisation manuelle= |
==Création des systèmes fichier== | ==Création des systèmes fichier== | ||
Ligne 18 : | Ligne 18 : | ||
debootstrap --include=apache2,nano stable /tmp/JDQB_DISK1 | debootstrap --include=apache2,nano stable /tmp/JDQB_DISK1 | ||
+ | echo "proc /proc defaults 0 0" >> /tmp/JDQB_DISK1/etc/fstab | ||
+ | |||
+ | umount -d /tmp/JDQB_DISK1 | ||
+ | |||
+ | On clone le disk1 pour avoir disk2 et disk3 (cp) | ||
+ | |||
+ | On remonte les trois disques | ||
+ | mount -o loop diskX /tmp/JDQB_DISKX | ||
+ | |||
+ | ==Lancement des conteneurs== | ||
+ | Ouverture de trois terminaux en root, puis utilisation de la commande dans chacun des terminaux | ||
+ | |||
+ | unshare -n -u -p -f -m chroot /tmp/JDQB_DISKX /bin/sh -c "mount /proc ; /bin/bash" ; | ||
+ | |||
+ | |||
+ | Dans chaque conteneur | ||
+ | |||
+ | ip l set eth0 up | ||
+ | Cette commande s'applique aussi à eth1 pour le conteneur 1 | ||
==Mise en place commutateur virtuel== | ==Mise en place commutateur virtuel== | ||
Création des interfaces liées | Création des interfaces liées | ||
− | + | iface_virt_X (interface virtuelle X) <-> iface_ns_X (interface namespace X) | |
ip link add iface_virt_1 type veth peer name iface_ns_1 | ip link add iface_virt_1 type veth peer name iface_ns_1 | ||
+ | ip link add iface_virt_2 type veth peer name iface_ns_2 | ||
+ | ip link add iface_virt_3 type veth peer name iface_ns_3 | ||
+ | |||
+ | |||
+ | Création de notre propre pont | ||
+ | |||
+ | ip link add jdqb_bridge type bridge | ||
+ | |||
+ | Ajout des parties des interfaces dans le commutateur | ||
+ | |||
+ | ip link set iface_virt_1 master jdqb_bridge | ||
+ | ip link set iface_virt_2 master jdqb_bridge | ||
+ | ip link set iface_virt_3 master jdqb_bridge | ||
+ | |||
+ | |||
+ | |||
+ | Activation des interfaces | ||
+ | ip link set iface_virt_1 up | ||
+ | ip link set iface_virt_2 up | ||
+ | ip link set iface_virt_3 up | ||
+ | |||
+ | Activation du pont | ||
+ | ip address add dev jdqb_bridge 192.168.0.1/24 | ||
+ | |||
+ | Montée du pont | ||
+ | ip link set jdqb_bridge up | ||
+ | |||
+ | Connexion des conteneurs à leur interface virtuelle respective | ||
+ | ip link set iface_ns_1 netns /proc/<PID1>/ns/net name eth0 | ||
+ | ip link set iface_ns_2 netns /proc/<PID2>/ns/net name eth0 | ||
+ | ip link set iface_ns_3 netns /proc/<PID3>/ns/net name eth0 | ||
+ | |||
+ | Obtention des PIDs | ||
+ | ps aux | grep unshare | ||
+ | |||
+ | Quatrième interface, reliant le mandataire web inverse (conteneur 1) et le bridge de zabeth09 | ||
+ | ip link add iface_virt_0 type veth peer name iface_ns_0 | ||
+ | ip link set iface_virt_0 master bridge | ||
+ | ip link set iface_virt_0 up | ||
+ | ip link set iface_ns_0 netns /proc/<PID1>/ns/net name eth1 | ||
+ | |||
+ | ==Modification de la table IP== | ||
+ | |||
+ | iptables -F | ||
+ | iptables -F -t nat | ||
+ | iptables -P FORWARD ACCEPT | ||
+ | |||
+ | Attribution des adresses aux conteneurs | ||
+ | |||
+ | nsenter -t <PID1> -n ip address add dev eth0 192.168.0.91/24 | ||
+ | nsenter -t <PID2> -n ip address add dev eth0 192.168.0.92/24 | ||
+ | nsenter -t <PID3> -n ip address add dev eth0 192.168.0.93/24 | ||
+ | |||
+ | nsenter -t <PID1> -n ip address add dev eth1 172.26.145.90/24 | ||
+ | |||
+ | ==Mandataire inverse== | ||
+ | ===Configuration Apache2=== | ||
+ | |||
+ | Afin de configurer notre premier conteneur en mandataire inverse, nous modifions le fichier : /etc/apache2/sites-available/000-default.conf | ||
+ | |||
+ | Nous ajoutons : | ||
+ | <VirtualHost *:80> | ||
+ | ... | ||
+ | ProxyPass /site1 http://192.168.0.92/ | ||
+ | ProxyPassReverse /site1 http://192.168.0.92/ | ||
+ | ProxyPass /site2 http://192.168.0.93/ | ||
+ | ProxyPassReverse /site2 http://192.168.0.93/ | ||
+ | ProxyRequests Off | ||
+ | ... | ||
+ | </VirtualHost> | ||
+ | |||
+ | ===Configuration réseau=== | ||
+ | |||
+ | |||
+ | Ajout de la route par défaut (Polytech) : | ||
+ | ip route add default via 172.26.145.254 | ||
+ | |||
+ | Configuration eth1 : | ||
+ | ip add add dev eth1 172.26.145.90/24 | ||
+ | ip link set eth1 up | ||
+ | |||
+ | 11h25 => Serveurs Web unshare OK | ||
+ | |||
+ | =Création des conteneurs via Docker= | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==Instructions''Texte italique''== | ||
+ | docker run -i -t debian | ||
+ | |||
+ | export http | ||
+ | |||
+ | apt-get install apache nano vi | ||
+ | |||
+ | En dehors conteneur docker commit <image name> sur le conteneur | ||
+ | |||
+ | |||
+ | |||
+ | Creer réseau privé docker network create | ||
+ | |||
+ | |||
+ | (2X)docker run -i -t <image name> --net nom réseau | ||
+ | docker run -i -t <image name> --net nom réseau -p 80:80 | ||
+ | |||
+ | DNS : vérifier les @IP des conteneurs | ||
+ | LE mandataire inverse doit avoir @IP de zabeth | ||
+ | |||
+ | ==Procédure== | ||
+ | Modification des paramètres de docker dans /etc/default/docker, commenter la ligne DOCKER_EPTS="--iptables=false" | ||
+ | |||
+ | iptables-save | ||
+ | service docker restart | ||
+ | |||
+ | docker run -i -t debian /bin/bash | ||
+ | |||
+ | Dans le conteneur | ||
+ | export http_proxy | ||
+ | export https_proxy | ||
+ | |||
+ | apt-get update | ||
+ | apt-get install apache2 nano vim | ||
+ | |||
+ | Récupération ID du docker | ||
+ | docker ps | ||
+ | |||
+ | Commit sur le docker | ||
+ | docker commit <ID> apache2 | ||
+ | |||
+ | Création du network | ||
+ | docker network create jdqb_network | ||
+ | |||
+ | Lancement des conteneurs | ||
+ | docker run -i -t --net jdqb_network apache2 | ||
+ | docker run -i -t --net jdqb_network apache2 | ||
+ | docker run -i -t --net jdqb_network -p 80:80 apache2 | ||
+ | |||
+ | Dans chaque conteneur | ||
+ | ip a | ||
+ | |||
+ | Dans le conteneur mandataire | ||
+ | nano /etc/apache2/sites-enabled/000-default.conf | ||
+ | |||
+ | Ajout des proxypass | ||
+ | |||
+ | ProxyPass /site1 http://<IP conteneur 1>/ | ||
+ | ProxyPassReverse /site1 http://<IP conteneur 1>/ | ||
+ | ProxyPass /site2 http://<IP conteneur 2>/ | ||
+ | ProxyPassReverse /site2 http://<IP conteneur 2>/ | ||
+ | ProxyRequests Off | ||
+ | |||
+ | Ajout d'un DNS dans GANDI @plil.space | ||
+ | |||
+ | Type A , TTL 1800, nom jdqb-docker, <ip bridge zabeth> | ||
+ | |||
+ | Sur les trois conteneurs | ||
+ | service apache2 restart | ||
+ | |||
+ | 10h20 Serveurs Web (docker) OK | ||
+ | |||
+ | =TP PRA - Mise en place du routeur Catalyst 3650= | ||
+ | |||
+ | * Sujet : [https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/reseau.html Lien - rex.plil.fr] | ||
+ | |||
+ | == Déroulement des Séances == | ||
+ | |||
+ | |||
+ | ===Séance 1 : 26/11/2018=== | ||
+ | |||
+ | Nous avons à notre disposition l'adresse IPV4 routée 193.48.57.160/27. | ||
+ | |||
+ | Nous disposons également de l'adresse IPV4 non routée 10.60.0.0/16. | ||
+ | |||
+ | |||
+ | ====Découpage réseau IPV4 routé en deux sous réseaux==== | ||
+ | |||
+ | Nous divisons l'IPV4 routée en deux sous réseaux. | ||
+ | |||
+ | Pour réaliser leur TP, les IMA2A5 ont utilisés les adresses comprises entre 193.48.57.160/28 et 193.48.57.175/28. | ||
+ | |||
+ | Nous utiliserons donc le second sous réseau : 193.48.57.176/28 à 193.48.57.191/28. | ||
+ | |||
+ | |||
+ | Par conséquent l'adresse IP du routeur 1 est 193.48.57.188/28 | ||
+ | |||
+ | Celle du routeur 2 est 193.48.57.189/28 | ||
+ | |||
+ | Et enfin le routeur virtuel, pour la diffusion entre routeurs, est 193.48.57.190/28 | ||
+ | |||
+ | |||
+ | ====Découpage du réseau IPV4 non routée en sous réseaux==== | ||
+ | |||
+ | Nous découpons notre réseau en 254 sous réseaux disponibles. Les IMA2A5 ont utilisés les 5 premiers 10.60.1.0/24 à 10.60.5.0/24 . | ||
+ | |||
+ | Nous prendrons donc les adresses entre 10.60.11.0/24 et 10.60.21.0/24 . | ||
+ | |||
+ | Ces adresses seront routées vers les adresses comprises entre 193.48.57.177/28 et 193.48.57.187/28 . | ||
+ | |||
+ | ===Séance 2 : 27/11/2018=== | ||
+ | |||
+ | Configuration du routeur Catalyst 3560 | ||
+ | |||
+ | ====Mise en place du routeur et connexion à celui ci==== | ||
+ | La configuration du routeur se fera via minicom. | ||
+ | |||
+ | Vérification de l'interface à utiliser : | ||
+ | |||
+ | ls /dev/ | grep ttyUSB | ||
+ | |||
+ | Notre routeur est connecté sur ttyUSB0. | ||
+ | |||
+ | minicom -os | ||
+ | |||
+ | Les paramètres de configuration de minicom sont les suivants : | ||
+ | |||
+ | - port /dev/ttyUSB0 | ||
+ | |||
+ | - baud 9600 | ||
+ | |||
+ | - 8 bits | ||
+ | |||
+ | - pas de bit de parité | ||
+ | |||
+ | - 1 bit de stop | ||
+ | |||
+ | - pas de contrôle de flux | ||
+ | |||
+ | ====Configuration du routeur : Configuration des ports==== | ||
+ | Passage en administrateur : | ||
+ | |||
+ | Router>enable | ||
+ | Router# | ||
+ | |||
+ | On liste les interfaces | ||
+ | |||
+ | Router#show interface status | ||
+ | |||
+ | |||
+ | Port Name Status Vlan Duplex Speed Type | ||
+ | Gi0/1 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/2 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/3 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/4 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/5 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/6 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/7 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/8 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/9 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | Gi0/10 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 | ||
+ | |||
+ | Gi0/11 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 2 (en E306) | ||
+ | |||
+ | // Non connecté | ||
+ | [...interfaces Gi0/12-Gi0/48] | ||
+ | |||
+ | // les fibres | ||
+ | Te0/1 notconnect 1 full 10G 10GBase-SR // vers le local SR52 | ||
+ | Te0/2 notconnect 1 full 10G 10GBase-SR // vers cordouan | ||
+ | |||
+ | Afin d'accélérer la communication entre le routeur et le commutateur, les ports 1 à 10 du routeur seront connectés au commutateur. | ||
+ | |||
+ | Router(config)#configure terminal | ||
+ | Enter configuration commands, one per line. End with CNTL/Z. | ||
+ | Router(config)#interface range Gi0/1 - 11 | ||
+ | Switch(config-if)#switchport mode access | ||
+ | Switch(config-if)#switchport access access trunk | ||
+ | Switch(config-if)#exit | ||
+ | |||
+ | Configuration de l'interface 10G vers le local SR52 | ||
+ | |||
+ | Router(config)#configure terminal | ||
+ | Enter configuration commands, one per line. End with CNTL/Z. | ||
+ | Router(config)#interface Te0/1 | ||
+ | Switch(config-if)#switchport mode access | ||
+ | Switch(config-if)#switchport access access vlan 131 // vlan 131 (interconnexion IMA5) | ||
+ | Switch(config-if)#exit | ||
+ | |||
+ | Configuration de l'interface 10G vers Cordouan | ||
+ | |||
+ | Router(config)#configure terminal | ||
+ | Enter configuration commands, one per line. End with CNTL/Z. | ||
+ | Router(config)#interface Te0/2 | ||
+ | Switch(config-if)#switchport mode access | ||
+ | Switch(config-if)#switchport access access vlan 43 // vlan 43 (XEN IMA5) | ||
+ | Switch(config-if)#exit | ||
+ | |||
+ | PROBLEME : | ||
+ | |||
+ | *Mar 1 01:42:30.518: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on TenGigabitEthernet0/2 (43), with Switch GigabitEthernet3/2 (42). | ||
+ | |||
+ | A FAIRE : | ||
+ | |||
+ | *configurer les interfaces / BDI | ||
+ | |||
+ | ====Mise en place de la machine virtuelle==== | ||
+ | Notre machine virtuelle a les paramètres suivants : | ||
+ | |||
+ | -Hostname = Dionysos | ||
+ | |||
+ | -@IP = 193.48.57.178 | ||
+ | |||
+ | -Netmask = 255.255.255.240 | ||
+ | |||
+ | -dossier = /usr/local/xen | ||
+ | |||
+ | xen-create-image --hostname=Dionysos --ip=193.48.57.178 --netmask=255.255.255.240 --dir=/usr/local/xen | ||
+ | |||
+ | Dans le répertoire /etc/xen, nous modifions le fichier Dionysos.cfg. | ||
+ | |||
+ | Nous adaptons le bridge StudentsInfo, qui devient IMA5sc. | ||
+ | |||
+ | |||
+ | |||
+ | Puis nous lançons une instance de la VM | ||
+ | |||
+ | xl create Dionysos.cfg | ||
+ | xl console Dionysos | ||
+ | |||
+ | Connexion à la VM, avec le login root, mot de passe fourni a la fin de l'installation | ||
+ | |||
+ | Dans le fichier /etc/ssh/sshd_config nous décommentons la ligne : | ||
+ | PermitRootLogin yes | ||
+ | |||
+ | Ainsi nous pouvons nous connecter en ssh sur notre VM | ||
+ | |||
+ | Pour que le système soit connecté dans /etc/network/interfaces nous ajoutons la gateway. | ||
+ | gateway 193.48.57.190 | ||
+ | |||
+ | ip route add default via 193.48.57.190 dev eth0 onlink | ||
+ | |||
+ | |||
+ | Nous avons modifié le mot de passe initial. | ||
+ | |||
+ | |||
+ | Pour éteindre une VM | ||
+ | |||
+ | xl shutdown Dionysos | ||
+ | |||
+ | ===Séance 3 : 10/12/2018=== | ||
+ | |||
+ | ====Config Routeur 3560==== | ||
+ | |||
+ | *Commande pour save la configuration | ||
+ | |||
+ | write | ||
+ | |||
+ | Correction sur la config du routeur | ||
+ | |||
+ | *Vers le commutateur 4006 - 10 cables 1G (Notre Salle) | ||
+ | |||
+ | enable | ||
+ | conf t | ||
+ | interface range Gi0/1 - 10 | ||
+ | switchport | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | exit | ||
+ | |||
+ | |||
+ | *Vers le commutateur 6000 - 1 cable 1G (Autre Salle) | ||
+ | |||
+ | enable | ||
+ | conf t | ||
+ | interface gi0/11 | ||
+ | switchport | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | exit | ||
+ | |||
+ | |||
+ | *Vers Cordouan - cable 10G (Fibre) | ||
+ | |||
+ | conf t | ||
+ | interface Te0/2 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode access | ||
+ | switchport access vlan 43 // vlan 43 (XEN IMA5) | ||
+ | exit | ||
+ | |||
+ | *Vers le local SR52 | ||
+ | |||
+ | conf t | ||
+ | interface Te0/1 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode access | ||
+ | switchport access vlan 131 // vlan 131 (interconnexion IMA5) | ||
+ | exit | ||
+ | |||
+ | *Le vlan M = 10 + N (Groupe N) | ||
+ | |||
+ | conf t | ||
+ | int vlanM | ||
+ | ip address 10.60.M.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby M ip 10.60.M.254 | ||
+ | standby M preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address 2001:660:4401:60CN eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60CN::/64 1000 9000 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | |||
+ | *Le vlan 43 (IM5sc) | ||
+ | |||
+ | int vlan43 | ||
+ | ip address 193.48.57.188 255.255.255.240 | ||
+ | standby version 2 | ||
+ | standby 22 ip 193.48.57.190 | ||
+ | standby 22 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address 2001:660:4401:60C0 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | |||
+ | *Le vlan 131 (Interconnexion) | ||
+ | |||
+ | int vlan 131 | ||
+ | ip address 192.168.222.9 255.255.255.248 | ||
+ | ipv6 address fe80::2 link-local | ||
+ | ipv6 enable | ||
+ | ipv6 rip tpima2a5 enable | ||
+ | exit | ||
+ | |||
+ | *Nommer un VLANs | ||
+ | |||
+ | vlan M | ||
+ | name groupeN | ||
+ | exit | ||
+ | |||
+ | vlan 43 | ||
+ | name Xen | ||
+ | exit | ||
+ | |||
+ | vlan 131 | ||
+ | name interconnexion | ||
+ | exit | ||
+ | |||
+ | |||
+ | |||
+ | conf t | ||
+ | ip routing | ||
+ | exit | ||
+ | show ip route | ||
+ | Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP | ||
+ | D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area | ||
+ | N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 | ||
+ | E1 - OSPF external type 1, E2 - OSPF external type 2 | ||
+ | i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 | ||
+ | ia - IS-IS inter area, * - candidate default, U - per-user static route | ||
+ | o - ODR, P - periodic downloaded static route | ||
+ | |||
+ | Gateway of last resort is not set | ||
+ | |||
+ | 193.48.57.0/28 is subnetted, 1 subnets | ||
+ | C 193.48.57.176 is directly connected, Vlan43 | ||
+ | 10.0.0.0/24 is subnetted, 11 subnets | ||
+ | C 10.60.20.0 is directly connected, Vlan20 | ||
+ | C 10.60.21.0 is directly connected, Vlan21 | ||
+ | C 10.60.18.0 is directly connected, Vlan18 | ||
+ | C 10.60.19.0 is directly connected, Vlan19 | ||
+ | C 10.60.16.0 is directly connected, Vlan16 | ||
+ | C 10.60.17.0 is directly connected, Vlan17 | ||
+ | C 10.60.14.0 is directly connected, Vlan14 | ||
+ | C 10.60.15.0 is directly connected, Vlan15 | ||
+ | C 10.60.12.0 is directly connected, Vlan12 | ||
+ | C 10.60.13.0 is directly connected, Vlan13 | ||
+ | C 10.60.11.0 is directly connected, Vlan11 | ||
+ | 192.168.222.0/29 is subnetted, 1 subnets | ||
+ | C 192.168.222.8 is directly connected, Vlan131 | ||
+ | |||
+ | * OSPF | ||
+ | |||
+ | Switch(config)#router ospf 1 | ||
+ | Switch(config-router)#router-id 10.60.11.252 | ||
+ | Switch(config-router)#summary-address 193.48.57.176 255.255.255.240 | ||
+ | Switch(config-router)#redistribute connected subnets | ||
+ | Switch(config-router)#summary-address 192.168.0.0 255.255.255.0 not-advertise | ||
+ | Switch(config-router)#summary-address 10.60.0.0 255.255.0.0 not-advertise | ||
+ | Switch(config-router)#network 192.168.222.8 0.0.0.7 area 2 | ||
+ | Switch(config-router)#exit | ||
+ | |||
+ | ====Mise en place des partitions pour la VM==== | ||
+ | Sur cordouan | ||
+ | |||
+ | lvcreate -L10G -nIMA5_Dionysos_var virtual | ||
+ | lvcreate -L10G -nIMA5_Dionysos_home virtual | ||
+ | |||
+ | |||
+ | mke2fs /dev/virtual/IMA5_Dionysos_var | ||
+ | mke2fs /dev/virtual/IMA5_Dionysos_home | ||
+ | |||
+ | Dans le fichier /etc/xen/Dionysos.cfg | ||
+ | |||
+ | |||
+ | disk = [ | ||
+ | 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', | ||
+ | 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_home,xvdb1,w', | ||
+ | ] | ||
+ | |||
+ | Sur la VM, dans le fichier /etc/fstab | ||
+ | /dev/xvdb1 /home ext4 defaults 0 3 | ||
+ | |||
+ | |||
+ | Le cas du répertoire /var est plus complexe. | ||
+ | |||
+ | Si nous utilisons la même méthode que pour /home, nous perdrons le /var. Nous ne pourrions donc plus utiliser apt-get, par exemple. | ||
+ | |||
+ | Dans la VM, dans le fichier /etc/fstab | ||
+ | /dev/xvdb2 /mnt ext4 defaults 0 2 | ||
+ | |||
+ | Puis dans le terminal de la VM | ||
+ | mount /dev/xvdb2 /mnt | ||
+ | mv /var/* /mnt/ | ||
+ | unmount /mnt | ||
+ | mount -a | ||
+ | |||
+ | Via la commande df nous contrôlons le résultat. | ||
+ | Filesystem 1K-blocks Used Available Use% Mounted on | ||
+ | ... ... ... ... ... ... | ||
+ | /dev/xvdb1 10255636 36888 9678076 1% /home | ||
+ | /dev/xvdb2 10321208 23028 9773892 1% /var | ||
+ | |||
+ | ====Mise en place serveur DNS==== | ||
+ | Utilisation de la méthode bind | ||
+ | |||
+ | Dans le répertoire /etc/bind, nous modifirons les trois fichiers suivants : | ||
+ | |||
+ | named.conf.options | ||
+ | |||
+ | options { | ||
+ | directory "/var/cache/bind"; | ||
+ | |||
+ | // If there is a firewall between you and nameservers you want | ||
+ | // to talk to, you may need to fix the firewall to allow multiple | ||
+ | // ports to talk. See http://www.kb.cert.org/vuls/id/800113 | ||
+ | |||
+ | // If your ISP provided one or more IP addresses for stable | ||
+ | // nameservers, you probably want to use them as forwarders. | ||
+ | // Uncomment the following block, and insert the addresses replacing | ||
+ | // the all-0's placeholder. | ||
+ | |||
+ | // forwarders { | ||
+ | // 0.0.0.0; | ||
+ | // }; | ||
+ | |||
+ | //======================================================================== | ||
+ | // If BIND logs error messages about the root key being expired, | ||
+ | // you will need to update your keys. See https://www.isc.org/bind-keys | ||
+ | //======================================================================== | ||
+ | |||
+ | //Mise en place du DNSSEC | ||
+ | dnssec-enable yes; | ||
+ | |||
+ | dnssec-validation auto; | ||
+ | |||
+ | auth-nxdomain no; | ||
+ | listen-on-v6 { any; }; | ||
+ | allow-recursion{localhost;}; | ||
+ | }; | ||
+ | |||
+ | |||
+ | named.conf.local | ||
+ | |||
+ | zone "dionysos.space"{ | ||
+ | type master; | ||
+ | file "/etc/bind/db.dionysos.space"; | ||
+ | allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net | ||
+ | }; | ||
+ | |||
+ | |||
+ | Puis nous créons le fichier /etc/bind/db.dionysos.space | ||
+ | cp db.local db.dionysos.space | ||
+ | |||
+ | Dans ce fichier nous entrons les paramètres suivants | ||
+ | |||
+ | ; | ||
+ | ; BIND data file for local loopback interface | ||
+ | ; | ||
+ | $TTL 604800 | ||
+ | $include /root/SSL_certif/dionysos-ksk.key | ||
+ | $include /root/SSL_certif/dionysos-zsk.key | ||
+ | |||
+ | @ IN SOA ns.dionysos.space. root.dionysos.space ( | ||
+ | 2 ; Serial | ||
+ | 604800 ; Refresh | ||
+ | 86400 ; Retry | ||
+ | 2419200 ; Expire | ||
+ | 604800 ) ; Negative Cache TTL | ||
+ | ; | ||
+ | IN NS ns.dionysos.space. ;dns principal | ||
+ | IN NS ns6.gandi.net. ;dns secondaire | ||
+ | @ IN A 193.48.57.178 ;acces sans le "www." | ||
+ | ns IN NS 193.48.57.178 ;acces avec http https | ||
+ | www IN A 193.48.57.178; ;acces avec le "www. | ||
+ | |||
+ | ====Certificat SSL==== | ||
+ | |||
+ | |||
+ | |||
+ | openssl req -nodes -newkey rsa:2048 -sha1 -keyout dionysos.space.key -out dionysos.space.csr | ||
+ | ... | ||
+ | Common Name (e.g. server FQDN or YOUR name) []:dionysos.space et dionysos.space.key | ||
+ | Email Address []:qboens@polytech-lille.net | ||
+ | |||
+ | Cette opération génére deux fichiers : dionysos.space.crt et dionysos.space.key | ||
+ | |||
+ | Une fois cette étape faite on récupére sur gandi GandiStandardSSLCA2.pem, dans l'onglet du certificat. | ||
+ | |||
+ | Tous les fichiers sont placés dans le répertoire SSL_certif | ||
+ | mv dionysos.space.csr SSL_certif | ||
+ | mv dionysos.space.key SSL_certif | ||
+ | mv GandiStandardSSLCA2.pem SSL_certif | ||
+ | |||
+ | |||
+ | ====Installation de DNSSEC==== | ||
+ | |||
+ | Création de la clef KSK | ||
+ | dnssec-keygen -a RSASHA1 -b 2048 -f KSK -r /dev/urandom -n ZONE dionysos.space | ||
+ | |||
+ | Création de la clef ZSK | ||
+ | dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE dionysos.space | ||
+ | |||
+ | |||
+ | Ces clefs ont été crées dans le dossier SSL_certif | ||
+ | |||
+ | |||
+ | Création d'un fichier signé à partir de db.dionysos.space | ||
+ | dnssec-signzone -o dionysos.space -k dionysos-ksk.key /etc/bind/db.dionysos.space dionysos-zsk.key | ||
+ | |||
+ | |||
+ | Dans named.conf.local nous changons le fichier cible, pour que bind9 prenne en compte db.dionysos.space.signed, qui est le fichier signé | ||
+ | zone "dionysos.space"{ | ||
+ | type master; | ||
+ | file "/etc/bind/db.dionysos.space.signed"; | ||
+ | allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net | ||
+ | }; | ||
+ | |||
+ | Puis nous relançons bind9 | ||
+ | service bind9 restart | ||
+ | |||
+ | Sur le site gandi nous ajoutons les deux clefs, dans l'onglet DNSSEC | ||
+ | |||
+ | Un bon moyen de contrôler le déploiement de nos clefs : [http://dnsviz.net/] | ||
+ | |||
+ | ===Séance 3.5 : 14/12/2018=== | ||
+ | |||
+ | ====Craquage WPA/PSK par dictionnaire==== | ||
+ | |||
+ | Materiel utilisé : | ||
+ | |||
+ | * un PC portable | ||
+ | * une clé Wi-Pi (nécessaire pour le PC portable que nous avons utilisé pour la partie handshake) | ||
+ | * Zabeth13 pour le craquage | ||
+ | |||
+ | =====Récupération du handshake===== | ||
+ | |||
+ | Premièrement sur le PC portable SOLE, | ||
+ | |||
+ | #ip a | ||
+ | |||
+ | pour vérifier que nous disposons bien d'une interface wifi <code>wlx40a5ef0f68ce</code>, puis nous l'utilisons pour écouter sur le wifi : | ||
+ | |||
+ | #airmon-ng start <nom_de_l'interface> | ||
+ | |||
+ | On récupère l'interface retournée, dans notre cas <code>wlan0mon</code> | ||
+ | |||
+ | #airodump-ng wlan0mon | ||
+ | |||
+ | On note l'ESSID de cracotte02 et son channel pour ensuite renvoyer dans des fichiers | ||
+ | |||
+ | #airodump-ng --bssid <ESSID cracotte02> wlan0mon --channel 9 --write FILENAME | ||
+ | |||
+ | On dispose ensuite de 4 fichiers FILENAME.cap FILENAME.csv FILENAME.kismet.csv FILENAME.kismet.netxml | ||
+ | |||
+ | On peut à présent transférer ces fichiers sur ZABETH13 via clé usb: | ||
+ | |||
+ | =====Rappel montage USB===== | ||
+ | |||
+ | #fdisk -l //avant de brancher la clé USB | ||
+ | #fdisk -l //on récupère l'emplacement de la clé (ex: /dev/sdb -> /dev/sdb1) | ||
+ | #mkdir /media/MA_CLE_USB | ||
+ | #mount /dev/sdb1 /media/MA_CLE_USB | ||
+ | #mv /home/pifou/Mon_FICHIER /media/MA_CLE_USB //répéter autant que nécessaire | ||
+ | #umount /media/MA_CLE_USB | ||
+ | |||
+ | =====Crack WPA/PSK===== | ||
+ | |||
+ | On crée un petit programme <code>main.c</code> pour lister tous les codes possibles, on sait qu'il s'agit d'un code de 8 chiffres | ||
+ | |||
+ | #include <stdio.h> | ||
+ | #include <stdlib.h> | ||
+ | |||
+ | int main(){ | ||
+ | int i; | ||
+ | // key is 8 numeric digits | ||
+ | for(i=0;i<99999999;i++){ | ||
+ | printf("%d\n",i); | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | On compile et on stock dans un txt | ||
+ | |||
+ | #gcc main.c -o main -Wall | ||
+ | #./main > dictionnaire.txt | ||
+ | |||
+ | On peut à présent lancer le crack | ||
+ | |||
+ | #aircrack-ng FILENAME.cap -w dictionnaire.txt | ||
+ | |||
+ | |||
+ | |||
+ | [[Fichier:crack-cracotte02.png]] | ||
+ | |||
+ | Après un certains temps d'execution, on obtient la clé | ||
+ | |||
+ | [[Fichier:Found_key.png]] | ||
+ | |||
+ | Clé : 42429902 | ||
+ | ===Séance 4 : 17/12/2018=== | ||
+ | ====Correction IPV6 routeur==== | ||
+ | |||
+ | ===== Vlan 43 - XEN ===== | ||
+ | |||
+ | conf t | ||
+ | no int vlan43 | ||
+ | int vlan43 | ||
+ | ip address 193.48.57.188 255.255.255.240 | ||
+ | standby version 2 | ||
+ | standby 22 ip 193.48.57.190 | ||
+ | standby 22 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address 2001:660:4401:60C0::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | |||
+ | ===== Vlan 131 - Interconnexion ===== | ||
+ | |||
+ | conf t | ||
+ | no int vlan 131 | ||
+ | int vlan 131 | ||
+ | ip address 192.168.222.9 255.255.255.248 | ||
+ | ipv6 address fe80::2 link-local | ||
+ | ipv6 enable | ||
+ | ipv6 rip tpima2a5 enable | ||
+ | exit | ||
+ | |||
+ | ===== Vlan 10+N - Groupe N ===== | ||
+ | |||
+ | '''IPv4''' | ||
+ | |||
+ | * Notre Routeur : <code>10.60.10+N.252</code> | ||
+ | * Routeur Virtuel : <code>10.60.10+N.254</code> | ||
+ | |||
+ | |||
+ | '''IPv6''' | ||
+ | |||
+ | <code>2001:660:4401:60XX</code> | ||
+ | |||
+ | * VLAN 11 à 21 : <code>C1</code> à <code>CB</code> | ||
+ | * VLAN 43 : <code>C0</code> | ||
+ | |||
+ | * Groupe 1 | ||
+ | |||
+ | conf t | ||
+ | no int vlan11 | ||
+ | int vlan11 | ||
+ | ip address 10.60.11.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 11 ip 10.60.11.254 | ||
+ | standby 11 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C1::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C1::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 11 | ||
+ | name groupe1 | ||
+ | exit | ||
+ | |||
+ | * Groupe 2 | ||
+ | |||
+ | conf t | ||
+ | no int vlan12 | ||
+ | int vlan12 | ||
+ | ip address 10.60.12.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 12 ip 10.60.12.254 | ||
+ | standby 12 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C2::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C2::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 12 | ||
+ | name groupe2 | ||
+ | exit | ||
+ | |||
+ | * Groupe 3 | ||
+ | |||
+ | conf t | ||
+ | no int vlan13 | ||
+ | int vlan13 | ||
+ | ip address 10.60.13.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 13 ip 10.60.13.254 | ||
+ | standby 13 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C3::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C3::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 13 | ||
+ | name groupe3 | ||
+ | exit | ||
+ | |||
+ | * Groupe 4 | ||
+ | |||
+ | conf t | ||
+ | no int vlan14 | ||
+ | int vlan14 | ||
+ | ip address 10.60.14.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 14 ip 10.60.14.254 | ||
+ | standby 14 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C4::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C4::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 14 | ||
+ | name groupe4 | ||
+ | exit | ||
+ | |||
+ | * Groupe 5 | ||
+ | |||
+ | conf t | ||
+ | no int vlan15 | ||
+ | int vlan15 | ||
+ | ip address 10.60.15.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 15 ip 10.60.15.254 | ||
+ | standby 15 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C5::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C5::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 15 | ||
+ | name groupe5 | ||
+ | exit | ||
+ | |||
+ | * Groupe 6 | ||
+ | |||
+ | conf t | ||
+ | no int vlan16 | ||
+ | int vlan16 | ||
+ | ip address 10.60.16.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 16 ip 10.60.16.254 | ||
+ | standby 16 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C6::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C6::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 16 | ||
+ | name groupe6 | ||
+ | exit | ||
+ | |||
+ | * Groupe 7 | ||
+ | |||
+ | conf t | ||
+ | no int vlan17 | ||
+ | int vlan17 | ||
+ | ip address 10.60.17.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 17 ip 10.60.17.254 | ||
+ | standby 17 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C7::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C7::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 17 | ||
+ | name groupe7 | ||
+ | exit | ||
+ | |||
+ | * Groupe 8 | ||
+ | |||
+ | conf t | ||
+ | no int vlan18 | ||
+ | int vlan18 | ||
+ | ip address 10.60.18.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 18 ip 10.60.18.254 | ||
+ | standby 18 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C8::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C8::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 18 | ||
+ | name groupe8 | ||
+ | exit | ||
+ | |||
+ | * Groupe 9 | ||
+ | |||
+ | conf t | ||
+ | no int vlan19 | ||
+ | int vlan19 | ||
+ | ip address 10.60.19.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 19 ip 10.60.19.254 | ||
+ | standby 19 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60C9::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C9::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 19 | ||
+ | name groupe9 | ||
+ | exit | ||
+ | |||
+ | * Groupe 10 | ||
+ | |||
+ | conf t | ||
+ | no int vlan20 | ||
+ | int vlan20 | ||
+ | ip address 10.60.20.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 20 ip 10.60.20.254 | ||
+ | standby 20 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60CA::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60CA::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 20 | ||
+ | name groupe10 | ||
+ | exit | ||
+ | |||
+ | * Groupe 11 | ||
+ | |||
+ | conf t | ||
+ | no int vlan21 | ||
+ | int vlan21 | ||
+ | ip address 10.60.21.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby 21 ip 10.60.21.254 | ||
+ | standby 21 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60CB::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60CB::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan 21 | ||
+ | name groupe11 | ||
+ | exit | ||
+ | |||
+ | ===== Vérifications du fonctionnement ===== | ||
+ | |||
+ | ====== show running-config ====== | ||
+ | |||
+ | * <code> show run </code> | ||
+ | |||
+ | [...] | ||
+ | ipv6 unicast-routing | ||
+ | ! | ||
+ | [...] | ||
+ | spanning-tree mode pvst | ||
+ | spanning-tree loopguard default | ||
+ | spanning-tree etherchannel guard misconfig | ||
+ | spanning-tree extend system-id | ||
+ | ! | ||
+ | [...] | ||
+ | interface GigabitEthernet0/1 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/2 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/3 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/4 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/5 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/6 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/7 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/8 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/9 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/10 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | channel-group 1 mode active | ||
+ | ! | ||
+ | interface GigabitEthernet0/11 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode trunk | ||
+ | ! | ||
+ | [...] | ||
+ | interface TenGigabitEthernet0/1 | ||
+ | switchport access vlan 131 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode access | ||
+ | ! | ||
+ | interface TenGigabitEthernet0/2 | ||
+ | switchport access vlan 43 | ||
+ | switchport trunk encapsulation dot1q | ||
+ | switchport mode access | ||
+ | ! | ||
+ | interface Vlan1 | ||
+ | ip address 10.60.1.252 255.255.255.0 | ||
+ | ! | ||
+ | interface Vlan11 | ||
+ | ip address 10.60.11.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C1::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C1::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 11 ip 10.60.11.254 | ||
+ | standby 11 preempt | ||
+ | ! | ||
+ | interface Vlan12 | ||
+ | ip address 10.60.12.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C2::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C2::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 12 ip 10.60.12.254 | ||
+ | standby 12 preempt | ||
+ | ! | ||
+ | interface Vlan13 | ||
+ | ip address 10.60.13.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C3::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C3::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 13 ip 10.60.13.254 | ||
+ | standby 13 preempt | ||
+ | ! | ||
+ | interface Vlan14 | ||
+ | ip address 10.60.14.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C4::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C4::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 14 ip 10.60.14.254 | ||
+ | standby 14 preempt | ||
+ | ! | ||
+ | interface Vlan15 | ||
+ | ip address 10.60.15.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C5::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C5::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 15 ip 10.60.15.254 | ||
+ | standby 15 preempt | ||
+ | ! | ||
+ | interface Vlan16 | ||
+ | ip address 10.60.16.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C6::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C6::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 16 ip 10.60.16.254 | ||
+ | standby 16 preempt | ||
+ | ! | ||
+ | interface Vlan17 | ||
+ | ip address 10.60.17.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C7::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C7::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 17 ip 10.60.17.254 | ||
+ | standby 17 preempt | ||
+ | ! | ||
+ | interface Vlan18 | ||
+ | ip address 10.60.18.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C8::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C8::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 18 ip 10.60.18.254 | ||
+ | standby 18 preempt | ||
+ | ! | ||
+ | interface Vlan19 | ||
+ | ip address 10.60.19.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60C9::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C9::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 19 ip 10.60.19.254 | ||
+ | standby 19 preempt | ||
+ | ! | ||
+ | interface Vlan20 | ||
+ | ip address 10.60.20.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60CA::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60CA::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 20 ip 10.60.20.254 | ||
+ | standby 20 preempt | ||
+ | ! | ||
+ | interface Vlan21 | ||
+ | ip address 10.60.21.252 255.255.255.0 | ||
+ | ipv6 address prefix 2001:660:4401:60CB::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60CB::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 21 ip 10.60.21.254 | ||
+ | standby 21 preempt | ||
+ | ! | ||
+ | interface Vlan43 | ||
+ | ip address 193.48.57.188 255.255.255.240 | ||
+ | ipv6 address 2001:660:4401:60C0::/64 eui-64 | ||
+ | ipv6 enable | ||
+ | ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | standby version 2 | ||
+ | standby 22 ip 193.48.57.190 | ||
+ | standby 22 preempt | ||
+ | ! | ||
+ | interface Vlan131 | ||
+ | ip address 192.168.222.9 255.255.255.248 | ||
+ | ipv6 address FE80::2 link-local | ||
+ | ipv6 enable | ||
+ | ipv6 rip tpima2a5 enable | ||
+ | ! | ||
+ | router ospf 1 | ||
+ | router-id 10.60.11.252 | ||
+ | log-adjacency-changes | ||
+ | summary-address 193.48.57.176 255.255.255.240 | ||
+ | summary-address 192.168.0.0 255.255.255.0 not-advertise | ||
+ | summary-address 10.60.0.0 255.255.0.0 not-advertise | ||
+ | redistribute connected subnets | ||
+ | network 192.168.222.8 0.0.0.7 area 2 | ||
+ | ! | ||
+ | [...] | ||
+ | ipv6 router rip tpima5sc | ||
+ | redistribute connected metric 1 | ||
+ | redistribute static metric 1 | ||
+ | ! | ||
+ | [...] | ||
+ | end | ||
+ | |||
+ | ====== Show Interface status ====== | ||
+ | |||
+ | * <code> show int status </code> | ||
+ | |||
+ | Port Name Status Vlan Duplex Speed Type | ||
+ | Gi0/1 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/2 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/3 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/4 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/5 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/6 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/7 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/8 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/9 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | Gi0/10 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 | ||
+ | |||
+ | Gi0/11 connected trunk a-full a-1000 10/100/1000BaseTX // Vers C2 | ||
+ | |||
+ | Gi0/12 notconnect 1 auto auto 10/100/1000BaseTX // Borne Wi-Fi du groupe 1 | ||
+ | |||
+ | Gi0/13 notconnect 1 auto auto 10/100/1000BaseTX | ||
+ | Gi0/14 notconnect 1 auto auto 10/100/1000BaseTX | ||
+ | [...] // // // // // | ||
+ | Gi0/47 notconnect 1 auto auto 10/100/1000BaseTX | ||
+ | Gi0/48 notconnect 1 auto auto 10/100/1000BaseTX | ||
+ | |||
+ | Te0/1 connected 131 full 10G 10GBase-SR // Vers SR52 | ||
+ | Te0/2 connected 43 full 10G 10GBase-SR // Vers Cordouan | ||
+ | |||
+ | ====== IPv6 ====== | ||
+ | |||
+ | * <code> show ipv6 route </code> | ||
+ | |||
+ | Switch#show ipv6 route | ||
+ | IPv6 Routing Table - Default - 53 entries | ||
+ | Codes: C - Connected, L - Local, S - Static, U - Per-user Static route | ||
+ | B - BGP, R - RIP, D - EIGRP, EX - EIGRP external | ||
+ | O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 | ||
+ | ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 | ||
+ | R ::/0 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:60::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6000::/56 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6002::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6003::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6004::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6005::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6006::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6007::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6008::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6009::/64 [120/2] | ||
+ | via FE80::42:1, Vlan131 | ||
+ | R 2001:660:4401:6011::/64 [120/2] | ||
+ | |||
+ | ====== IPv4 ====== | ||
+ | |||
+ | * <code> show ip route </code> | ||
+ | |||
+ | Nous avons bien de l'OSPF ('''O''') et OSPF NSSA external type 2 ('''E2''') | ||
+ | |||
+ | Switch#sh ip route | ||
+ | Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP | ||
+ | D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area | ||
+ | N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 | ||
+ | E1 - OSPF external type 1, E2 - OSPF external type 2 | ||
+ | i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 | ||
+ | ia - IS-IS inter area, * - candidate default, U - per-user static route | ||
+ | o - ODR, P - periodic downloaded static route | ||
+ | |||
+ | Gateway of last resort is 192.168.222.14 to network 0.0.0.0 | ||
+ | |||
+ | 193.51.182.0/30 is subnetted, 1 subnets | ||
+ | O E2 193.51.182.108 [110/20] via 192.168.222.14, 00:29:30, Vlan131 | ||
+ | O E2 192.168.12.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131 | ||
+ | O E2 192.168.29.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131 | ||
+ | O E2 192.168.28.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131 | ||
+ | 193.48.63.0/24 is variably subnetted, 2 subnets, 2 masks | ||
+ | O E2 193.48.63.0/26 [110/10] via 192.168.222.14, 00:29:30, Vlan131 | ||
+ | O IA 193.48.63.1/32 [110/13] via 192.168.222.14, 00:29:31, Vlan131 | ||
+ | O IA 193.49.225.0/24 [110/3] via 192.168.222.14, 00:29:31, Vlan131 | ||
+ | 192.168.44.0/29 is subnetted, 4 subnets | ||
+ | O E2 192.168.44.0 [110/10] via 192.168.222.14, 00:29:31, Vlan131 | ||
+ | O E2 192.168.44.8 [110/10] via 192.168.222.14, 00:29:31, Vlan131 | ||
+ | O E2 192.168.44.32 [110/10] via 192.168.222.14, 00:29:31, Vlan131 | ||
+ | |||
+ | ====Sécurisation des données via RAID5==== | ||
+ | =====Les partitions===== | ||
+ | |||
+ | Création des trois partitions 1G, | ||
+ | |||
+ | lvcreate -L1G -n IMA5_Dionysos_part1 virtual | ||
+ | lvcreate -L1G -n IMA5_Dionysos_part2 virtual | ||
+ | lvcreate -L1G -n IMA5_Dionysos_part3 virtual | ||
+ | |||
+ | Ajout de ces partitions lors de la création de la VM, dans le fichier Dionysos.cfg: | ||
+ | |||
+ | disk = [ | ||
+ | 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', | ||
+ | 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w' | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_part1,xvdf1,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_part2,xvdg1,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_part3,xvdh1,w', | ||
+ | ] | ||
+ | |||
+ | =====Création du RAID===== | ||
+ | Création du RAID5 à l'aide de mdadm | ||
+ | sudo mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 | ||
+ | |||
+ | Lors du premier essai l'erreur suivante est apparue | ||
+ | mdadm: cannot open /dev/xvdf1: Device or resource busy | ||
+ | |||
+ | Après quelques recherches, j'ai consulté le fichier /proc/mdstat | ||
+ | root@Dionysos:~# cat /proc/mdstat | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md127 : active (auto-read-only) raid5 xvdg1[0] xvdf1[2] | ||
+ | 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] | ||
+ | |||
+ | unused devices: <none> | ||
+ | |||
+ | J'ai donc arrêté md127 grâce à | ||
+ | mdadm --stop /dev/md127 | ||
+ | |||
+ | Puis j'ai relancé la commande de création du RAID | ||
+ | |||
+ | En relisant /proc/mdstat, j'ai obtenu | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : active raid5 xvdh1[2] xvdg1[1] xvdf1[0] | ||
+ | 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] | ||
+ | |||
+ | Daemonisation du volume RAID, pour que la VM le charge à chaque redémarrage | ||
+ | mdadm --monitor --daemonise /dev/md0 | ||
+ | |||
+ | On formate le RAID | ||
+ | root@Dionysos:~#mkfs.ext4 /dev/md0 | ||
+ | mke2fs 1.44.4 (18-Aug-2018) | ||
+ | Creating filesystem with 523264 4k blocks and 130816 inodes | ||
+ | Filesystem UUID: e7b32d68-7297-4957-9104-574fff233b93 | ||
+ | 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 | ||
+ | |||
+ | Dans le fichier /etc/fstab, nous demandons à notre VM de monter le volume à chaque redémarrage | ||
+ | /dev/md0 /media/raid ext4 defaults 0 1 | ||
+ | |||
+ | Puis nous créons un dossier | ||
+ | mkdir /media/raid | ||
+ | |||
+ | Dans ce fichier, nous créons un simple fichier texte blabla.txt | ||
+ | |||
+ | Comme demandé dans le sujet, j'ai arrêté ma VM. Puis je l'ai relancée, en désactivant une des partitions : xvdh1 | ||
+ | |||
+ | Résultat, dans le dossier /media/raid | ||
+ | root@Dionysos:/media/raid# ls | ||
+ | lost+found | ||
+ | |||
+ | ====Sécurisation Wifi par WPA2-EAP==== | ||
+ | |||
+ | Installation de freeradius | ||
+ | apt-get install freeradius | ||
+ | |||
+ | Dans le fichier /etc/freeradius/3.0/users on ajoute la ligne | ||
+ | |||
+ | Dionysos Cleartext-Password :=NOTRE_MDP_ROOT | ||
+ | |||
+ | Le serveur doit être configuré en PEAP-MSCHAPv2. Nous devons modifier : | ||
+ | |||
+ | -/etc/freeradius/3.0/mods-enabled/eap | ||
+ | default_eap_type = peap | ||
+ | |||
+ | -etc/freeradius/3.0/mods-enabled/mschap | ||
+ | mschap { | ||
+ | ... | ||
+ | use_mppe = yes | ||
+ | require_encryption = yes | ||
+ | require_strong = yes | ||
+ | } | ||
+ | |||
+ | Dans cette même section nous ajoutons la ligne | ||
+ | with_ntdomain_hack = yes | ||
+ | |||
+ | On ajoute les points d'accès dans notre configuration de serveur (fichier : /etc/freeradius/3.0/clients.conf) : | ||
+ | client 192.168.0.10/32 | ||
+ | { | ||
+ | secret = secretIMA5SC | ||
+ | shortname = accesDionysos | ||
+ | } | ||
+ | |||
+ | ====Crack WEP==== | ||
+ | |||
+ | * récuperer l'interface wifi | ||
+ | |||
+ | ip a | ||
+ | |||
+ | * mettre l'interface en écoute et récupérer le nouveau nom de l'interface (<interface2>) | ||
+ | |||
+ | airmon-ng start <interface> | ||
+ | |||
+ | * récupérer le '''Channel''' et le '''BSSID''' | ||
+ | |||
+ | airodump <interface2> | ||
+ | |||
+ | * récupérer des <code>#Data</code> | ||
+ | |||
+ | airodump-ng -c <CHANNEL> --bssid <BSSID> -w crack_wep <interface2> | ||
+ | |||
+ | * lancer un spam de paquets ARP | ||
+ | |||
+ | aireplay-ng --fakeauth 30 -a <BSSID> <interface> | ||
+ | |||
+ | * lancer le crack | ||
+ | |||
+ | aircrack-ng crack_wep01.cap | ||
+ | |||
+ | * resultat si assez de #Data | ||
+ | |||
+ | [[Fichier:Jdqb aircrack.png]] | ||
+ | |||
+ | |||
+ | == Les étapes == | ||
+ | |||
+ | === Introduction === | ||
+ | |||
+ | === Installation des systèmes d'exploitation === | ||
+ | |||
+ | ==== Installation dans la machine virtuelle Xen ==== | ||
+ | |||
+ | * L'accès se fait par SSH sur le dom0 <code>cordouan.insecserv.deule.net</code> | ||
+ | |||
+ | ===== Création d'une machine virtuelle Xen Linux sur Cordouan ===== | ||
+ | |||
+ | Pour ce faire, il faut utiliser la commande <code>xen-create-image</code> | ||
+ | |||
+ | Notre commande : <code>xen-create-image --hostname=Dionysos --ip=193.48.57.178 --netmask=255.255.255.240 --dir=/usr/local/xen</code> | ||
+ | |||
+ | * <code>--hostname=</code> : Le nom de votre machine | ||
+ | * <code>--ip=</code> : L'ip routée qui vous a été attribué lors de la réalisation du '''plan d'adressage''' | ||
+ | * <code>--netmask=</code> : Le masque réseau du plan d'adressage | ||
+ | * <code>--dir=</code> : l'emplacement des fichiers '''disk.img''' et '''swap.img'''. Dans le sous répertoire <code>domains/Dionysos</code> dans notre cas | ||
+ | |||
+ | ===== Modification du fichier de configuration de la machine virtuelle ===== | ||
+ | |||
+ | On retrouve ensuite le fichier de configuration '''.cfg''' de la VM à l'emplacement <code>/etc/xen</code> | ||
+ | |||
+ | * <code> nano /etc/xen/Dionysos.cfg</code> | ||
+ | |||
+ | [...] | ||
+ | # | ||
+ | # Disk device(s). | ||
+ | # | ||
+ | root = '/dev/xvda2 ro' | ||
+ | disk = [ | ||
+ | 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', | ||
+ | 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w', # Partition LVM pour /var | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_home,xvdb1,w', # Partition LVM pour /home | ||
+ | |||
+ | ] | ||
+ | [...] | ||
+ | # | ||
+ | # Networking | ||
+ | # | ||
+ | vif = [ 'ip=193.48.57.178 ,mac=00:16:3E:6F:61:EE,bridge=IMA5sc' ] # Ajout du bridge | ||
+ | [...] | ||
+ | |||
+ | ===== Lancement de la machine ===== | ||
+ | |||
+ | Toujours en root depuis cordouan | ||
+ | |||
+ | * Lancement : <code>xl create /etc/xen/Dionysos.cfg</code> | ||
+ | |||
+ | À l'issue du premier lancement, on récupère un mot de passe root automatiquement généré | ||
+ | |||
+ | * Une fois lancée : <code>xl console Dionysos</code> | ||
+ | |||
+ | On arrive donc sur la machine, il y a plusieurs modifications à effectuer : | ||
+ | |||
+ | ====== Autoriser le login en root sur la machine via SSH ====== | ||
+ | |||
+ | Modification du fichier <code>/etc/ssh/sshd_config</code> nous décommentons la ligne <code>PermitRootLogin yes</code> | ||
+ | |||
+ | * Modifier le mot de passe root : <code>passwd</code> | ||
+ | |||
+ | ====== Réglage du réseau ====== | ||
+ | |||
+ | * Modification du fichier <code>/etc/network/interfaces</code> pour ajouter <code>gateway 193.48.57.190</code> à l'interface eth0 | ||
+ | |||
+ | [...] | ||
+ | # The primary network interface | ||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address 193.48.57.178 | ||
+ | netmask 255.255.255.240 | ||
+ | gateway 193.48.57.190 | ||
+ | [...] | ||
+ | |||
+ | On éteint puis allume à nouveau l'interface avec <code>ifdown eth0</code> et <code>ifup eth0</code> | ||
+ | |||
+ | * Ajout de la route par défaut pour utiliser le routeur virtuel de l'architecture | ||
+ | |||
+ | <code>ip route add default via 193.48.57.190 dev eth0 onlink</code> | ||
+ | |||
+ | l'IP '''193.48.57.190''' est celle du routeur virtuel. Elle a été définie lors du plan d'adressage | ||
+ | |||
+ | === 3 Architecture réseau === | ||
+ | |||
+ | ==== 3.1 L'architecture générale ==== | ||
+ | |||
+ | ==== 3.2 Les réseaux virtuels ==== | ||
+ | |||
+ | Mise à disposition d'un réseau IPv4 routé : <code>193.48.57.160/27</code> dans le VLAN 110 de l'école | ||
+ | |||
+ | Lors de la réalisation de ce TP, le réseau était déjà découpé en deux partie. | ||
+ | |||
+ | La première pour les IMA2A5 : allant de <code>193.48.57.160/28</code> à <code>193.48.57.175/28</code> | ||
+ | La seconde était encore inutilisée : Nous avions donc à disposition les adresses allant de <code>193.48.57.176/28</code> à <code>193.48.57.191/28</code> | ||
+ | |||
+ | Avec un masque <code>/28</code> ('''240''') nous avions donc 16 adresses dans le réseau <code>193.48.57.176/28</code> | ||
+ | |||
+ | Nous avons donc établi avec le groupe routeur 2 (Binôme 11) le plan d'adressage suivant | ||
+ | |||
+ | * .176 : adresse de réseau | ||
+ | * .177 à .187 : les adresses IP des machines virtuelles Xen | ||
+ | * .188 : adresse du '''Routeur 1''' | ||
+ | * .189 : adresse du '''Routeur 2''' | ||
+ | * .190 : adresse du '''Routeur Virtuel''' | ||
+ | * .191 : adresse de diffusion | ||
+ | |||
+ | Nous avions également à utiliser un réseau IPv4 non routé (<code>10.60.0.0/16</code>) où chaque binôme devait avoir un sous-réseau. | ||
+ | |||
+ | Les IMA2A5 avaient choisi d'utiliser des réseau de la forme : <code>10.60.N.0/24</code> où '''N''' est le numéro de binôme, variant de 1 à 5 dans leur cas. | ||
+ | |||
+ | Nous avons repris cette idée en prenant la forme <code>10.60.10+N.0/24</code> avec pour choix, en vue de la configuration des routeurs : | ||
+ | |||
+ | * Adresse du routeur 1 : 10.60.11.252/24 | ||
+ | * Adresse du routeur 2 : 10.60.11.253/24 | ||
+ | * Adresse du routeur virtuel : 10.60.11.254/24 | ||
+ | |||
+ | Rappel du plan d'adressage | ||
+ | |||
+ | * [https://wiki-ima.plil.fr/mediawiki//index.php/TP_sysres_IMA5sc_2018/2019 IMA5sc 2018/19] | ||
+ | |||
+ | ==== 3.3 Le routage de sites (IPv4) - Routeur Cisco 3560 ==== | ||
+ | |||
+ | Nous nous sommes chargés de la configuration du routeur 1, le Cisco 3560. | ||
+ | |||
+ | Comme nous étions situés sur la Zabeth09, nous avons pu utiliser un câble muni d'un adaptateur pour relier en USB la Zabeth au port console du routeur. | ||
+ | |||
+ | Nous avons ensuite utilisé <code>minicom -os</code> en '''root''' avec les réglages suivants : | ||
+ | |||
+ | * '''/dev/ttyUSB0''' | ||
+ | * '''9600 8N1''' | ||
+ | * Hardware Flow Control : '''No''' | ||
+ | |||
+ | On arrive ensuite sur le routeur. '''Switch>''' | ||
+ | |||
+ | Rappel des commandes Cisco utiles (ou [https://tvantroys.plil.fr/IMA4/network/ Cours de réseau IMA4] | ||
+ | |||
+ | * <code>enable</code> : permet de passer en EXEC privilégié sur le Cisco | ||
+ | * <code>configure terminal</code> : peut aussi être remplacé par <code>conf t</code> pour passer en mode de configuration globale | ||
+ | * <code>exit</code> : pour retourner à un niveau prédédent | ||
+ | * <code>write</code> : au niveau privilégié de base, permet de sauvegarder la configuration | ||
+ | * <code>interface NOM_INTERFACE</code> : pour configurer une interface (peut aussi s'écrire <code>int NOM_INTERFACE</code>) | ||
+ | * <code>?</code> : pour afficher les commandes possibles au niveau actuel | ||
+ | |||
+ | Dans cette partie on s'intéresse à la configuration des interfaces en IPv4 : | ||
+ | |||
+ | Au niveau de l'architecture, nous voulons que le réseau soit redondant, ainsi il faut que les deux routeurs puissent effectuer le même travail mais pas en même temps. | ||
+ | |||
+ | L'un des deux réalise le travail (il est prioritaire) et l'autre vérifie que le travail est effectué, en cas d'arrêt, il prend le relais. | ||
+ | |||
+ | Dans notre cas, le groupe 11 (routeur 2) a décidé de mettre une priorité basse dans la configuration de leur routeur. | ||
+ | |||
+ | Rappel : Le réseau s'organise sur plusieurs VLANs | ||
+ | |||
+ | * VLAN 1 : Pour les autres composants tels que la borne wifi configurée par le groupe 1. | ||
+ | * VLAN 43 : Il s'agit du VLAN où sont les machines XEN IMA5. Les IMA2A5 avaient opté pour le VLAN 42. | ||
+ | * VLAN 131 : Le VLAN d'interconnexion de l'école. (SR52), les IMA2A5 utilisent le VLAN 130. | ||
+ | * VLAN 11 à 21 : Un VLAN par binôme, c'est dans ces VLAN que nous utiliserons les adresses de la forme '''10.60.10+N.X'''. Comme pour les adresses, nous avons opté pour des numéros de la forme 10+Numéro de groupe. | ||
+ | |||
+ | ===== Configuration du VLAN 1 ===== | ||
+ | |||
+ | Il est juste question d'attribuer au routeur une adresse dans le vlan 1 pour la borne wifi | ||
+ | |||
+ | interface Vlan1 | ||
+ | ip address 10.60.1.252 255.255.255.0 | ||
+ | |||
+ | ===== Configuration du VLAN 43 ===== | ||
+ | |||
+ | En partant du mode privilégié : | ||
+ | |||
+ | conf t | ||
+ | no int vlan43 | ||
+ | int vlan43 | ||
+ | ip address 193.48.57.188 255.255.255.240 | ||
+ | standby version 2 | ||
+ | standby 22 ip 193.48.57.190 | ||
+ | standby 22 preempt | ||
+ | exit | ||
+ | |||
+ | On commence par supprimer l'interface (<code>no int vlan43</code>) en cas de doute sur sa configuration puis on la recrée et on attribue au routeur une adresse IP (188 = routeur 1) dans le VLAN (190 = routeur virtuel). | ||
+ | |||
+ | ===== Configuration des VLANs 11 à 21 ===== | ||
+ | |||
+ | * Remplacer <code>XX</code> par le numéro du VLAN et <code>N</code> dans <code>name groupeN</code> par le numéro du groupe | ||
+ | |||
+ | conf t | ||
+ | no int vlanXX | ||
+ | int vlanXX | ||
+ | ip address 10.60.XX.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby XX ip 10.60.XX.254 | ||
+ | standby XX preempt | ||
+ | exit | ||
+ | vlan XX | ||
+ | name groupeN | ||
+ | exit | ||
+ | |||
+ | ===== Vérification ===== | ||
+ | |||
+ | Pour tester on peut tenter de ping le routeur depuis une source exterieure ou alors utiliser un routeur pour ping l'autre. | ||
+ | |||
+ | * Ping depuis une machine virtuelle vers '''193.48.57.188''' (routeur 1) | ||
+ | |||
+ | [[Fichier:Ping dionysos r1.png]] | ||
+ | |||
+ | * Ping depuis le routeur 1 vers '''193.48.57.189''' (routeur 2) | ||
+ | |||
+ | [[Fichier:Ping r1 r2.png]] | ||
+ | |||
+ | ==== 3.4 Le routage de site (IPv6) ==== | ||
+ | |||
+ | Dans cette partie, nous retournons dans la configuration des interfaces pour ajouter un routage via IPv6. | ||
+ | |||
+ | Dans le sujet il est indiqué que les adresses disponibles se situent à partir de <code>2001:660:4401:60b0::/64</code> mais les premières adresses étant prises par les IMA2A5 nous utiliserons les adresses en '''C0''' et plus plutôt qu'à partir de '''B0''' | ||
+ | |||
+ | * ajouter à la configuration globale | ||
+ | |||
+ | ipv6 unicast-routing | ||
+ | |||
+ | ===== Configuration du VLAN 43 ===== | ||
+ | |||
+ | En partant du mode privilégié : | ||
+ | |||
+ | conf t | ||
+ | no int vlan43 | ||
+ | int vlan43 | ||
+ | ip address 193.48.57.188 255.255.255.240 | ||
+ | standby version 2 | ||
+ | standby 22 ip 193.48.57.190 | ||
+ | standby 22 preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address 2001:660:4401:60C0::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | |||
+ | On supprime à nouveau l'interface (mais ce n'est pas nécessaire) pour y imposer la nouvelle configuration de l'interface | ||
+ | |||
+ | ===== Configuration des VLANs 11 à 21 (avec IPv6) ===== | ||
+ | |||
+ | Remplacer | ||
+ | |||
+ | * <code>XX</code> par le numéro du VLAN | ||
+ | * <code>N</code> dans <code>name groupeN</code> par le numéro du groupe | ||
+ | * <code>HH</code> dans la partie IPv6 par '''C1''' à '''CB''' suivant le groupe | ||
+ | |||
+ | conf t | ||
+ | no int vlanXX | ||
+ | int vlanXX | ||
+ | ip address 10.60.XX.252 255.255.255.0 | ||
+ | standby version 2 | ||
+ | standby XX ip 10.60.XX.254 | ||
+ | standby XX preempt | ||
+ | ipv6 enable | ||
+ | ipv6 address prefix 2001:660:4401:60HH::/64 eui-64 | ||
+ | ipv6 nd prefix 2001:660:4401:60HH::/64 1000 900 | ||
+ | ipv6 nd router-preference High | ||
+ | exit | ||
+ | vlan XX | ||
+ | name groupeN | ||
+ | exit | ||
+ | |||
+ | ==== 3.5 Interconnexion avec Internet IPv4 ==== | ||
+ | |||
+ | Comme les IMA2A5 utilisent déjà le VLAN130 ('''192.168.222.0/29''') nous utilisons le VLAN131 <code>192.168.222.8/29</code> | ||
+ | |||
+ | * <code>192.168.222.9/29</code> : Routeur 1 | ||
+ | * <code>192.168.222.10/29</code> : Routeur 2 | ||
+ | |||
+ | ===== Configuration du VLAN 131 (IPv4 Uniquement) ===== | ||
+ | |||
+ | conf t | ||
+ | no int vlan 131 | ||
+ | int vlan 131 | ||
+ | ip address 192.168.222.9 255.255.255.248 | ||
+ | exit | ||
+ | |||
+ | ===== Configuration OSPF ===== | ||
+ | |||
+ | router ospf 1 | ||
+ | router-id 10.60.11.252 | ||
+ | log-adjacency-changes | ||
+ | summary-address 193.48.57.176 255.255.255.240 | ||
+ | summary-address 192.168.0.0 255.255.255.0 not-advertise | ||
+ | summary-address 10.60.0.0 255.255.0.0 not-advertise | ||
+ | redistribute connected subnets | ||
+ | network 192.168.222.8 0.0.0.7 area 2 | ||
+ | |||
+ | ==== 3.6 Interconnexion avec Internet IPv6 ==== | ||
+ | |||
+ | conf t | ||
+ | ipv6 router rip tpima5sc | ||
+ | redistribute connected metric 1 | ||
+ | redistribute rip 1 metric 1 | ||
+ | redistribute static metric 1 | ||
+ | ===== Configuration du VLAN 131 (IPv4 et IPv6) ===== | ||
+ | |||
+ | conf t | ||
+ | no int vlan 131 | ||
+ | int vlan 131 | ||
+ | ip address 192.168.222.9 255.255.255.248 | ||
+ | ipv6 address fe80::2 link-local | ||
+ | ipv6 enable | ||
+ | ipv6 rip tpima2a5 enable | ||
+ | exit | ||
+ | |||
+ | ===== Vérification avec Google.com ===== | ||
+ | |||
+ | On récupère une IPv6 de google avec la commande <code>host</code> depuis une zabeth puis on tente depuis le routeur de ping cette adresse | ||
+ | |||
+ | [[Fichier:Ping v6 google.png]] | ||
+ | |||
+ | ==== 3.7 Sécurisation du réseau ==== | ||
+ | |||
+ | === 4 Services Internet === | ||
+ | |||
+ | ==== 4.1 Serveur SSH ==== | ||
+ | |||
+ | La première étape est de connecter la VM sur le routeur. Ainsi elle aura accès à internet. | ||
+ | Il faut donc ajouter la gateway au système. Cet ajout ce fait dans le fichier /etc/network/interfaces | ||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address 193.48.57.178 | ||
+ | netmask 255.255.255.240 | ||
+ | gateway 193.48.57.190 | ||
+ | |||
+ | '''Attention''', la gateway doit obligatoirement se trouver après le netmask. | ||
+ | |||
+ | Pour un meilleur fonctionnement, il est nécessaire de préciser le proxy. Il faut donc ajouter dans le fichier .profile. | ||
+ | On y accède via cd ~, puis nano .profile | ||
+ | |||
+ | http_proxy="http://proxy.polytech-lille.fr:3128" | ||
+ | https_proxy="https://proxy.polytech-lille.fr:3128" | ||
+ | |||
+ | Dans le terminal : | ||
+ | ip route add default via 193.48.57.190 dev eth0 onlink | ||
+ | |||
+ | |||
+ | Afin de permettre une connection SSH avec la VM, il faut autoriser les connexions en utilisateur root. | ||
+ | |||
+ | Dans le fichier /etc/ssh/sshd_config nous décommentons la ligne : | ||
+ | |||
+ | PermitRootLogin yes | ||
+ | |||
+ | ==== 4.2 Serveur DNS ==== | ||
+ | Afin de mettre en place ce serveur, il faut installer bind9 et apache2. | ||
+ | |||
+ | apt-get install bind9 apache2 | ||
+ | |||
+ | Pour configurer le DNS, tout se passe dans le dossier /etc/bind. Créé au cours de l'installation. | ||
+ | |||
+ | Les différents fichiers qu'il contient devront être modifiée pour s'adapter au projet. | ||
+ | |||
+ | '''Premier fichier : named.conf.options''' | ||
+ | |||
+ | Il permet de mettre en place différentes options et configurations. Nous l'utilisons plus tard pour la suite du TP | ||
+ | |||
+ | options { | ||
+ | ... | ||
+ | dnssec-validation auto; | ||
+ | auth-nxdomain no; | ||
+ | listen-on-v6 { any; }; | ||
+ | allow-recursion{localhost;}; | ||
+ | }; | ||
+ | |||
+ | Si ces options ne sont pas présentes, il faut les ajouter pour faire fonctionner correctement notre serveur. | ||
+ | |||
+ | '''Deuxième fichier : named.conf.local''' | ||
+ | Ce fichier définit le comportement de la VM : Master ou Slave | ||
+ | |||
+ | Il renvoi au fichier de gestion des @IP. | ||
+ | |||
+ | Et permet d'autoriser des transferts vers des @IP | ||
+ | |||
+ | zone "dionysos.space"{ | ||
+ | type master; | ||
+ | file "/etc/bind/db.dionysos.space"; | ||
+ | allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net | ||
+ | }; | ||
+ | |||
+ | Important la ligne file pointe à la base sur le fichier db.local | ||
+ | |||
+ | Il est possible de modifier ce fichier, mais il est préférable de le copier sous un nom qui nous convient. | ||
+ | cp db.local db.dionysos.space | ||
+ | |||
+ | '''Troisième fichier : db.dionysos.space''' | ||
+ | Ce fichier permet de faire le lien avec l'adresse IP de notre VM | ||
+ | |||
+ | $TTL 604800 | ||
+ | |||
+ | @ IN SOA ns.dionysos.space. root.dionysos.space ( | ||
+ | 2 ; Serial | ||
+ | 604800 ; Refresh | ||
+ | 86400 ; Retry | ||
+ | 2419200 ; Expire | ||
+ | 604800 ) ; Negative Cache TTL | ||
+ | ; | ||
+ | IN NS ns.dionysos.space. ;dns principal | ||
+ | IN NS ns6.gandi.net. ;dns secondaire | ||
+ | @ IN A 193.48.57.178 ;acces sans le "www." | ||
+ | ns IN NS 193.48.57.178 ;acces avec http https | ||
+ | www IN A 193.48.57.178; ;acces avec le "www. | ||
+ | |||
+ | |||
+ | Une fois tous ces fichiers mis en place, il n'y plus qu'à relancer le serveur DNS | ||
+ | service bind9 restart | ||
+ | |||
+ | Il faut un certain temps pour que toutes ces informations soient déployées sur internet. | ||
+ | Le meilleur moyen de tester est cette adresse [https://dnschecker.org/] | ||
+ | |||
+ | ==== 4.3 Sécurisation de site web par certificat ==== | ||
+ | La première étape consiste à créé des fichiers qui correspondent à la clé SSH de notre domaine. | ||
+ | |||
+ | openssl req -nodes -newkey rsa:2048 -sha1 -keyout dionysos.space.key -out dionysos.space.csr | ||
+ | ... | ||
+ | Common Name (e.g. server FQDN or YOUR name) []:dionysos.space et dionysos.space.key | ||
+ | Email Address []:qboens@polytech-lille.net | ||
+ | |||
+ | Cette opération génére deux fichiers : dionysos.space.crt et dionysos.space.key | ||
+ | |||
+ | Dans Gandi, il faut d'abord acheter un certificat, dans l'onglet correspondant. | ||
+ | |||
+ | Plusieurs étapes de validation vont alors se lancer. | ||
+ | |||
+ | L'une de ces étapes peut se faire via deux méthodes : | ||
+ | |||
+ | (1)le contrôle du DNS du domaine (risqué car si le DNS n'est pas correctement en place) | ||
+ | |||
+ | (2)la demande d'un fichier. Ce fichier est fourni par Gandi, et doit être transféré sur la VM via SSH. | ||
+ | |||
+ | C'est la méthode (2) que nous avons utilisée. | ||
+ | |||
+ | |||
+ | Une fois cette étape faite on récupére sur gandi GandiStandardSSLCA2.pem, dans l'onglet du certificat.Ce fichier devra être lui aussi téléchargé sur la VM via SSH. | ||
+ | |||
+ | Il permettra de garantir que la VM, et le domaine Dionysos, sont bien protégés par le certificat. | ||
+ | |||
+ | |||
+ | Tous les fichiers sont placés dans le répertoire SSL_certif | ||
+ | |||
+ | mv dionysos.space.csr SSL_certif | ||
+ | mv dionysos.space.key SSL_certif | ||
+ | mv GandiStandardSSLCA2.pem SSL_certif | ||
+ | |||
+ | ==== 4.4 Sécurisation de serveur DNS par DNSSEC ==== | ||
+ | La sécurisation via DNSSEC, consiste à créé un fichier signé. | ||
+ | |||
+ | C'est à dire que le fichier sera crypté via un ensemble de clefs. Une privée et une publique. | ||
+ | |||
+ | Ainsi sans ces clefs, il sera difficile d'accéder au domaine et de le pirater. | ||
+ | |||
+ | |||
+ | Création de la clef KSK | ||
+ | |||
+ | dnssec-keygen -a RSASHA1 -b 2048 -f KSK -r /dev/urandom -n ZONE dionysos.space | ||
+ | |||
+ | Création de la clef ZSK | ||
+ | |||
+ | dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE dionysos.space | ||
+ | |||
+ | Ces clefs ont été crées dans le dossier SSL_certif | ||
+ | |||
+ | Sur le site gandi nous ajoutons les deux clefs, dans l'onglet DNSSEC de notre domaine | ||
+ | |||
+ | Création d'un fichier signé à partir de db.dionysos.space | ||
+ | |||
+ | dnssec-signzone -o dionysos.space -k dionysos-ksk.key /etc/bind/db.dionysos.space dionysos-zsk.key | ||
+ | |||
+ | |||
+ | Dans named.conf.local nous changons le fichier cible, pour que bind9 prenne en compte db.dionysos.space.signed, qui est le fichier signé | ||
+ | |||
+ | zone "dionysos.space"{ | ||
+ | type master; | ||
+ | file "/etc/bind/db.dionysos.space.signed"; | ||
+ | allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net | ||
+ | }; | ||
+ | |||
+ | Puis nous relançons bind9 | ||
+ | |||
+ | service bind9 restart | ||
+ | |||
+ | Un bon moyen de contrôler le déploiement de nos clefs : [http://dnsviz.net/] | ||
+ | |||
+ | === 5 Tests d'intrusion === | ||
+ | |||
+ | ==== 5.1 Intrusion par changement d'adresse MAC ==== | ||
+ | |||
+ | ==== 5.2 Cassage de clef WEP d'un point d'accès wifi ==== | ||
+ | |||
+ | ==== 5.3 Cassage de mot de passe WPA-PSK par force brute ==== | ||
+ | |||
+ | === 6 Réalisation === | ||
+ | |||
+ | * '''REMARQUE''' Nous n'avons pas eu à nous occuper des points '''6.3''', '''6.4''' et '''6.5''' du sujet | ||
+ | |||
+ | ==== 6.1 Sécurisation de données ==== | ||
+ | La sécurisation des données consiste à mettre en place un système permettant de récupérer les données, si elles venaient à être perdues. | ||
+ | |||
+ | Pour ce faire, nous mettons en place un RAID. | ||
+ | |||
+ | Cette méthode permet de sauvegarder les données sur différentes partitions. | ||
+ | |||
+ | Si une des partitions venait à disparaitre, nous pourrions la recréer à partir des autres. | ||
+ | |||
+ | |||
+ | Création des trois partitions 1G, dans courdouan, | ||
+ | |||
+ | lvcreate -L1G -n IMA5_Dionysos_part1 virtual | ||
+ | lvcreate -L1G -n IMA5_Dionysos_part2 virtual | ||
+ | lvcreate -L1G -n IMA5_Dionysos_part3 virtual | ||
+ | |||
+ | Ajout de ces partitions lors de la création de la VM, dans le fichier Dionysos.cfg: | ||
+ | |||
+ | disk = [ | ||
+ | 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', | ||
+ | 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w' | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_part1,xvdf1,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_part2,xvdg1,w', | ||
+ | 'phy:/dev/virtual/IMA5_Dionysos_part3,xvdh1,w', | ||
+ | ] | ||
+ | |||
+ | '''Création du RAID''' | ||
+ | |||
+ | Création du RAID5 à l'aide de mdadm | ||
+ | |||
+ | sudo mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 | ||
+ | |||
+ | Lors du premier essai l'erreur suivante est apparue | ||
+ | |||
+ | mdadm: cannot open /dev/xvdf1: Device or resource busy | ||
+ | |||
+ | Après quelques recherches, j'ai consulté le fichier /proc/mdstat | ||
+ | |||
+ | root@Dionysos:~# cat /proc/mdstat | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md127 : active (auto-read-only) raid5 xvdg1[0] xvdf1[2] | ||
+ | 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] | ||
+ | |||
+ | unused devices: <none> | ||
+ | |||
+ | J'ai donc arrêté md127 grâce à | ||
+ | |||
+ | mdadm --stop /dev/md127 | ||
+ | |||
+ | Puis j'ai relancé la commande de création du RAID | ||
+ | |||
+ | En relisant /proc/mdstat, j'ai obtenu | ||
+ | |||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : active raid5 xvdh1[2] xvdg1[1] xvdf1[0] | ||
+ | 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] | ||
+ | |||
+ | Daemonisation du volume RAID, pour que la VM le charge à chaque redémarrage | ||
+ | |||
+ | mdadm --monitor --daemonise /dev/md0 | ||
+ | |||
+ | On formate le RAID | ||
+ | |||
+ | root@Dionysos:~#mkfs.ext4 /dev/md0 | ||
+ | mke2fs 1.44.4 (18-Aug-2018) | ||
+ | Creating filesystem with 523264 4k blocks and 130816 inodes | ||
+ | Filesystem UUID: e7b32d68-7297-4957-9104-574fff233b93 | ||
+ | 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 | ||
+ | |||
+ | Dans le fichier /etc/fstab, nous demandons à notre VM de monter le volume à chaque redémarrage | ||
+ | |||
+ | /dev/md0 /media/raid ext4 defaults 0 1 | ||
+ | |||
+ | Puis nous créons un dossier | ||
+ | |||
+ | mkdir /media/raid | ||
+ | |||
+ | Dans ce fichier, nous créons un simple fichier texte blabla.txt | ||
+ | |||
+ | Comme demandé dans le sujet, j'ai arrêté ma VM. Puis je l'ai relancée, en désactivant une des partitions : xvdh1 | ||
+ | |||
+ | Résultat, dans le dossier /media/raid | ||
+ | |||
+ | root@Dionysos:/media/raid# ls | ||
+ | lost+found | ||
+ | |||
+ | ==== 6.2 Cryptage de données ==== | ||
− | |||
− | + | ==== 6.6 Sécurisation Wifi par WPA2-EAP ==== |
Version actuelle datée du 3 janvier 2019 à 10:58
Sommaire
- 1 TP GIS4 - Conteneur réalisation manuelle
- 2 Création des conteneurs via Docker
- 3 TP PRA - Mise en place du routeur Catalyst 3650
- 3.1 Déroulement des Séances
- 3.2 Les étapes
- 3.2.1 Introduction
- 3.2.2 Installation des systèmes d'exploitation
- 3.2.3 3 Architecture réseau
- 3.2.4 4 Services Internet
- 3.2.5 5 Tests d'intrusion
- 3.2.6 6 Réalisation
TP GIS4 - Conteneur réalisation manuelle
Création des systèmes fichier
Dans le répertoire /home/pifou/Documents/IMA5/JDQB/PRA/ (Zabeth09)
dd if=/dev/zero of=disk1 bs=1024k count=10240
mkfs disk1
Dans /tmp création de répertoires pour le stockage
mkdir JDQB_DISK1 mkdir JDQB_DISK2 mkdir JDQB_DISK3
mount -o loop disk1 /tmp/JDQB_DISK1
debootstrap --include=apache2,nano stable /tmp/JDQB_DISK1
echo "proc /proc defaults 0 0" >> /tmp/JDQB_DISK1/etc/fstab
umount -d /tmp/JDQB_DISK1
On clone le disk1 pour avoir disk2 et disk3 (cp)
On remonte les trois disques
mount -o loop diskX /tmp/JDQB_DISKX
Lancement des conteneurs
Ouverture de trois terminaux en root, puis utilisation de la commande dans chacun des terminaux
unshare -n -u -p -f -m chroot /tmp/JDQB_DISKX /bin/sh -c "mount /proc ; /bin/bash" ;
Dans chaque conteneur
ip l set eth0 up
Cette commande s'applique aussi à eth1 pour le conteneur 1
Mise en place commutateur virtuel
Création des interfaces liées
iface_virt_X (interface virtuelle X) <-> iface_ns_X (interface namespace X)
ip link add iface_virt_1 type veth peer name iface_ns_1 ip link add iface_virt_2 type veth peer name iface_ns_2 ip link add iface_virt_3 type veth peer name iface_ns_3
Création de notre propre pont
ip link add jdqb_bridge type bridge
Ajout des parties des interfaces dans le commutateur
ip link set iface_virt_1 master jdqb_bridge ip link set iface_virt_2 master jdqb_bridge ip link set iface_virt_3 master jdqb_bridge
Activation des interfaces
ip link set iface_virt_1 up ip link set iface_virt_2 up ip link set iface_virt_3 up
Activation du pont
ip address add dev jdqb_bridge 192.168.0.1/24
Montée du pont
ip link set jdqb_bridge up
Connexion des conteneurs à leur interface virtuelle respective
ip link set iface_ns_1 netns /proc/<PID1>/ns/net name eth0 ip link set iface_ns_2 netns /proc/<PID2>/ns/net name eth0 ip link set iface_ns_3 netns /proc/<PID3>/ns/net name eth0
Obtention des PIDs
ps aux | grep unshare
Quatrième interface, reliant le mandataire web inverse (conteneur 1) et le bridge de zabeth09
ip link add iface_virt_0 type veth peer name iface_ns_0 ip link set iface_virt_0 master bridge ip link set iface_virt_0 up ip link set iface_ns_0 netns /proc/<PID1>/ns/net name eth1
Modification de la table IP
iptables -F iptables -F -t nat iptables -P FORWARD ACCEPT
Attribution des adresses aux conteneurs
nsenter -t <PID1> -n ip address add dev eth0 192.168.0.91/24 nsenter -t <PID2> -n ip address add dev eth0 192.168.0.92/24 nsenter -t <PID3> -n ip address add dev eth0 192.168.0.93/24
nsenter -t <PID1> -n ip address add dev eth1 172.26.145.90/24
Mandataire inverse
Configuration Apache2
Afin de configurer notre premier conteneur en mandataire inverse, nous modifions le fichier : /etc/apache2/sites-available/000-default.conf
Nous ajoutons :
<VirtualHost *:80> ... ProxyPass /site1 http://192.168.0.92/ ProxyPassReverse /site1 http://192.168.0.92/ ProxyPass /site2 http://192.168.0.93/ ProxyPassReverse /site2 http://192.168.0.93/ ProxyRequests Off ... </VirtualHost>
Configuration réseau
Ajout de la route par défaut (Polytech) :
ip route add default via 172.26.145.254
Configuration eth1 :
ip add add dev eth1 172.26.145.90/24 ip link set eth1 up
11h25 => Serveurs Web unshare OK
Création des conteneurs via Docker
InstructionsTexte italique
docker run -i -t debian
export http
apt-get install apache nano vi
En dehors conteneur docker commit <image name> sur le conteneur
Creer réseau privé docker network create
(2X)docker run -i -t <image name> --net nom réseau
docker run -i -t <image name> --net nom réseau -p 80:80
DNS : vérifier les @IP des conteneurs LE mandataire inverse doit avoir @IP de zabeth
Procédure
Modification des paramètres de docker dans /etc/default/docker, commenter la ligne DOCKER_EPTS="--iptables=false"
iptables-save service docker restart
docker run -i -t debian /bin/bash
Dans le conteneur
export http_proxy export https_proxy
apt-get update apt-get install apache2 nano vim
Récupération ID du docker
docker ps
Commit sur le docker
docker commit <ID> apache2
Création du network
docker network create jdqb_network
Lancement des conteneurs
docker run -i -t --net jdqb_network apache2 docker run -i -t --net jdqb_network apache2 docker run -i -t --net jdqb_network -p 80:80 apache2
Dans chaque conteneur
ip a
Dans le conteneur mandataire
nano /etc/apache2/sites-enabled/000-default.conf
Ajout des proxypass
ProxyPass /site1 http://<IP conteneur 1>/ ProxyPassReverse /site1 http://<IP conteneur 1>/ ProxyPass /site2 http://<IP conteneur 2>/ ProxyPassReverse /site2 http://<IP conteneur 2>/ ProxyRequests Off
Ajout d'un DNS dans GANDI @plil.space
Type A , TTL 1800, nom jdqb-docker, <ip bridge zabeth>
Sur les trois conteneurs
service apache2 restart
10h20 Serveurs Web (docker) OK
TP PRA - Mise en place du routeur Catalyst 3650
- Sujet : Lien - rex.plil.fr
Déroulement des Séances
Séance 1 : 26/11/2018
Nous avons à notre disposition l'adresse IPV4 routée 193.48.57.160/27.
Nous disposons également de l'adresse IPV4 non routée 10.60.0.0/16.
Découpage réseau IPV4 routé en deux sous réseaux
Nous divisons l'IPV4 routée en deux sous réseaux.
Pour réaliser leur TP, les IMA2A5 ont utilisés les adresses comprises entre 193.48.57.160/28 et 193.48.57.175/28.
Nous utiliserons donc le second sous réseau : 193.48.57.176/28 à 193.48.57.191/28.
Par conséquent l'adresse IP du routeur 1 est 193.48.57.188/28
Celle du routeur 2 est 193.48.57.189/28
Et enfin le routeur virtuel, pour la diffusion entre routeurs, est 193.48.57.190/28
Découpage du réseau IPV4 non routée en sous réseaux
Nous découpons notre réseau en 254 sous réseaux disponibles. Les IMA2A5 ont utilisés les 5 premiers 10.60.1.0/24 à 10.60.5.0/24 .
Nous prendrons donc les adresses entre 10.60.11.0/24 et 10.60.21.0/24 .
Ces adresses seront routées vers les adresses comprises entre 193.48.57.177/28 et 193.48.57.187/28 .
Séance 2 : 27/11/2018
Configuration du routeur Catalyst 3560
Mise en place du routeur et connexion à celui ci
La configuration du routeur se fera via minicom.
Vérification de l'interface à utiliser :
ls /dev/ | grep ttyUSB
Notre routeur est connecté sur ttyUSB0.
minicom -os
Les paramètres de configuration de minicom sont les suivants :
- port /dev/ttyUSB0
- baud 9600
- 8 bits
- pas de bit de parité
- 1 bit de stop
- pas de contrôle de flux
Configuration du routeur : Configuration des ports
Passage en administrateur :
Router>enable Router#
On liste les interfaces
Router#show interface status Port Name Status Vlan Duplex Speed Type Gi0/1 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/2 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/3 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/4 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/5 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/6 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/7 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/8 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/9 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/10 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 1 Gi0/11 connected Trunk a-full a-100 10/100/1000BaseTX // vers le commutateur 2 (en E306) // Non connecté [...interfaces Gi0/12-Gi0/48] // les fibres Te0/1 notconnect 1 full 10G 10GBase-SR // vers le local SR52 Te0/2 notconnect 1 full 10G 10GBase-SR // vers cordouan
Afin d'accélérer la communication entre le routeur et le commutateur, les ports 1 à 10 du routeur seront connectés au commutateur.
Router(config)#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface range Gi0/1 - 11 Switch(config-if)#switchport mode access Switch(config-if)#switchport access access trunk Switch(config-if)#exit
Configuration de l'interface 10G vers le local SR52
Router(config)#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface Te0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access access vlan 131 // vlan 131 (interconnexion IMA5) Switch(config-if)#exit
Configuration de l'interface 10G vers Cordouan
Router(config)#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface Te0/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access access vlan 43 // vlan 43 (XEN IMA5) Switch(config-if)#exit
PROBLEME :
*Mar 1 01:42:30.518: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on TenGigabitEthernet0/2 (43), with Switch GigabitEthernet3/2 (42).
A FAIRE :
- configurer les interfaces / BDI
Mise en place de la machine virtuelle
Notre machine virtuelle a les paramètres suivants :
-Hostname = Dionysos
-@IP = 193.48.57.178
-Netmask = 255.255.255.240
-dossier = /usr/local/xen
xen-create-image --hostname=Dionysos --ip=193.48.57.178 --netmask=255.255.255.240 --dir=/usr/local/xen
Dans le répertoire /etc/xen, nous modifions le fichier Dionysos.cfg.
Nous adaptons le bridge StudentsInfo, qui devient IMA5sc.
Puis nous lançons une instance de la VM
xl create Dionysos.cfg xl console Dionysos
Connexion à la VM, avec le login root, mot de passe fourni a la fin de l'installation
Dans le fichier /etc/ssh/sshd_config nous décommentons la ligne :
PermitRootLogin yes
Ainsi nous pouvons nous connecter en ssh sur notre VM
Pour que le système soit connecté dans /etc/network/interfaces nous ajoutons la gateway.
gateway 193.48.57.190
ip route add default via 193.48.57.190 dev eth0 onlink
Nous avons modifié le mot de passe initial.
Pour éteindre une VM
xl shutdown Dionysos
Séance 3 : 10/12/2018
Config Routeur 3560
- Commande pour save la configuration
write
Correction sur la config du routeur
- Vers le commutateur 4006 - 10 cables 1G (Notre Salle)
enable conf t interface range Gi0/1 - 10 switchport switchport trunk encapsulation dot1q switchport mode trunk exit
- Vers le commutateur 6000 - 1 cable 1G (Autre Salle)
enable conf t interface gi0/11 switchport switchport trunk encapsulation dot1q switchport mode trunk exit
- Vers Cordouan - cable 10G (Fibre)
conf t interface Te0/2 switchport trunk encapsulation dot1q switchport mode access switchport access vlan 43 // vlan 43 (XEN IMA5) exit
- Vers le local SR52
conf t interface Te0/1 switchport trunk encapsulation dot1q switchport mode access switchport access vlan 131 // vlan 131 (interconnexion IMA5) exit
- Le vlan M = 10 + N (Groupe N)
conf t int vlanM ip address 10.60.M.252 255.255.255.0 standby version 2 standby M ip 10.60.M.254 standby M preempt ipv6 enable ipv6 address 2001:660:4401:60CN eui-64 ipv6 nd prefix 2001:660:4401:60CN::/64 1000 9000 ipv6 nd router-preference High exit
- Le vlan 43 (IM5sc)
int vlan43 ip address 193.48.57.188 255.255.255.240 standby version 2 standby 22 ip 193.48.57.190 standby 22 preempt ipv6 enable ipv6 address 2001:660:4401:60C0 eui-64 ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 ipv6 nd router-preference High exit
- Le vlan 131 (Interconnexion)
int vlan 131 ip address 192.168.222.9 255.255.255.248 ipv6 address fe80::2 link-local ipv6 enable ipv6 rip tpima2a5 enable exit
- Nommer un VLANs
vlan M name groupeN exit
vlan 43 name Xen exit
vlan 131 name interconnexion exit
conf t ip routing exit show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 193.48.57.0/28 is subnetted, 1 subnets C 193.48.57.176 is directly connected, Vlan43 10.0.0.0/24 is subnetted, 11 subnets C 10.60.20.0 is directly connected, Vlan20 C 10.60.21.0 is directly connected, Vlan21 C 10.60.18.0 is directly connected, Vlan18 C 10.60.19.0 is directly connected, Vlan19 C 10.60.16.0 is directly connected, Vlan16 C 10.60.17.0 is directly connected, Vlan17 C 10.60.14.0 is directly connected, Vlan14 C 10.60.15.0 is directly connected, Vlan15 C 10.60.12.0 is directly connected, Vlan12 C 10.60.13.0 is directly connected, Vlan13 C 10.60.11.0 is directly connected, Vlan11 192.168.222.0/29 is subnetted, 1 subnets C 192.168.222.8 is directly connected, Vlan131
- OSPF
Switch(config)#router ospf 1 Switch(config-router)#router-id 10.60.11.252 Switch(config-router)#summary-address 193.48.57.176 255.255.255.240 Switch(config-router)#redistribute connected subnets Switch(config-router)#summary-address 192.168.0.0 255.255.255.0 not-advertise Switch(config-router)#summary-address 10.60.0.0 255.255.0.0 not-advertise Switch(config-router)#network 192.168.222.8 0.0.0.7 area 2 Switch(config-router)#exit
Mise en place des partitions pour la VM
Sur cordouan
lvcreate -L10G -nIMA5_Dionysos_var virtual lvcreate -L10G -nIMA5_Dionysos_home virtual mke2fs /dev/virtual/IMA5_Dionysos_var mke2fs /dev/virtual/IMA5_Dionysos_home
Dans le fichier /etc/xen/Dionysos.cfg
disk = [ 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w', 'phy:/dev/virtual/IMA5_Dionysos_home,xvdb1,w', ]
Sur la VM, dans le fichier /etc/fstab
/dev/xvdb1 /home ext4 defaults 0 3
Le cas du répertoire /var est plus complexe.
Si nous utilisons la même méthode que pour /home, nous perdrons le /var. Nous ne pourrions donc plus utiliser apt-get, par exemple.
Dans la VM, dans le fichier /etc/fstab
/dev/xvdb2 /mnt ext4 defaults 0 2
Puis dans le terminal de la VM
mount /dev/xvdb2 /mnt mv /var/* /mnt/ unmount /mnt mount -a
Via la commande df nous contrôlons le résultat.
Filesystem 1K-blocks Used Available Use% Mounted on ... ... ... ... ... ... /dev/xvdb1 10255636 36888 9678076 1% /home /dev/xvdb2 10321208 23028 9773892 1% /var
Mise en place serveur DNS
Utilisation de la méthode bind
Dans le répertoire /etc/bind, nous modifirons les trois fichiers suivants :
named.conf.options
options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== //Mise en place du DNSSEC dnssec-enable yes; dnssec-validation auto; auth-nxdomain no; listen-on-v6 { any; }; allow-recursion{localhost;}; };
named.conf.local
zone "dionysos.space"{ type master; file "/etc/bind/db.dionysos.space"; allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net };
Puis nous créons le fichier /etc/bind/db.dionysos.space
cp db.local db.dionysos.space
Dans ce fichier nous entrons les paramètres suivants
; ; BIND data file for local loopback interface ; $TTL 604800 $include /root/SSL_certif/dionysos-ksk.key $include /root/SSL_certif/dionysos-zsk.key @ IN SOA ns.dionysos.space. root.dionysos.space ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS ns.dionysos.space. ;dns principal IN NS ns6.gandi.net. ;dns secondaire @ IN A 193.48.57.178 ;acces sans le "www." ns IN NS 193.48.57.178 ;acces avec http https www IN A 193.48.57.178; ;acces avec le "www.
Certificat SSL
openssl req -nodes -newkey rsa:2048 -sha1 -keyout dionysos.space.key -out dionysos.space.csr ... Common Name (e.g. server FQDN or YOUR name) []:dionysos.space et dionysos.space.key Email Address []:qboens@polytech-lille.net
Cette opération génére deux fichiers : dionysos.space.crt et dionysos.space.key
Une fois cette étape faite on récupére sur gandi GandiStandardSSLCA2.pem, dans l'onglet du certificat.
Tous les fichiers sont placés dans le répertoire SSL_certif
mv dionysos.space.csr SSL_certif mv dionysos.space.key SSL_certif mv GandiStandardSSLCA2.pem SSL_certif
Installation de DNSSEC
Création de la clef KSK
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -r /dev/urandom -n ZONE dionysos.space
Création de la clef ZSK
dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE dionysos.space
Ces clefs ont été crées dans le dossier SSL_certif
Création d'un fichier signé à partir de db.dionysos.space
dnssec-signzone -o dionysos.space -k dionysos-ksk.key /etc/bind/db.dionysos.space dionysos-zsk.key
Dans named.conf.local nous changons le fichier cible, pour que bind9 prenne en compte db.dionysos.space.signed, qui est le fichier signé
zone "dionysos.space"{ type master; file "/etc/bind/db.dionysos.space.signed"; allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net };
Puis nous relançons bind9
service bind9 restart
Sur le site gandi nous ajoutons les deux clefs, dans l'onglet DNSSEC
Un bon moyen de contrôler le déploiement de nos clefs : [1]
Séance 3.5 : 14/12/2018
Craquage WPA/PSK par dictionnaire
Materiel utilisé :
- un PC portable
- une clé Wi-Pi (nécessaire pour le PC portable que nous avons utilisé pour la partie handshake)
- Zabeth13 pour le craquage
Récupération du handshake
Premièrement sur le PC portable SOLE,
#ip a
pour vérifier que nous disposons bien d'une interface wifi wlx40a5ef0f68ce
, puis nous l'utilisons pour écouter sur le wifi :
#airmon-ng start <nom_de_l'interface>
On récupère l'interface retournée, dans notre cas wlan0mon
#airodump-ng wlan0mon
On note l'ESSID de cracotte02 et son channel pour ensuite renvoyer dans des fichiers
#airodump-ng --bssid <ESSID cracotte02> wlan0mon --channel 9 --write FILENAME
On dispose ensuite de 4 fichiers FILENAME.cap FILENAME.csv FILENAME.kismet.csv FILENAME.kismet.netxml
On peut à présent transférer ces fichiers sur ZABETH13 via clé usb:
Rappel montage USB
#fdisk -l //avant de brancher la clé USB #fdisk -l //on récupère l'emplacement de la clé (ex: /dev/sdb -> /dev/sdb1) #mkdir /media/MA_CLE_USB #mount /dev/sdb1 /media/MA_CLE_USB #mv /home/pifou/Mon_FICHIER /media/MA_CLE_USB //répéter autant que nécessaire #umount /media/MA_CLE_USB
Crack WPA/PSK
On crée un petit programme main.c
pour lister tous les codes possibles, on sait qu'il s'agit d'un code de 8 chiffres
#include <stdio.h> #include <stdlib.h> int main(){ int i; // key is 8 numeric digits for(i=0;i<99999999;i++){ printf("%d\n",i); } return 0; }
On compile et on stock dans un txt
#gcc main.c -o main -Wall #./main > dictionnaire.txt
On peut à présent lancer le crack
#aircrack-ng FILENAME.cap -w dictionnaire.txt
Après un certains temps d'execution, on obtient la clé
Clé : 42429902
Séance 4 : 17/12/2018
Correction IPV6 routeur
Vlan 43 - XEN
conf t no int vlan43 int vlan43 ip address 193.48.57.188 255.255.255.240 standby version 2 standby 22 ip 193.48.57.190 standby 22 preempt ipv6 enable ipv6 address 2001:660:4401:60C0::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 ipv6 nd router-preference High exit
Vlan 131 - Interconnexion
conf t no int vlan 131 int vlan 131 ip address 192.168.222.9 255.255.255.248 ipv6 address fe80::2 link-local ipv6 enable ipv6 rip tpima2a5 enable exit
Vlan 10+N - Groupe N
IPv4
- Notre Routeur :
10.60.10+N.252
- Routeur Virtuel :
10.60.10+N.254
IPv6
2001:660:4401:60XX
- VLAN 11 à 21 :
C1
àCB
- VLAN 43 :
C0
- Groupe 1
conf t no int vlan11 int vlan11 ip address 10.60.11.252 255.255.255.0 standby version 2 standby 11 ip 10.60.11.254 standby 11 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C1::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C1::/64 1000 900 ipv6 nd router-preference High exit vlan 11 name groupe1 exit
- Groupe 2
conf t no int vlan12 int vlan12 ip address 10.60.12.252 255.255.255.0 standby version 2 standby 12 ip 10.60.12.254 standby 12 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C2::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C2::/64 1000 900 ipv6 nd router-preference High exit vlan 12 name groupe2 exit
- Groupe 3
conf t no int vlan13 int vlan13 ip address 10.60.13.252 255.255.255.0 standby version 2 standby 13 ip 10.60.13.254 standby 13 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C3::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C3::/64 1000 900 ipv6 nd router-preference High exit vlan 13 name groupe3 exit
- Groupe 4
conf t no int vlan14 int vlan14 ip address 10.60.14.252 255.255.255.0 standby version 2 standby 14 ip 10.60.14.254 standby 14 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C4::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C4::/64 1000 900 ipv6 nd router-preference High exit vlan 14 name groupe4 exit
- Groupe 5
conf t no int vlan15 int vlan15 ip address 10.60.15.252 255.255.255.0 standby version 2 standby 15 ip 10.60.15.254 standby 15 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C5::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C5::/64 1000 900 ipv6 nd router-preference High exit vlan 15 name groupe5 exit
- Groupe 6
conf t no int vlan16 int vlan16 ip address 10.60.16.252 255.255.255.0 standby version 2 standby 16 ip 10.60.16.254 standby 16 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C6::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C6::/64 1000 900 ipv6 nd router-preference High exit vlan 16 name groupe6 exit
- Groupe 7
conf t no int vlan17 int vlan17 ip address 10.60.17.252 255.255.255.0 standby version 2 standby 17 ip 10.60.17.254 standby 17 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C7::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C7::/64 1000 900 ipv6 nd router-preference High exit vlan 17 name groupe7 exit
- Groupe 8
conf t no int vlan18 int vlan18 ip address 10.60.18.252 255.255.255.0 standby version 2 standby 18 ip 10.60.18.254 standby 18 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C8::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C8::/64 1000 900 ipv6 nd router-preference High exit vlan 18 name groupe8 exit
- Groupe 9
conf t no int vlan19 int vlan19 ip address 10.60.19.252 255.255.255.0 standby version 2 standby 19 ip 10.60.19.254 standby 19 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60C9::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C9::/64 1000 900 ipv6 nd router-preference High exit vlan 19 name groupe9 exit
- Groupe 10
conf t no int vlan20 int vlan20 ip address 10.60.20.252 255.255.255.0 standby version 2 standby 20 ip 10.60.20.254 standby 20 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60CA::/64 eui-64 ipv6 nd prefix 2001:660:4401:60CA::/64 1000 900 ipv6 nd router-preference High exit vlan 20 name groupe10 exit
- Groupe 11
conf t no int vlan21 int vlan21 ip address 10.60.21.252 255.255.255.0 standby version 2 standby 21 ip 10.60.21.254 standby 21 preempt ipv6 enable ipv6 address prefix 2001:660:4401:60CB::/64 eui-64 ipv6 nd prefix 2001:660:4401:60CB::/64 1000 900 ipv6 nd router-preference High exit vlan 21 name groupe11 exit
Vérifications du fonctionnement
show running-config
-
show run
[...] ipv6 unicast-routing ! [...] spanning-tree mode pvst spanning-tree loopguard default spanning-tree etherchannel guard misconfig spanning-tree extend system-id ! [...] interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/2 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/3 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/4 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/5 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/6 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/7 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/8 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/9 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/10 switchport trunk encapsulation dot1q switchport mode trunk channel-group 1 mode active ! interface GigabitEthernet0/11 switchport trunk encapsulation dot1q switchport mode trunk ! [...] interface TenGigabitEthernet0/1 switchport access vlan 131 switchport trunk encapsulation dot1q switchport mode access ! interface TenGigabitEthernet0/2 switchport access vlan 43 switchport trunk encapsulation dot1q switchport mode access ! interface Vlan1 ip address 10.60.1.252 255.255.255.0 ! interface Vlan11 ip address 10.60.11.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C1::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C1::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 11 ip 10.60.11.254 standby 11 preempt ! interface Vlan12 ip address 10.60.12.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C2::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C2::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 12 ip 10.60.12.254 standby 12 preempt ! interface Vlan13 ip address 10.60.13.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C3::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C3::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 13 ip 10.60.13.254 standby 13 preempt ! interface Vlan14 ip address 10.60.14.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C4::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C4::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 14 ip 10.60.14.254 standby 14 preempt ! interface Vlan15 ip address 10.60.15.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C5::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C5::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 15 ip 10.60.15.254 standby 15 preempt ! interface Vlan16 ip address 10.60.16.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C6::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C6::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 16 ip 10.60.16.254 standby 16 preempt ! interface Vlan17 ip address 10.60.17.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C7::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C7::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 17 ip 10.60.17.254 standby 17 preempt ! interface Vlan18 ip address 10.60.18.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C8::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C8::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 18 ip 10.60.18.254 standby 18 preempt ! interface Vlan19 ip address 10.60.19.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60C9::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C9::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 19 ip 10.60.19.254 standby 19 preempt ! interface Vlan20 ip address 10.60.20.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60CA::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60CA::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 20 ip 10.60.20.254 standby 20 preempt ! interface Vlan21 ip address 10.60.21.252 255.255.255.0 ipv6 address prefix 2001:660:4401:60CB::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60CB::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 21 ip 10.60.21.254 standby 21 preempt ! interface Vlan43 ip address 193.48.57.188 255.255.255.240 ipv6 address 2001:660:4401:60C0::/64 eui-64 ipv6 enable ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 ipv6 nd router-preference High standby version 2 standby 22 ip 193.48.57.190 standby 22 preempt ! interface Vlan131 ip address 192.168.222.9 255.255.255.248 ipv6 address FE80::2 link-local ipv6 enable ipv6 rip tpima2a5 enable ! router ospf 1 router-id 10.60.11.252 log-adjacency-changes summary-address 193.48.57.176 255.255.255.240 summary-address 192.168.0.0 255.255.255.0 not-advertise summary-address 10.60.0.0 255.255.0.0 not-advertise redistribute connected subnets network 192.168.222.8 0.0.0.7 area 2 ! [...] ipv6 router rip tpima5sc redistribute connected metric 1 redistribute static metric 1 ! [...] end
Show Interface status
-
show int status
Port Name Status Vlan Duplex Speed Type Gi0/1 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/2 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/3 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/4 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/5 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/6 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/7 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/8 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/9 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/10 connected trunk a-full a-100 10/100/1000BaseTX // Vers C1 Gi0/11 connected trunk a-full a-1000 10/100/1000BaseTX // Vers C2 Gi0/12 notconnect 1 auto auto 10/100/1000BaseTX // Borne Wi-Fi du groupe 1 Gi0/13 notconnect 1 auto auto 10/100/1000BaseTX Gi0/14 notconnect 1 auto auto 10/100/1000BaseTX [...] // // // // // Gi0/47 notconnect 1 auto auto 10/100/1000BaseTX Gi0/48 notconnect 1 auto auto 10/100/1000BaseTX Te0/1 connected 131 full 10G 10GBase-SR // Vers SR52 Te0/2 connected 43 full 10G 10GBase-SR // Vers Cordouan
IPv6
-
show ipv6 route
Switch#show ipv6 route IPv6 Routing Table - Default - 53 entries Codes: C - Connected, L - Local, S - Static, U - Per-user Static route B - BGP, R - RIP, D - EIGRP, EX - EIGRP external O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 R ::/0 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:60::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6000::/56 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6002::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6003::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6004::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6005::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6006::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6007::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6008::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6009::/64 [120/2] via FE80::42:1, Vlan131 R 2001:660:4401:6011::/64 [120/2]
IPv4
-
show ip route
Nous avons bien de l'OSPF (O) et OSPF NSSA external type 2 (E2)
Switch#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 192.168.222.14 to network 0.0.0.0 193.51.182.0/30 is subnetted, 1 subnets O E2 193.51.182.108 [110/20] via 192.168.222.14, 00:29:30, Vlan131 O E2 192.168.12.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131 O E2 192.168.29.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131 O E2 192.168.28.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131 193.48.63.0/24 is variably subnetted, 2 subnets, 2 masks O E2 193.48.63.0/26 [110/10] via 192.168.222.14, 00:29:30, Vlan131 O IA 193.48.63.1/32 [110/13] via 192.168.222.14, 00:29:31, Vlan131 O IA 193.49.225.0/24 [110/3] via 192.168.222.14, 00:29:31, Vlan131 192.168.44.0/29 is subnetted, 4 subnets O E2 192.168.44.0 [110/10] via 192.168.222.14, 00:29:31, Vlan131 O E2 192.168.44.8 [110/10] via 192.168.222.14, 00:29:31, Vlan131 O E2 192.168.44.32 [110/10] via 192.168.222.14, 00:29:31, Vlan131
Sécurisation des données via RAID5
Les partitions
Création des trois partitions 1G,
lvcreate -L1G -n IMA5_Dionysos_part1 virtual lvcreate -L1G -n IMA5_Dionysos_part2 virtual lvcreate -L1G -n IMA5_Dionysos_part3 virtual
Ajout de ces partitions lors de la création de la VM, dans le fichier Dionysos.cfg:
disk = [ 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w', 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w' 'phy:/dev/virtual/IMA5_Dionysos_part1,xvdf1,w', 'phy:/dev/virtual/IMA5_Dionysos_part2,xvdg1,w', 'phy:/dev/virtual/IMA5_Dionysos_part3,xvdh1,w', ]
Création du RAID
Création du RAID5 à l'aide de mdadm
sudo mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Lors du premier essai l'erreur suivante est apparue
mdadm: cannot open /dev/xvdf1: Device or resource busy
Après quelques recherches, j'ai consulté le fichier /proc/mdstat
root@Dionysos:~# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md127 : active (auto-read-only) raid5 xvdg1[0] xvdf1[2] 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] unused devices: <none>
J'ai donc arrêté md127 grâce à
mdadm --stop /dev/md127
Puis j'ai relancé la commande de création du RAID
En relisant /proc/mdstat, j'ai obtenu
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 xvdh1[2] xvdg1[1] xvdf1[0] 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
Daemonisation du volume RAID, pour que la VM le charge à chaque redémarrage
mdadm --monitor --daemonise /dev/md0
On formate le RAID
root@Dionysos:~#mkfs.ext4 /dev/md0 mke2fs 1.44.4 (18-Aug-2018) Creating filesystem with 523264 4k blocks and 130816 inodes Filesystem UUID: e7b32d68-7297-4957-9104-574fff233b93 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
Dans le fichier /etc/fstab, nous demandons à notre VM de monter le volume à chaque redémarrage
/dev/md0 /media/raid ext4 defaults 0 1
Puis nous créons un dossier
mkdir /media/raid
Dans ce fichier, nous créons un simple fichier texte blabla.txt
Comme demandé dans le sujet, j'ai arrêté ma VM. Puis je l'ai relancée, en désactivant une des partitions : xvdh1
Résultat, dans le dossier /media/raid
root@Dionysos:/media/raid# ls lost+found
Sécurisation Wifi par WPA2-EAP
Installation de freeradius
apt-get install freeradius
Dans le fichier /etc/freeradius/3.0/users on ajoute la ligne
Dionysos Cleartext-Password :=NOTRE_MDP_ROOT
Le serveur doit être configuré en PEAP-MSCHAPv2. Nous devons modifier :
-/etc/freeradius/3.0/mods-enabled/eap
default_eap_type = peap
-etc/freeradius/3.0/mods-enabled/mschap
mschap { ... use_mppe = yes require_encryption = yes require_strong = yes }
Dans cette même section nous ajoutons la ligne
with_ntdomain_hack = yes
On ajoute les points d'accès dans notre configuration de serveur (fichier : /etc/freeradius/3.0/clients.conf) : client 192.168.0.10/32 {
secret = secretIMA5SC shortname = accesDionysos
}
Crack WEP
- récuperer l'interface wifi
ip a
- mettre l'interface en écoute et récupérer le nouveau nom de l'interface (<interface2>)
airmon-ng start <interface>
- récupérer le Channel et le BSSID
airodump <interface2>
- récupérer des
#Data
airodump-ng -c <CHANNEL> --bssid <BSSID> -w crack_wep <interface2>
- lancer un spam de paquets ARP
aireplay-ng --fakeauth 30 -a <BSSID> <interface>
- lancer le crack
aircrack-ng crack_wep01.cap
- resultat si assez de #Data
Les étapes
Introduction
Installation des systèmes d'exploitation
Installation dans la machine virtuelle Xen
- L'accès se fait par SSH sur le dom0
cordouan.insecserv.deule.net
Création d'une machine virtuelle Xen Linux sur Cordouan
Pour ce faire, il faut utiliser la commande xen-create-image
Notre commande : xen-create-image --hostname=Dionysos --ip=193.48.57.178 --netmask=255.255.255.240 --dir=/usr/local/xen
-
--hostname=
: Le nom de votre machine -
--ip=
: L'ip routée qui vous a été attribué lors de la réalisation du plan d'adressage -
--netmask=
: Le masque réseau du plan d'adressage -
--dir=
: l'emplacement des fichiers disk.img et swap.img. Dans le sous répertoiredomains/Dionysos
dans notre cas
Modification du fichier de configuration de la machine virtuelle
On retrouve ensuite le fichier de configuration .cfg de la VM à l'emplacement /etc/xen
-
nano /etc/xen/Dionysos.cfg
[...] # # Disk device(s). # root = '/dev/xvda2 ro' disk = [ 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w', 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w', # Partition LVM pour /var 'phy:/dev/virtual/IMA5_Dionysos_home,xvdb1,w', # Partition LVM pour /home ] [...] # # Networking # vif = [ 'ip=193.48.57.178 ,mac=00:16:3E:6F:61:EE,bridge=IMA5sc' ] # Ajout du bridge [...]
Lancement de la machine
Toujours en root depuis cordouan
- Lancement :
xl create /etc/xen/Dionysos.cfg
À l'issue du premier lancement, on récupère un mot de passe root automatiquement généré
- Une fois lancée :
xl console Dionysos
On arrive donc sur la machine, il y a plusieurs modifications à effectuer :
Autoriser le login en root sur la machine via SSH
Modification du fichier /etc/ssh/sshd_config
nous décommentons la ligne PermitRootLogin yes
- Modifier le mot de passe root :
passwd
Réglage du réseau
- Modification du fichier
/etc/network/interfaces
pour ajoutergateway 193.48.57.190
à l'interface eth0
[...] # The primary network interface auto eth0 iface eth0 inet static address 193.48.57.178 netmask 255.255.255.240 gateway 193.48.57.190 [...]
On éteint puis allume à nouveau l'interface avec ifdown eth0
et ifup eth0
- Ajout de la route par défaut pour utiliser le routeur virtuel de l'architecture
ip route add default via 193.48.57.190 dev eth0 onlink
l'IP 193.48.57.190 est celle du routeur virtuel. Elle a été définie lors du plan d'adressage
3 Architecture réseau
3.1 L'architecture générale
3.2 Les réseaux virtuels
Mise à disposition d'un réseau IPv4 routé : 193.48.57.160/27
dans le VLAN 110 de l'école
Lors de la réalisation de ce TP, le réseau était déjà découpé en deux partie.
La première pour les IMA2A5 : allant de 193.48.57.160/28
à 193.48.57.175/28
La seconde était encore inutilisée : Nous avions donc à disposition les adresses allant de 193.48.57.176/28
à 193.48.57.191/28
Avec un masque /28
(240) nous avions donc 16 adresses dans le réseau 193.48.57.176/28
Nous avons donc établi avec le groupe routeur 2 (Binôme 11) le plan d'adressage suivant
- .176 : adresse de réseau
- .177 à .187 : les adresses IP des machines virtuelles Xen
- .188 : adresse du Routeur 1
- .189 : adresse du Routeur 2
- .190 : adresse du Routeur Virtuel
- .191 : adresse de diffusion
Nous avions également à utiliser un réseau IPv4 non routé (10.60.0.0/16
) où chaque binôme devait avoir un sous-réseau.
Les IMA2A5 avaient choisi d'utiliser des réseau de la forme : 10.60.N.0/24
où N est le numéro de binôme, variant de 1 à 5 dans leur cas.
Nous avons repris cette idée en prenant la forme 10.60.10+N.0/24
avec pour choix, en vue de la configuration des routeurs :
- Adresse du routeur 1 : 10.60.11.252/24
- Adresse du routeur 2 : 10.60.11.253/24
- Adresse du routeur virtuel : 10.60.11.254/24
Rappel du plan d'adressage
3.3 Le routage de sites (IPv4) - Routeur Cisco 3560
Nous nous sommes chargés de la configuration du routeur 1, le Cisco 3560.
Comme nous étions situés sur la Zabeth09, nous avons pu utiliser un câble muni d'un adaptateur pour relier en USB la Zabeth au port console du routeur.
Nous avons ensuite utilisé minicom -os
en root avec les réglages suivants :
- /dev/ttyUSB0
- 9600 8N1
- Hardware Flow Control : No
On arrive ensuite sur le routeur. Switch>
Rappel des commandes Cisco utiles (ou Cours de réseau IMA4
-
enable
: permet de passer en EXEC privilégié sur le Cisco -
configure terminal
: peut aussi être remplacé parconf t
pour passer en mode de configuration globale -
exit
: pour retourner à un niveau prédédent -
write
: au niveau privilégié de base, permet de sauvegarder la configuration -
interface NOM_INTERFACE
: pour configurer une interface (peut aussi s'écrireint NOM_INTERFACE
) -
?
: pour afficher les commandes possibles au niveau actuel
Dans cette partie on s'intéresse à la configuration des interfaces en IPv4 :
Au niveau de l'architecture, nous voulons que le réseau soit redondant, ainsi il faut que les deux routeurs puissent effectuer le même travail mais pas en même temps.
L'un des deux réalise le travail (il est prioritaire) et l'autre vérifie que le travail est effectué, en cas d'arrêt, il prend le relais.
Dans notre cas, le groupe 11 (routeur 2) a décidé de mettre une priorité basse dans la configuration de leur routeur.
Rappel : Le réseau s'organise sur plusieurs VLANs
- VLAN 1 : Pour les autres composants tels que la borne wifi configurée par le groupe 1.
- VLAN 43 : Il s'agit du VLAN où sont les machines XEN IMA5. Les IMA2A5 avaient opté pour le VLAN 42.
- VLAN 131 : Le VLAN d'interconnexion de l'école. (SR52), les IMA2A5 utilisent le VLAN 130.
- VLAN 11 à 21 : Un VLAN par binôme, c'est dans ces VLAN que nous utiliserons les adresses de la forme 10.60.10+N.X. Comme pour les adresses, nous avons opté pour des numéros de la forme 10+Numéro de groupe.
Configuration du VLAN 1
Il est juste question d'attribuer au routeur une adresse dans le vlan 1 pour la borne wifi
interface Vlan1 ip address 10.60.1.252 255.255.255.0
Configuration du VLAN 43
En partant du mode privilégié :
conf t no int vlan43 int vlan43 ip address 193.48.57.188 255.255.255.240 standby version 2 standby 22 ip 193.48.57.190 standby 22 preempt exit
On commence par supprimer l'interface (no int vlan43
) en cas de doute sur sa configuration puis on la recrée et on attribue au routeur une adresse IP (188 = routeur 1) dans le VLAN (190 = routeur virtuel).
Configuration des VLANs 11 à 21
- Remplacer
XX
par le numéro du VLAN etN
dansname groupeN
par le numéro du groupe
conf t no int vlanXX int vlanXX ip address 10.60.XX.252 255.255.255.0 standby version 2 standby XX ip 10.60.XX.254 standby XX preempt exit vlan XX name groupeN exit
Vérification
Pour tester on peut tenter de ping le routeur depuis une source exterieure ou alors utiliser un routeur pour ping l'autre.
- Ping depuis une machine virtuelle vers 193.48.57.188 (routeur 1)
- Ping depuis le routeur 1 vers 193.48.57.189 (routeur 2)
3.4 Le routage de site (IPv6)
Dans cette partie, nous retournons dans la configuration des interfaces pour ajouter un routage via IPv6.
Dans le sujet il est indiqué que les adresses disponibles se situent à partir de 2001:660:4401:60b0::/64
mais les premières adresses étant prises par les IMA2A5 nous utiliserons les adresses en C0 et plus plutôt qu'à partir de B0
- ajouter à la configuration globale
ipv6 unicast-routing
Configuration du VLAN 43
En partant du mode privilégié :
conf t no int vlan43 int vlan43 ip address 193.48.57.188 255.255.255.240 standby version 2 standby 22 ip 193.48.57.190 standby 22 preempt ipv6 enable ipv6 address 2001:660:4401:60C0::/64 eui-64 ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900 ipv6 nd router-preference High exit
On supprime à nouveau l'interface (mais ce n'est pas nécessaire) pour y imposer la nouvelle configuration de l'interface
Configuration des VLANs 11 à 21 (avec IPv6)
Remplacer
-
XX
par le numéro du VLAN -
N
dansname groupeN
par le numéro du groupe -
HH
dans la partie IPv6 par C1 à CB suivant le groupe
conf t no int vlanXX int vlanXX ip address 10.60.XX.252 255.255.255.0 standby version 2 standby XX ip 10.60.XX.254 standby XX preempt ipv6 enable ipv6 address prefix 2001:660:4401:60HH::/64 eui-64 ipv6 nd prefix 2001:660:4401:60HH::/64 1000 900 ipv6 nd router-preference High exit vlan XX name groupeN exit
3.5 Interconnexion avec Internet IPv4
Comme les IMA2A5 utilisent déjà le VLAN130 (192.168.222.0/29) nous utilisons le VLAN131 192.168.222.8/29
-
192.168.222.9/29
: Routeur 1 -
192.168.222.10/29
: Routeur 2
Configuration du VLAN 131 (IPv4 Uniquement)
conf t no int vlan 131 int vlan 131 ip address 192.168.222.9 255.255.255.248 exit
Configuration OSPF
router ospf 1 router-id 10.60.11.252 log-adjacency-changes summary-address 193.48.57.176 255.255.255.240 summary-address 192.168.0.0 255.255.255.0 not-advertise summary-address 10.60.0.0 255.255.0.0 not-advertise redistribute connected subnets network 192.168.222.8 0.0.0.7 area 2
3.6 Interconnexion avec Internet IPv6
conf t ipv6 router rip tpima5sc redistribute connected metric 1 redistribute rip 1 metric 1 redistribute static metric 1
Configuration du VLAN 131 (IPv4 et IPv6)
conf t no int vlan 131 int vlan 131 ip address 192.168.222.9 255.255.255.248 ipv6 address fe80::2 link-local ipv6 enable ipv6 rip tpima2a5 enable exit
Vérification avec Google.com
On récupère une IPv6 de google avec la commande host
depuis une zabeth puis on tente depuis le routeur de ping cette adresse
3.7 Sécurisation du réseau
4 Services Internet
4.1 Serveur SSH
La première étape est de connecter la VM sur le routeur. Ainsi elle aura accès à internet. Il faut donc ajouter la gateway au système. Cet ajout ce fait dans le fichier /etc/network/interfaces
auto eth0 iface eth0 inet static address 193.48.57.178 netmask 255.255.255.240 gateway 193.48.57.190
Attention, la gateway doit obligatoirement se trouver après le netmask.
Pour un meilleur fonctionnement, il est nécessaire de préciser le proxy. Il faut donc ajouter dans le fichier .profile. On y accède via cd ~, puis nano .profile
http_proxy="http://proxy.polytech-lille.fr:3128" https_proxy="https://proxy.polytech-lille.fr:3128"
Dans le terminal :
ip route add default via 193.48.57.190 dev eth0 onlink
Afin de permettre une connection SSH avec la VM, il faut autoriser les connexions en utilisateur root.
Dans le fichier /etc/ssh/sshd_config nous décommentons la ligne :
PermitRootLogin yes
4.2 Serveur DNS
Afin de mettre en place ce serveur, il faut installer bind9 et apache2.
apt-get install bind9 apache2
Pour configurer le DNS, tout se passe dans le dossier /etc/bind. Créé au cours de l'installation.
Les différents fichiers qu'il contient devront être modifiée pour s'adapter au projet.
Premier fichier : named.conf.options
Il permet de mettre en place différentes options et configurations. Nous l'utilisons plus tard pour la suite du TP
options { ... dnssec-validation auto; auth-nxdomain no; listen-on-v6 { any; }; allow-recursion{localhost;}; };
Si ces options ne sont pas présentes, il faut les ajouter pour faire fonctionner correctement notre serveur.
Deuxième fichier : named.conf.local Ce fichier définit le comportement de la VM : Master ou Slave
Il renvoi au fichier de gestion des @IP.
Et permet d'autoriser des transferts vers des @IP
zone "dionysos.space"{ type master; file "/etc/bind/db.dionysos.space"; allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net };
Important la ligne file pointe à la base sur le fichier db.local
Il est possible de modifier ce fichier, mais il est préférable de le copier sous un nom qui nous convient.
cp db.local db.dionysos.space
Troisième fichier : db.dionysos.space Ce fichier permet de faire le lien avec l'adresse IP de notre VM
$TTL 604800 @ IN SOA ns.dionysos.space. root.dionysos.space ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS ns.dionysos.space. ;dns principal IN NS ns6.gandi.net. ;dns secondaire @ IN A 193.48.57.178 ;acces sans le "www." ns IN NS 193.48.57.178 ;acces avec http https www IN A 193.48.57.178; ;acces avec le "www.
Une fois tous ces fichiers mis en place, il n'y plus qu'à relancer le serveur DNS
service bind9 restart
Il faut un certain temps pour que toutes ces informations soient déployées sur internet. Le meilleur moyen de tester est cette adresse [2]
4.3 Sécurisation de site web par certificat
La première étape consiste à créé des fichiers qui correspondent à la clé SSH de notre domaine.
openssl req -nodes -newkey rsa:2048 -sha1 -keyout dionysos.space.key -out dionysos.space.csr ... Common Name (e.g. server FQDN or YOUR name) []:dionysos.space et dionysos.space.key Email Address []:qboens@polytech-lille.net
Cette opération génére deux fichiers : dionysos.space.crt et dionysos.space.key
Dans Gandi, il faut d'abord acheter un certificat, dans l'onglet correspondant.
Plusieurs étapes de validation vont alors se lancer.
L'une de ces étapes peut se faire via deux méthodes :
(1)le contrôle du DNS du domaine (risqué car si le DNS n'est pas correctement en place)
(2)la demande d'un fichier. Ce fichier est fourni par Gandi, et doit être transféré sur la VM via SSH.
C'est la méthode (2) que nous avons utilisée.
Une fois cette étape faite on récupére sur gandi GandiStandardSSLCA2.pem, dans l'onglet du certificat.Ce fichier devra être lui aussi téléchargé sur la VM via SSH.
Il permettra de garantir que la VM, et le domaine Dionysos, sont bien protégés par le certificat.
Tous les fichiers sont placés dans le répertoire SSL_certif
mv dionysos.space.csr SSL_certif mv dionysos.space.key SSL_certif mv GandiStandardSSLCA2.pem SSL_certif
4.4 Sécurisation de serveur DNS par DNSSEC
La sécurisation via DNSSEC, consiste à créé un fichier signé.
C'est à dire que le fichier sera crypté via un ensemble de clefs. Une privée et une publique.
Ainsi sans ces clefs, il sera difficile d'accéder au domaine et de le pirater.
Création de la clef KSK
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -r /dev/urandom -n ZONE dionysos.space
Création de la clef ZSK
dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE dionysos.space
Ces clefs ont été crées dans le dossier SSL_certif
Sur le site gandi nous ajoutons les deux clefs, dans l'onglet DNSSEC de notre domaine
Création d'un fichier signé à partir de db.dionysos.space
dnssec-signzone -o dionysos.space -k dionysos-ksk.key /etc/bind/db.dionysos.space dionysos-zsk.key
Dans named.conf.local nous changons le fichier cible, pour que bind9 prenne en compte db.dionysos.space.signed, qui est le fichier signé
zone "dionysos.space"{ type master; file "/etc/bind/db.dionysos.space.signed"; allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net };
Puis nous relançons bind9
service bind9 restart
Un bon moyen de contrôler le déploiement de nos clefs : [3]
5 Tests d'intrusion
5.1 Intrusion par changement d'adresse MAC
5.2 Cassage de clef WEP d'un point d'accès wifi
5.3 Cassage de mot de passe WPA-PSK par force brute
6 Réalisation
- REMARQUE Nous n'avons pas eu à nous occuper des points 6.3, 6.4 et 6.5 du sujet
6.1 Sécurisation de données
La sécurisation des données consiste à mettre en place un système permettant de récupérer les données, si elles venaient à être perdues.
Pour ce faire, nous mettons en place un RAID.
Cette méthode permet de sauvegarder les données sur différentes partitions.
Si une des partitions venait à disparaitre, nous pourrions la recréer à partir des autres.
Création des trois partitions 1G, dans courdouan,
lvcreate -L1G -n IMA5_Dionysos_part1 virtual lvcreate -L1G -n IMA5_Dionysos_part2 virtual lvcreate -L1G -n IMA5_Dionysos_part3 virtual
Ajout de ces partitions lors de la création de la VM, dans le fichier Dionysos.cfg:
disk = [ 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w', 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w' 'phy:/dev/virtual/IMA5_Dionysos_part1,xvdf1,w', 'phy:/dev/virtual/IMA5_Dionysos_part2,xvdg1,w', 'phy:/dev/virtual/IMA5_Dionysos_part3,xvdh1,w', ]
Création du RAID
Création du RAID5 à l'aide de mdadm
sudo mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Lors du premier essai l'erreur suivante est apparue
mdadm: cannot open /dev/xvdf1: Device or resource busy
Après quelques recherches, j'ai consulté le fichier /proc/mdstat
root@Dionysos:~# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md127 : active (auto-read-only) raid5 xvdg1[0] xvdf1[2] 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U] unused devices: <none>
J'ai donc arrêté md127 grâce à
mdadm --stop /dev/md127
Puis j'ai relancé la commande de création du RAID
En relisant /proc/mdstat, j'ai obtenu
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 xvdh1[2] xvdg1[1] xvdf1[0] 2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
Daemonisation du volume RAID, pour que la VM le charge à chaque redémarrage
mdadm --monitor --daemonise /dev/md0
On formate le RAID
root@Dionysos:~#mkfs.ext4 /dev/md0 mke2fs 1.44.4 (18-Aug-2018) Creating filesystem with 523264 4k blocks and 130816 inodes Filesystem UUID: e7b32d68-7297-4957-9104-574fff233b93 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
Dans le fichier /etc/fstab, nous demandons à notre VM de monter le volume à chaque redémarrage
/dev/md0 /media/raid ext4 defaults 0 1
Puis nous créons un dossier
mkdir /media/raid
Dans ce fichier, nous créons un simple fichier texte blabla.txt
Comme demandé dans le sujet, j'ai arrêté ma VM. Puis je l'ai relancée, en désactivant une des partitions : xvdh1
Résultat, dans le dossier /media/raid
root@Dionysos:/media/raid# ls lost+found