TP sysres IMA5 2021/2022 G9

De Wiki d'activités IMA

TP PRA - Alvaro et Khalil

Sujet

L'objectif de ce TP est de créer un réseau redondé Lien : https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/

1. Configuration du Réseau physique

[insérer image]

Plan d'adressage

Groupe VLAN Réseau IPv4 Réseau IPv6 @IPv4 virtuelle IPv4 6509E (E304) IPv4 C9200 (E306) IPv4 ISR4331 (SR52) SSID VM
Andrei / Julien 10 10.00.0.0/16 2001:7A8:116E:60B0::0/64 10.00.0.250 10.00.0.251 10.00.0.252 10.00.0.253 Jonquille Kronenbourg
Robin / Aviran 01 10.01.0.0/16 2001:7A8:116E:60B0::0/64 10.01.0.250 10.01.0.251 10.01.0.252 10.01.0.253 Marguerite Paixdieu
Axel / Guillaume 02 10.02.0.0/16 2001:7A8:116E:60B0::0/64 10.02.0.250 10.02.0.251 10.02.0.252 10.02.0.253 Pensee Kasteel
Selim / Raphael 03 10.03.0.0/16 2001:7A8:116E:60B0::0/64 10.04.0.250 10.03.0.251 10.03.0.252 10.03.0.253 Lavende Karmeliet
Helene / Camille 04 10.04.0.0/16 2001:7A8:116E:60B0::0/64 10.03.0.250 10.04.0.251 10.04.0.252 10.04.0.253 Tulipe  
Boris / Louis 05 10.05.0.0/16 2001:7A8:116E:60B0::0/64 10.05.0.250 10.05.0.251 10.05.0.252 10.05.0.253 Rose Bellerose
Johnny / Arthur 06 10.06.0.0/16 2001:7A8:116E:60B0::0/64 10.06.0.250 10.06.0.251 10.06.0.252 10.06.0.253 Orchidee Anosteke
Mel / Theo 07 10.07.0.0/16 2001:7A8:116E:60B0::0/64 10.07.0.250 10.07.0.251 10.07.0.252 10.07.0.253 Tournesol  
Khalil / Alvaro 08 10.08.0.0/16 2001:7A8:116E:60B0::0/64 10.08.0.250 10.08.0.251 10.08.0.252 10.08.0.253 Lys godless
SOuleyman / Enoch 09 10.09.0.0/16 2001:7A8:116E:60B0::0/64 10.09.0.250 10.09.0.251 10.09.0.252 10.09.0.253 Pissenlit  
Clement 110 10.10.0.0/16 2001:7A8:116E:60B0::0/64 10.10.0.250 10.10.0.251 10.10.0.252 10.10.0.253 Coquelicot  

Table du VLAN 42

Groupe @IPv4 MV @IPv6 MV (auto)
Andrei / Julien 193.48.57.176  
Robin / Aviran 193.48.57.177  
Axel / Guillaume 193.48.57.178  
Selim / Raphael 193.48.57.179  
Helene / Camille 193.48.57.180  
Boris / Louis 193.48.57.181  
Johnny / Arthur 193.48.57.182  
Mel / Theo 193.48.57.183  
Khalil / Alvaro 193.48.57.184  
SOuleyman / Enoch 193.48.57.185  
Clement 193.48.57.186  

Note :

à compléter

Entité Élève Domaine 193.48.57.176/28 10.60.0.0/16 2001:660:4401:60B0::/60 2001:7A8:116E:60B0::/60 VLAN VLAN WIFI N° VRRP SSID n°1 SSID n°2
ROUTEUR E304 193.48.57.187  :: :F0  :: :F0 10.NN.00.250
ROUTEUR E306 193.48.57.188  :: :F1  :: :F1 10.NN.00.251
ROUTEUR SR52 193.48.57.189  :: :F2  :: :F2 10.NN.00.252
ROUTEUR FLOTTANTE 193.48.57.190  :: :F3  :: :F3 10.NN.00.253
Vlan INTERCO 531 INTERCO-SA 192.168.222.40/29 fe80::/10  ::1 fe80::/10  ::1 10.NN.00.253
Vlan INTERCO E304 192.168.222.42/29 fe80::/10  ::1 fe80::/10  ::1
Vlan INTERCO E306 192.168.222.43/29 fe80::/10  ::2 fe80::/10  ::2
Vlan INTERCO SR53 192.168.222.44/29 fe80::/10  ::3 fe80::/10  ::3


  • Plan d'adressage IPv4 :
VLAN Nom Réseau IPv4 Cisco 6509-E Cisco 9200 Cisco ISR 4331 Routeur plateforme maths/info PA Wifi n°1 PA Wifi n°2
  • Plan d'adressage IPv6 :
VLAN Nom Réseau IPv6 Cisco 6509-E Cisco 9200 Cisco ISR 4331 Routeur plateforme maths/info PA Wifi n°1 PA Wifi n°2

3. Configuration des Machines Virtuelles

Nous nous connectons en ssh à capbreton :

ssh root@capbreton

Nous incluons le proxy de polytech dans nos variables d'environnement:

export http_proxy=http://proxy.plil.fr:3128

Nous procédons ensuite la création de la machine virtuelle, pour cela nous allons saisir les informations suivantes: le nom de la machine (ici godless), l'adresse IP (--ip) qui nous a été fourni durant la répartition des IP, l'adresse IP du routeur de la salle E306 (--gateway) et le masque du réseau correspondant à un /28 (--netmask) (le /27 étant divisé entre les deux classes), l'emplacement de nos disques virtuels (--dir), le mot de passe de la machine virtuel (---password) puis le type de distribution souhaitée, ici nous avons choisi Debian Bullseye (--dist).

xen-create-image --hostname=Godless --ip=193.48.57.184 --gateway=193.48.57.190 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye

Ensuite, nous avons créé deux LV, chacun de 10 Go sur le groupe de volume de stockage:

lvcreate -L10G -n Godless1 storage
lvcreate -L10G -n Godless2 storage

Puis nous les avons formatés au format ext4 de la manière suivante:

mkfs.ext4 /dev/storage/Godless1
mkfs.ext4 /dev/storage/Godless2

nous modifions ensuite notre fichier "/etc/xen/Godless.cfg" pour préciser l'ajout les volumes logiques godless1 et godless2, de plus on ajoute le bridge IMA5sc dans la fonction vif. Pour cela on ajoute les lignes suivantes:

#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                 'file:/usr/local/xen/domains/Godless/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/Godless/swap.img,xvda1,w',
 		  'phy:/dev/storage/Godless1,xvda3,w',
 		  'phy:/dev/storage/Godless2,xvda4,w'
             ]


#
#  Physical volumes
#


#
#  Hostname
#
name        = 'Godless'

#
#  Networking
#
vif         = [ 'ip=193.48.57.184 ,mac=00:16:3E:4C:B6:AD ,bridge=IMA5sc' ]

La machine virtuelle:

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

Nous ajoutons les répertoires liés à xvda3 et vxda4 pour y placer /home et /var:

mkdir /mnt/xvda3
mkdir /mnt/xvda4
mount /dev/xvda3 /mnt/xvda3
mount /dev/xvda4 /mnt/xvda4

Nous y déplaçons le répertoire /var/ dans xvda4:

mv /var/* /mnt/xvda4

Pour monter les disques, nous modifions les lignes suivantes dans /etc/fstab:

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/xvda3 /home ext4 defaults 0 2
/dev/xvda4 /var ext4 defaults 0 2

Commande de montage:

mount -a

Partitions:

lsblk

NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda1 202:1    0  512M  0 disk [SWAP]
xvda2 202:2    0    4G  0 disk /
xvda3 202:3 0 10G 0 disk /home
xvda4 202:4 0 10G 0 disk /var

Pour finir nous activons l'IPv6 dans l'interface en ajoutant les lignes suivantes dans /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 193.48.57.184
gateway 193.48.57.190
netmask 255.255.255.240
iface eth0 inet6 auto 

# post-up  ethtool -K eth0 tx off

#
# The commented out line above will disable TCP checksumming which
# might resolve problems for some users.  It is disabled by default

Nous effectuons les commandes suivantes pour appliquer les changements:

systemctl restart networking
ip

Pour quitter de la VM: CTRL + [

Pour retourner:

xen console Godless

Pour retourner sur la machine virtuelle, nous utilisons :

- retourner sur capbreton

ssh root@capbreton

- Relancer la VM (login : root | password : pasglop):

xl create -c /etc/xen/Godless.cfg
xen list
//Machine virtuelle detectée et accessible (Name: Godless - ID: 90)

Service Internet

Serveur DNS

Vous allez réserver votre nom de domaine pour associer un nom DNS à chacune de vos adresses IP (les zones inverses doivent, elles aussi, être gérées). Il est suggéré d’utiliser le registrar Gandi (http://www.gandi.net). Une fois le nom de domaine reservé, configurez bind (paquetage bind9) sur votre serveur virtuel Xen pour donner les adresses IPv4 et IPv6 correspondant à vos noms de machines. Utilisez l’interface web de votre fournisseur pour paramétrer votre machine comme serveur DNS principal. Créez une machine virtuelle EC2 d’amazon pour servir de serveur DNS secondaire. Vous pouvez utiliser ns6.gandi.net comme autre serveur secondaire.

Par la suite mettez en place vos zones inverses qui permettent de trouver vos noms en fonction de vos adresses IP. Pour l’instant ce n’est possible que pour les adresses IPv6 de la connexion SDSL secondaire. Demander aux encadrants pour réaliser les délégations vers vos serveurs DNS.

Domaine Utilisé:

godlessglopyglopglopy.club

Glue Record crée:

ns1.godlessglopyglopglopy.club
193.48.57.184

Instalation BIND9

apt-get install bind9 dnsutils

Et aussi:

apt-get install openssh-server

Nous avons modifié /etc/ssh/sshd_config en supprimant les commentaires:

PermitRootLogin without-password
PubkeyAuthentication yes

Redémarrer SSH Service:

systemctl reload ssh

Sur la zabeth (machine physique):

ssh-keygen -t ed25519

On copie la clé publique que l'on vient de générer pour la coller dans le fichier /.shh/authorized_keys de la VM. Nous nous connectons à la machine virtuelle directement en ssh grâce à la commande :

ssh -o "IdentitiesOnly=yes" -i ma_cle_privée root@193.48.57.184

Configuration BIND9

Configuration

// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

Ficher de configuration (include "/etc/bind/named.conf.local";) C'est dans ce fichier que se trouverons nos déclarations de zones.

/etc/bind/named.config.options
allow-recursion{ 127.0.0.1 };
Déclaration des Zones

Nous avons posé notre déclaration de zone dans le fichier /etc/bind/named.config.local

//Zone de resolution de domaine de godlessglopyglopglopy.club
  
zone "godlessglopyglopglopy.club" IN { 
type master;
file "/etc/bind/db.godlessglopyglopglopy.club";

//Autorisation pour transferer sur l'IP

allow-transfer{ 
217.70.184.38; 
};

/*
also-notify{ 
217.70.184.38;
217.70.177.40;
};
notify yes; //notification aux serveurs esclaves quand une zone est mise a jour
*/

Alors, nous creons /etc/bind/db.godlessglopyglopglopy.club par la résolution de zone:

$Sttl    604800
@       IN      SOA     ns1.godlessglopyglopglopy.club postmaster.godlessglopyglopglopy.club. (
                             4 ; Serial
                        604800 ; Refresh
                         86400 ; Retry
                       2419200 ; Expire
                        604800); Negative Cache TTL
;
@         IN      NS      ns1.godlessglopyglopglopy.club.
@         IN      NS      ns6.gandi.net.
ns1       IN      A       193.48.57.184
Test

1) Nous avons testé le domaine en utilisant dig pour l'interroger:

dig -x godlessglopyglopgloppy.club
dig -x ns1.godlessglopyglopgloppy.club

2) Nous avons testé la configuration BIND9:

host -t any ns1.godlessglopyglopglopy.club localhost

Résultat:

ns1.godlessglopyglopglopy.club has address 193.48.57.184

Création du certificat SSL

1.Génération de nos clés assymétriques

root@Godless:/etc/ssl/private# openssl req -nodes -newkey rsa:2048 -sha256 -keyout godlessglopyglopglopy.club.key -out godlessglopyglopglopy.club.csr

2. achat du certificat ssl sur gandi.net, vérification du csr qu'on a généré

3. On télécharge le certificat après validation sur gandi, on le déplace via la commande scp (ssh) dans le répertoire /etc/ssl/certs/

Configuration Apache

1. Création/Configuration du fichier de configuration /etc/apache2/sites-available/godlessglopyglopglopy.conf

<VirtualHost 193.48.57.184:443>
        ServerName godlessglopyglopglopy.club
        ServerAlias ns1.godlessglopyglopglopy.club
        DocumentRoot "/var/www/godlessglopyglopglopy.club."
        SSLEngine on
        SSLCertificateKeyFile /etc/ssl/private/godlessglopyglopglopy.club.key
        SSLCertificateChainFile /etc/ssl/certs/godlessglopyglopglopy.club.crt
        SSLCACertificateFile /etc/ssl/certs/GandiStandardSSLCA2.pem
        ErrorLog /var/log/apache2/error.godlessglopyglopglopy.club.log
        CustomLog /var/log/apache2/access.godlessglopyglopglopy.club.log combined
</VirtualHost>

2. activation du site avec la commande:

a2ensite godlessglopyglopglopy.club

3. Activation du module ssl

a2enmod ssl

4. modification du fichier apache.conf pour Gérer la redirection vers notre page web qui se situe /var/www/godlessglopyglopglopy.club. on recharge ensuite la configuration d'Apache :

sudo systemctl reload apache2

TP ASR

- On modifie tout d'abord le fichier inventory en renseignant notre nom et l'adresse ip de notre VM pra-09:

pra-09 ansible_ssh_host="172.26.145.109"

- Nous générons une clé ssh à l'aide de la commande suivante:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "aelhassa@polytech-lille.net" -P 

- que nous renseignons dans /root/.ssh/authorized_keys de notre VM. Cette clé va nous permettre ainsi de nous connecter à notre VM avec ANSIBLE.

- On renseigne ensuite le hostname de notre machine virtuelle dans le fichier host_vars/pra-09.yaml

  hostname: pra-09
  bar:
    baz: 42

- Pour fonctionner, ansible a besoin de Python 3 que nous installons préalablement sur la zabeth et notre VM PRA-09.

Nous installons ensuite ansible avec les commandes suivantes :

$ python3 -m venv ~/env-ansible
$ . ~/env-ansible/bin/activate
$ pip3 install -U setuptools wheel
$ pip3 install -U ansible

- Puis on lance la commande :

$ ansible-playbook -v -i inventory polytech.yaml