TP sysres IMA2a5 2018/2019 G1

De Wiki d'activités IMA

Axel & Bastien COMMUTATEUR


Introduction

Ce TP consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système nous avons à installer une machine virtuelle Xen avec l'OS Devian ainsi qu'implanter un auto-commutateur et un point d'accès. Nous effectuerons pas la suite des tests d'intrusion sur ces points d'accès afin de voir la vulnérabilité des différents protocoles de clé (WEP / WPA-PSK).

Installation des systèmes d'exploitation

Configuration de l'accès internet sur la Zabeth08

L’accès internet ne fonctionnait pas car l’utilitaire bridge-utils n’était pas installé, on a donc modifié le /etc/network/interfaces pour se connecter au serveur DHCP et avoir un accès internet temporaire et télécharger les paquets de cet utilitaire. Une fois ces paquets installés la connexion de pont a pu être réalisée, on a donc essayé de se connecter de nouveau, mais la connexion ne fonctionnait toujours pas. On a donc modifié le fichier /etc/dhcp/dhclient.conf pour ajouter un timeout et un retry de 180.

Voici ces fichiers:

     /etc/network/interfaces
     
     # This file describes the network interfaces available on your system
     # and how to activate them. For more information, see interfaces(5).
     
     source /etc/network/interfaces.d/*
     
     # The loopback network interface
     auto lo
     iface lo inet loopback
     
     # The primary network interface (IPv4)
     auto eth0
     iface eth0 inet manual
     up ip link set dev $IFACE up
     
     # A secondary network interface (IPv4)
     auto eth1
     iface eth1 inet manual
     up ip link set dev $IFACE up
     
     # Bridge
     auto bridge
     iface bridge inet dhcp
     bridge_ports eth0 eth1
     bridge_hw 00:22:4d:7a:f0:70
     /etc/dhcp/dhclient.conf
     # Configuration file for /sbin/dhclient.
     #
     # This is a sample configuration file for dhclient. See dhclient.conf's
     #    man page for more information about the syntax of this file
     #    and a more comprehensive list of the parameters understood by
     #    dhclient.
     #
     # Normally, if the DHCP server provides reasonable information and does
     #    not leave anything out (like the domain name, for example), then
     #    few changes must be made to this file, if any.
     #
     
     option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
     
     send host-name = gethostname();
     request subnet-mask, broadcast-address, time-offset, routers,
         domain-name, domain-name-servers, domain-search, host-name,
         dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
         netbios-name-servers, netbios-scope, interface-mtu,
         rfc3442-classless-static-routes, ntp-servers;
     
     #send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
     #send dhcp-lease-time 3600;
     #supersede domain-name "fugue.com home.vix.com";
     #prepend domain-name-servers 127.0.0.1;
     #require subnet-mask, domain-name-servers;
     timeout 180;
     retry 180;
     #reboot 10;
     #select-timeout 5;
     #initial-interval 2;
     #script "/sbin/dhclient-script";
     #media "-link0 -link1 -link2", "link0 link1";
     #reject 192.33.137.209;
     
     #alias {
     #  interface "eth0";
     #  fixed-address 192.5.5.213;
     #  option subnet-mask 255.255.255.255;
     #}
     
     #lease {
     #  interface "eth0";
     #  fixed-address 192.33.137.200;
     #  medium "link0 link1";
     #  option host-name "andare.swiftmedia.com";
     #  option subnet-mask 255.255.255.0;
     #  option broadcast-address 192.33.137.255;
     #  option routers 192.33.137.250;
     #  option domain-name-servers 127.0.0.1;
     #  renew 2 2000/1/12 00:00:01;
     #  rebind 2 2000/1/12 00:00:01;
     #  expire 2 2000/1/12 00:00:01;
     #}

Instalation de Devuan sur le PC portable

Avec la clé usb de boot on a installé l’OS Devuan sur le pc portable “brochet”

Nom d’utilisateur :
superbrochet / root
Mot de passe :
glopglop
Problèmes rencontrés
  • Le proxy de polytech n'a pas été défini lors de l'installation —> Ajout de http:/proxy proxy.polytech-lile.fr:3128 OK
  • le miroir devuan ne s’est pas configuré. On l’a donc ajouté
     /etc/apt/sources.list
     deb http://fr.deb.devuan.org/merged/ ascii main non-free contrib
     deb-src http://fr.deb.devuan.org/merged/ ascii main non-free contrib
     deb http://auto-mirror.devuan.org/merged ascii-security main non-free contrib
     deb-src http://auto-mirror.devuan.org/merged ascii-security main non-free contrib

Installation de la machine virtuelle avec Xen

Nous avons ouvert une connection Secure Shell (SSH) sur cordouan : cordouan.insecserv.deule.net

Nous avons ensuite créé la machine virtuelle grâce à la commande suivante :

     xen-create-image --hostname=coreff --dhcp --dir=/usr/local/xen --dist=ascii
     --apt-proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force

On a ensuite modifié le fichier de configratin de la machine virtuelle de la façon suivante:

     /etc/xen/coreff.cfg
     # Configuration file for the Xen instance coreff, created
     # by xen-tools 4.7 on Fri Sep 28 16:56:02 2018.
     #
     
     #
     #  Kernel + memory size
     #
     kernel  	= '/boot/vmlinuz-4.14.0-3-amd64'
     extra   	= 'elevator=noop'
     ramdisk 	= '/boot/initrd.img-4.14.0-3-amd64'
     
     vcpus   	= '1'
     memory  	= '256'
     
     #
     #  Disk device(s).
     #
     root    	= '/dev/xvda2 ro'
     disk    	= [
                   	'file:/usr/local/xen/domains/coreff/disk.img,xvda2,w',
                   	'file:/usr/local/xen/domains/coreff/swap.img,xvda1,w',
               	]
     
     #
     #  Physical volumes
     #
     
     
     #
     #  Hostname
     #
     name    	= 'coreff'
     
     #
     #  Networking
     #
     dhcp    	= 'dhcp'
     vif     	= [ 'mac=00:16:3E:8B:FC:65' ]
     vif     	= [ 'mac=00:16:3E:8B:FC:65, bridge=StudentsInfo ' ]
     
     #
     #  Behaviour
     #
     on_poweroff = 'destroy'
     on_reboot   = 'restart'
     on_crash	= 'restart'

Puis xl create coreff.cfg pour parser la configuration de la VM. Et xl console coreff dans un autre terminal pour lancer la machine virtuelle.

On a modifié le mot de passe root de la VM : glopglop!

Montage du /var et du /home dans cordouan

En SSH sur cordouan, on a créé les volumes logiques de 10Go correspondant à ces deux répertoires:

     lvcreate -L10G -n apIMA5-coreff-home virtual
     lvcreate -L10G -n apIMA5-coreff-var virtual

Nous avons ensuite créé le système de fichier sur ces volumes :

     mke2fs /dev/virtual/apIMA5-coreff-home
     mke2fs /dev/virtual/apIMA5-coreff-var

Et modifier une nouvelle fois le fichier de configuration de notre machine virtuelle afin de lui indiquer que les répertoires correspondent à des points de montages physique:

     /etc/xen/coreff.cfg
     [...]
     #
     #  Disk device(s).
     #
     root    	= '/dev/xvda2 ro'
     disk    	= [
                   	'file:/usr/local/xen/domains/coreff/disk.img,xvda2,w',
                   	'file:/usr/local/xen/domains/coreff/swap.img,xvda1,w',               
                        'phy:/dev/virtual/apIMA5-coreff-home,xvdb1,w',
                        'phy:/dev/virtual/apIMA5-coreff-var,xvdb2,w',
                  ]
     [...]

On vérifie sur Coreff que tout à fonctionner :

     root@coreff:~# fdisk -l
     Disk /dev/xvda2: 4 GiB, 4294967296 bytes, 8388608 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     
     Disk /dev/xvda1: 512 MiB, 536870912 bytes, 1048576 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     
     Disk /dev/xvdb1: 10 GiB, 10737418240 bytes, 20971520 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     
     Disk /dev/xvdb2: 10 GiB, 10737418240 bytes, 20971520 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes

Les volumes ont bien été créés ! ♥

On modifie le fstab de la VM pour indiquer au système d'exploitation que ces volumes sont à monter automatiquement au démarrage:

     # /etc/fstab: static file system information.
     #
     # <file system> 	<mount point>	<type>		<options>				<dump>		<pass>
     proc        	/proc		proc		defaults				0		0
     devpts		/dev/pts	devpts		rw,noexec,nosuid,gid=5,mode=620		0		0
     /dev/xvda1		none		swap		sw					0		0
     /dev/xvda2		/		ext4		noatime,nodiratime,errors=remount-ro	0		1
     /dev/xvdb1		/home		ext4		defaults				0		2
     /dev/xvdb2		/var		ext4		defaults				0		2

Petite vérification : On a bien un /home vide (mis à part le lost+found)

     root@coreff:~# ls /home
     	lost+found

Notre répertoire /var n'étant pas vide, on ne peut pas procéder de la même maniere. Commençonc par monter le xvdb2 dans le répertoire de montage temporaire /mnt:

     root@coreff:~# mount /dev/xvdb2 /mnt

On déplace ensuite tout les fichiers du /var dans le /mnt

!! ATTENTION !! Cette opération est très critique car à ce moment là, le système n'a plus de /var
     root@coreff:~# mv /var/* /mnt

On démonte ensuite le /mnt, puis on remonte le tout :

     root@coreff:~# unmount /mnt
     root@coreff:~# mount -a

On vérifie que toutes ces opération se sont bien passées :

     root@coreff:~# df
     Filesystem	1K-blocks	Used	Available	Use%	Mounted on
     udev		75004		0 	75004		0%	/dev
     tmpfs          	23824		76 	23748		1%	/run
     /dev/xvda2   	4062912		459920	3376896		12%	/
     tmpfs           	5120		0  	5120		0%	/run/lock
     tmpfs         	152500  	0	152500		0%	/run/shm
     /dev/xvdb1  	10321208	23028   9773892		1%	/home
     /dev/xvdb2  	10321208	71076   9725844		1%	/var


Architecture réseau

Services internet

Tests d'intrusion