Atelier SysRes SE2a5 2023/2024 E11

De wiki-se.plil.fr
Révision datée du 24 novembre 2023 à 10:55 par Onaimi (discussion | contributions) (→‎Configuration Apache2)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Création de la VM Rio

Génération du fichier de configuration:

xen-create-image --hostname=rio --ip=172.26.145.113 --netmask=255.255.255.0 --gateway=172.26.145.254 --bridge=bridgeStudents --dir=/usr/local/xen --password=glopglop

Lancer la VM grâce au fichier de configuration crée :

xen create rio.cfg
xen console rio

Modification de l'interface eth0 dans /etc/network/interfaces :

auto eth0
iface eth0 inet static
address 172.26.145.113/24
gateway 172.26.145.254

Configuration de la connexion en ssh, nous nous rendons dans le dossier /etc/ssh/ et nous modifions le fichier sshd_config :

- Décommenter le PermitRootLogin et mettre yes

PermitRootLogin yes

- Redémarrer le ssh :

service ssh restart

Au niveau de capbreton, nous créons les deux partitions LVM :

lvcreate -L10G -n rio-home storage
lvcreate -L10G -n rio-var storage

Se rendre dans le dossier /etc/xen/ et modifier le fichier de configuration de la VM rio.cfg en ajoutant les lignes de configurations des partitions :

#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                'file:/usr/local/xen/domains/HG/disk.img,xvda2,w',
                'file:/usr/local/xen/domains/HG/swap.img,xvda1,w',
                'phy:/dev/virtual/kiev-home,xvdb,w',
                'phy:/dev/virtual/kiev-var,xvdc,w',
            ]

Problème rencontré : Message d'erreur en essayant de redémarrer la VM

Erreur partitions.png

Création des deux partitions LVM en virtual et non storage

lvcreate -L10G -n rio-home virtual
lvcreate -L10G -n rio-var virtual

Au niveau de la VM, nous vérifions, grâce à la commande lsblk, la présence des nouvelles partitions :

Liste LVM.png

Montage des disques dans deux répertoires /home et /var :

mkdir /new_home
mkdir /new_var
mkfs /dev/xvdb 
mkfs /dev/xvdc
mount /dev/xvdb /new_home
mount /dev/xvdc /new_var
cp -r /var/* /new_var/

Vérification de la nouvelle liste des LVM :

NouvelleListeLVM.png

Nous nous rendons dans le dossier /etc/ pour modifier le ficher fstab :

Fstab chg.png

Nous redémarrons la VM, puis nouvelle vérification de la liste des LVM : les partitions sont bien montées.

ListeFinaleLVM.png

Création de la VM Mandataire padel

Génération du fichier de configuration:

xen-create-image --hostname=padel --ip=193.48.57.168 --netmask=255.255.255.240 --gateway=193.48.57.161 --bridge=SE2a5 --dir=/usr/local/xen --password=glopglop

Lancer la VM grâce au fichier de configuration crée :

xen create padel.cfg
xen console padel

Ajout de l'IPv6 : Nous nous rendons dans le dossier /etc/network pour modifier le fichier interfaces :

Eth0ipv6.png

Lien entre les VMs de service et la VM mandataire

Tout d'abord, nous avons crée un bridge sur capbreton qui permet de relier la VM mandataire au réseau. Pour ce faire, nous modifions le fichier /etc/network/interfaces.d/TP_SE2a5 :

PadelBridge.png

Par la suite, nous ajoutons le bridge dans chacun des fichiers de config de nos VMs dans /etc/xen/ en modifiant le vif :

'ip=192.168.162.3 , bridge=padel'] //Dans rio.cfg
'ip=192.168.162.2 , bridge=padel'] //Dans stockholm.cfg
'ip=192.168.162.1 , bridge=padel'] //Dans padel.cfg

- Création des interfaces réseaux eth1 sur nos VMs (services) dans /etc/network/interfaces :

auto eth1
iface eth1 inet static
        address 192.168.162.3/24
        gateway 192.168.162.1 //IP Mandataire

Pour la VM mandataire :

auto eth1
iface eth1 inet static
        address 192.168.162.1
        netmask 255.255.255.0

- Passage en IPv6 pour les machines de service :

auto eht0 
iface eth0 inet6 auto

Test de ping entre les différentes VMs. - Création de la mascarade et utilisation de iptables-persistent pour conserver les règles en les sauvegardant dans /etc/iptables/rule.v4 :

iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.162.0/24
apt install iptables-persistent
iptables-save
iptables-save > /etc/iptables/rules.v4

Nous avons réalisés un ping 8.8.8.8 pour vérifier que les VMs de service et la VM mandataire ont accès à internet. Au niveau de capbreton, nous avons testé de nous connecter en ssh en réalisant un jump :

ssh -J root@193.48.57.162 root@192.168.162.2

Au niveau de padel, nous avons autorisé les redirections IP dans /etc/sysctl.conf  :

AutorisationIPv4.png

Nous avons ajouté de nouvelles règles de routage pour pouvoir se connecter aux VMs de service en ssh sur le port 2201 pour stockholm et sur le port 2202 pour rio :

iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2201 -j DNAT --to-destination 192.168.162.2:22
iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2202 -j DNAT --to-destination 192.168.162.3:22

Configuration DNS

Achat du nom de domaine rio71.lol (rio.lol non disponible) sur le site https://www.gandi.net/fr (Compte : pifou / pasglop).

GlueRecords : DNS Principal (VM de service) en IPv6 et DNS Secondaire (VM mandataire) en IPv4 + External nameservers : Nameserver 1 : ns1.rio71.lol | Nameserver 2 : ns6.gandi.net

GlueRec.png

PS : Télécharger bind9 & apache2 sur les VMs (Attention : apt update avant apt install bind9 et apache2)

Configurer la zone de DNS en local dans nos VMs (/etc/bind/named.conf.local) :

ConfigDNS.png
Bindconfmaster.png

<= Configuration DNS Slave sur la VM mandataire

Configuration DNS Master sur la VM de service =>





Permettre l'écoute des IPv4 et IPv6 sur la VM mandataire dans /etc/bind/named.conf.options

 listen-on-v6 { any; }
 listen-on { any; };
 allow-recursion {127.0.0.1; };

Pour les VMs de service :

 listen-on-v6 { any; }

Dans le même dossier, copie de la configuration local sur la configuration db.rio71.lol et modifications :

ConfigDNSrio.png

Vérifier qu'il n'y a aucune erreur de configuration du DNS des différents fichiers grâce à la commande named-checkconf.

Redémarrer le service DNS : service bind9 restart

PS : Penser à installer dnsutils (apt install dnsutils)

Vérifier la présence du DNS sur la machine en utilisant : dig @localhost rio71.lol

Configuration Apache2

Tout d'abord, installer openssl (apt install openssl)pour pouvoir générer une CSR (Certificate Signing Request) dans /etc/ssl .

openssl req -nodes -newkey rsa:2048 -sha256 -keyout rio71.lol.key -out rio71.lol.csr -utf8

Remplir le formulaire demandé (email...) mais faire attention Common Name : rio71.lol

Placer la clé privée dans le bon dossier /etc/ssl/private et modifier les droits d'accès (juste en lecture) : chmod 440 stockholm.lol.key

Au niveau de Gandi, acheter un nouveau certificat SSL et renseigner la clé. (Attente de vérification)

Une fois vérifié, télécharger le certificat pour le déplacer par la suite de la machine physique (salle TP) à la VM mandataire, puis de cette dernière vers la VM de service :

/*Physique vers mandataire*/
~/Téléchargements$ scp -r -p rio71.lol.crt root@193.48.57.168:/etc/transfer/

/*Mandataire vers service*/
root@padel:/etc/transfer scp -r -p rio71.lol.crt root@192.168.162.3:/etc/ssl/certs

Activer le mode SSL sur apache2 : a2enmod ssl

Création du nouveau fichier de config (pour configurer apache2 sur le port 443) dans /etc/apache2/sites-available/vhosts-https.conf :

Vhostshttps.png

(Modification pour avoir les bons chemins pour les certificats)

Lancer le fichier de configuration : a2ensite vhosts-https.conf

Puis relancer apache2 : service apache2 restart

DNSSEC

Passage sur chimaera pour pouvoir réaliser toutes les mises à jour des packages :

PassageChimaera.png

Ensuite, nous pouvons : apt update && apt upgrade -y

Modification du fichier local /etc/bind/named.conf.local :

Dnsseclocalconf.png

PS : Erreur des temps d'attente sur le fichier db.rio71.lol => passage à 3600

Newdbrio71.png

Après un service named restart, les clefs sont bien générées automatiquement dans le dossier keys.

De retour sur Gandi, pour renseigner la clef DNSSEC. (Gandi keys were automatically set because you are using Gandi 's LiveDNS nameservers)

Le DNS n'était pas bien configuré, après résolutions des problèmes, nous avons ajouté le External NameServer (Principal : ns1.rio71.lol | Secondaire : ns6.gandi.net).