« Atelier SysRes SE2a5 2023/2024 E12 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
 
(24 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
==Liste commande pratique :==
<code>/etc/init.d/networking restart : relancer service réseau
service ssh restart : relancer ssh
lsblk : lister LVM
xen shut stockholm : éteindre VM
xen create stockholm.cfg : relancer VM
xen consol stockholm : ouvrir VM dans une consol </code>
Accès SSH :
<code>Mandataire : ssh root@193.48.57.168 (padel)
Service : ssh root@193.48.57.168 -p2201 (stockholm)</code>
ip route, ifconfig ...
ls /sys/class/net : lister interface réseau
==Création de la machine virtuel :==
==Création de la machine virtuel :==
nom de la VM: stockholm  
nom de la VM: stockholm  


Ligne 10 : Ligne 36 :
Explication de la commande :  
Explication de la commande :  


xen = logiciel pour créer des VM  
-xen = logiciel pour créer des VM  


-hostname = définir le nom de notre VM
-hostname = définir le nom de notre VM
Ligne 21 : Ligne 47 :


-password = on défini le mot de passe
-password = on défini le mot de passe


On ouvre notre fichier de conf : cd /etc/xen
On ouvre notre fichier de conf : cd /etc/xen
Ligne 67 : Ligne 94 :
Commande pour se connecter en SSH : <code>ssh root@172.26.145.115</code>
Commande pour se connecter en SSH : <code>ssh root@172.26.145.115</code>


== Création de la machine mandataire ==
* <code>xen-create-image --hostname=padel --ip=193.48.57.168 --netmask=255.255.255.240 --bridge=SE2a5 --dir=/usr/local/xen --password=glopglop --gateway=193.48.57.161</code>
* <code>xen create padel.cfg</code>
Se connecter à la VM, ping 8.8.8.8
* Attribuer IPv6 par DHCP dans /etc/network/interfaces: <code>iface eth0 inet6 auto</code>


Création partitions LVM :  
==Création partitions LVM :==


* '''Création des deux partitions sur capbreton :'''  
* '''Création des deux partitions sur capbreton :'''  


lvcreate -L10G -n stockholm-home virtual
<code>lvcreate -L10G -n stockholm-home virtual


lvcreate -L10G -n stockholm-var virtual
lvcreate -L10G -n stockholm-var virtual</code>


* '''Ajout des partitions dans /etc/xen/stockholm.cfg :'''
* '''Ajout des partitions dans /etc/xen/stockholm.cfg :'''


phy:/dev/virtual/stockholm-home, xvdb, w',
<code>phy:/dev/virtual/stockholm-home, xvdb, w',


phy:/dev/virtual/stockholm-var, xvdc, w',
phy:/dev/virtual/stockholm-var, xvdc, w',</code>




Eteindre la VM, la redémarrer et s'y connecter :  
Eteindre la VM, la redémarrer et s'y connecter :  


xen shut stockholm
<code>xen shut stockholm
 
xen create stockholm.cfg
xen create stockholm.cfg
 
xen consol stockholm </code> ou par ssh
xen consol stockholm ou par ssh
 


Sur la VM :  
Sur la VM :  
  mkdir /new_home
<code>mkdir /new_home
   mkdir /new_var
   mkdir /new_var
   mkfs /dev/xvdb  
   mkfs /dev/xvdb  
Ligne 100 : Ligne 132 :
   mount /dev/xvdc /new_var
   mount /dev/xvdc /new_var
   cp -r /var/* /new_var/  
   cp -r /var/* /new_var/  
cp -r /home/* /new_home/
  cp -r /home/* /new_home/
 




Lister les LVM : lsblk
</code>
 
Lister les LVM : <code>lsblk</code>
[[Fichier:Monter.png|centré|vignette]]
[[Fichier:Monter.png|centré|vignette]]
Dans '''/etc/fstab''', ajouter :
Dans '''/etc/fstab''', ajouter :
  /dev/xvdb  /home ext4 defaults 0 2 *
<code>/dev/xvdb  /home ext4 defaults 0 2 *
  /dev/xvdc  /var ext4 defaults 0 2 *
/dev/xvdc  /var ext4 defaults 0 2 *</code>
 
Reboot la VM : reboot // à confirmer je sais plus  
Reboot la VM : reboot // à confirmer je sais plus  
Démonter :
<code>
umount /new_var
umount /new_home
mount -a // Monter tous les systèmes de fichiers spécifiés dans le fichier "/etc/fstab".
</code>
[[Fichier:Demonter.png|centré|vignette]]
== Création de la mascarade ==
Sur capbreton dans /etc/network/interfaces.d : (fichier TP_SE2a5)
<code>
<nowiki>#</nowiki>padel_bridge
iface padel inet manual
bridge_ports none
post-up ip link set $IFACE up
post-down ip link set $IFACE down
</code>
Fonction : faire un pont entre la carte réseau virtuelle de la VM à une carte réseau physique
Ajouter le bridge dans le fichier de config de chaque VM (dans /etc/xen):
* ip=192.168.162.1, bridge=padel' dans padel.cfg
* ip=192.168.162.2,bridge=padel' dans stockholm.cfg
* ip=192.168.162.3,bridge=padel' dans rio.cfg
Redémarrer les VM  (shut et create cf liste commande)
Attention important pour éviter problème ci dessous qui fut un point bloquant :
cf l'erreur : RTNETLINK Answers: File Exists
[[Fichier:Blocage.png|centré|vignette]]
Dans /etc/network/interfaces, déclarer une nouvelle interface réseau (eth1) avec une IP privée statique & passer l'interface eth0 en IPv6 pour éviter conflit d'interface :
* VM stockholm
[[Fichier:Stock.png|centré|vignette]]
* VM padel
[[Fichier:Padel.png|centré|vignette]]
Monter l'interface réseau eth1 : <code>/etc/init.d/networking restart</code>
Ping les autres IP dans ce réseau privé (192.168.162.3 (rio))
Créer une redirection de l'interface routée et notre interface privée sur la machine mandataire :
<code>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</code>
Vérification : ping 8.8.8.8 de la machine mandataire & de service
Tester le jump ssh :
<code>ssh -J root@193.48.57.162 root@192.168.162.2</code>
Dans /etc/sysctl.conf (machine mandataire) : autoriser redirection IP
<code>sysctl net.ipv4.ip_forward=1</code>
Règle de routage pour se connecter en ssh aux machines de service en utilisant un port différent :
<code>
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
</code>
== Configuration du serveur DNS ==
Nom de domaine : <nowiki>https://www.gandi.net</nowiki> => stockholm.lol
Spécifier les serveurs DNS (GlueRecords + externalServerNames):
Machine de service (IPv6) & machine mandataire (IPv4)
[[Fichier:Dns.png|centré|vignette]]
Propagation ??? DNS checker
Pour télécharger bind9 & apache2 sur la machine de service :
nano /etc/resolv.conf et faire les modifications suivantes :
[[Fichier:Resolv.png|centré|vignette]]
* Configuration du le bind9 :
Dans /etc/bind/named.conf.local, créer la zone DNS :
* Sur la machine de service (master)
  zone "stockholm.lol" {
    type master;
    file "/etc/bind/db.stockholm.lol";
    allow-transfer {192.168.162.1; };
  };
* Sur la machine mandataire (slave)
  zone "stockholm.lol" {
    type slave;
    file "/etc/bind/db.stockholm.lol";
    allow-transfer {192.168.162.2; };
  };*
Dans /etc/bind/named.conf.options : (sur machine mandataire)
  listen-on-v6 { any; }
  listen-on { any; };
  allow-recursion {127.0.0.1; };
<code>cp db.local db.stockholm.lol </code>et le configurer comme suit :
[[Fichier:New delay.png|centré|vignette]]
Redémarrer le service DNS (incrémenter Serial dans db.stockholm.lol à chaque restart) :
* <code>service bind9 restart</code>
Vérifier que le serveur DNS est bien présent sur la machine pour la zone demandée (installer le package dnsutils préalablement) :
<code>apt install dnsutils</code>
<code>dig @localhost stockholm.lol</code> ou <code>dig 192.168.162.2 stockholm.lol</code>
<code>nslookup okay.stockholm.lol</code> et <code>nslookup www.stockholm.lol</code>
== HTTPS & Apache2 ==
<code>apt install openssl </code>
Générer une CSR : dans /etc/ssl
<code>openssl req -nodes -newkey rsa:2048 -sha256 -keyout stockholm.lol.key -out stockholm.lol.csr -utf8</code>
Remarque : Common Name mettre stockholm.lol
Sécuriser l'accès à la clé privée
<code>
mv stockholm.lol.key /private
chmod 440 stockholm.lol.key
</code>
Copier le certificat obtenu sur Gandi :
stockholm.lol.crt dans /etc/ssl/certs
"".pem dans ???
Copier de ma machine vers ma VM service : (après avoir mkdir transfer dans la machine mandataire)
# Copie de ma machine vers la machine mandataire
<code>ldubois@florine01:~/Téléchargements$ scp -r -p stockholm.lol.crt root@193.48.57.168:/etc/transfer/</code>
# Copie de ma machine mandataire vers la machine service
<code>root@padel:/etc/transfer scp -r -p stockholm.lol.crt root@192.168.162.2:/etc/ssl/certs</code>
Activer le mode SSL sur apache2 : <code>a2enmod ssl</code> et configurer apache2 pour gérer du HTTPS sur le port 443
Créer le fichier  /etc/apache2/sites-available/vhosts-https.conf et le paramétrer de la manière suivante :
[[Fichier:Cert.png|centré|vignette]]
lancer le site :
<code>a2ensite vhosts-https.conf
service apache2 restart</code>
== DNSSEC ==
Mettre à jour bind9 vers la v9.16
<code>nano /etc/apt/sources.list</code>
remplacer beowulf par chimaera
<code>apt update && apt upgrade -y</code>
Ajouter  <code>listen-on-v6 { any; }</code> dans /etc/bind/named.conf.options
Modification du fichier <code>/etc/bind/named.conf.local</code> :
[[Fichier:Dnssec.png|centré|vignette]]




Démonter :
 
umount /new_var
 
  umount /new_home
incrémenter serial pr service named restart
  mount -a // Monter tous les systèmes de fichiers spécifiés dans le fichier "/etc/fstab".
 
mkdir keys
 
named-checkconf named.conf.local
 
 
les clés sont créer :
[[Fichier:Keys.png|centré|vignette]]
Sur gandi :
 
ajouter la clé (13)

Version actuelle datée du 24 novembre 2023 à 10:41

Liste commande pratique :

/etc/init.d/networking restart : relancer service réseau

service ssh restart : relancer ssh

lsblk : lister LVM

xen shut stockholm : éteindre VM

xen create stockholm.cfg : relancer VM

xen consol stockholm : ouvrir VM dans une consol


Accès SSH :

Mandataire : ssh root@193.48.57.168 (padel)

Service : ssh root@193.48.57.168 -p2201 (stockholm)

ip route, ifconfig ...

ls /sys/class/net : lister interface réseau

Création de la machine virtuel :

nom de la VM: stockholm

ip : 172.26.145.115

  • Commande pour créer le fichier de configuration :

xen-create-image —hostname=stockholm —size=10G —dir=/usr/local/xen —dhcp --password=glopglop

Explication de la commande :

-xen = logiciel pour créer des VM

-hostname = définir le nom de notre VM

-size = la taille

-dir = l'endroit où on va créer le fichier de conf

-dhcp = on choisit une attribution automatique de l'adresse IP grâce au serveur DHCP (dans un premier temps)

-password = on défini le mot de passe


On ouvre notre fichier de conf : cd /etc/xen

nano stockholm.cfg

on supprime le DHCP et on remplace par une ip statique 172.26.145.115

on rajoute le bridge : bridge=bridgeStudents

ce qui permet d'interconnecter les réseaux

  • Création de la VM :

xen create -c stockhom.cfg

Remarque : pour voir la liste des VM : (et donc si elle est en marche)

xen list

  • Attribution d'une adresse IP static à notre VM :

On ouvre la VM via à la console :

xen console stockholm

On va dans le répertoire : /etc/network

nano interfaces

Attribution d'une adresse IP statique sur l'interface eth0 ainsi que le masque et la gateway associé :

Network.png

On enregistre et on effectue la modification :

/etc/init.d/networking restart

Remarque : cette modification est dû au fait que j'ai mal effectué le changement lors de la création de la VM

Connection en SSH sur la VM stockholm :

Sur la VM, modifier le fichier /etc/ssh/sshd_config: (et retirer le # devant)

Afin de se connecter en ssh :PermitRootLogin yes

Relancer service SSH : service ssh restart

Commande pour se connecter en SSH : ssh root@172.26.145.115

Création de la machine mandataire

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

Se connecter à la VM, ping 8.8.8.8

  • Attribuer IPv6 par DHCP dans /etc/network/interfaces: iface eth0 inet6 auto

Création partitions LVM :

  • Création des deux partitions sur capbreton :

lvcreate -L10G -n stockholm-home virtual

lvcreate -L10G -n stockholm-var virtual

  • Ajout des partitions dans /etc/xen/stockholm.cfg :

phy:/dev/virtual/stockholm-home, xvdb, w',

phy:/dev/virtual/stockholm-var, xvdc, w',


Eteindre la VM, la redémarrer et s'y connecter :

xen shut stockholm xen create stockholm.cfg xen consol stockholm ou par ssh

Sur la VM : 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/ 
 cp -r /home/* /new_home/


Lister les LVM : lsblk

Monter.png

Dans /etc/fstab, ajouter : /dev/xvdb  /home ext4 defaults 0 2 * /dev/xvdc  /var ext4 defaults 0 2 *

Reboot la VM : reboot // à confirmer je sais plus

Démonter : umount /new_var

umount /new_home

mount -a // Monter tous les systèmes de fichiers spécifiés dans le fichier "/etc/fstab".

Demonter.png

Création de la mascarade

Sur capbreton dans /etc/network/interfaces.d : (fichier TP_SE2a5)

#padel_bridge

iface padel inet manual

bridge_ports none

post-up ip link set $IFACE up

post-down ip link set $IFACE down

Fonction : faire un pont entre la carte réseau virtuelle de la VM à une carte réseau physique

Ajouter le bridge dans le fichier de config de chaque VM (dans /etc/xen):

  • ip=192.168.162.1, bridge=padel' dans padel.cfg
  • ip=192.168.162.2,bridge=padel' dans stockholm.cfg
  • ip=192.168.162.3,bridge=padel' dans rio.cfg

Redémarrer les VM (shut et create cf liste commande)

Attention important pour éviter problème ci dessous qui fut un point bloquant :

cf l'erreur : RTNETLINK Answers: File Exists

Blocage.png


Dans /etc/network/interfaces, déclarer une nouvelle interface réseau (eth1) avec une IP privée statique & passer l'interface eth0 en IPv6 pour éviter conflit d'interface :

  • VM stockholm
Stock.png
  • VM padel
Padel.png


Monter l'interface réseau eth1 : /etc/init.d/networking restart

Ping les autres IP dans ce réseau privé (192.168.162.3 (rio))

Créer une redirection de l'interface routée et notre interface privée sur la machine mandataire :

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

Vérification : ping 8.8.8.8 de la machine mandataire & de service

Tester le jump ssh :

ssh -J root@193.48.57.162 root@192.168.162.2


Dans /etc/sysctl.conf (machine mandataire) : autoriser redirection IP

sysctl net.ipv4.ip_forward=1


Règle de routage pour se connecter en ssh aux machines de service en utilisant un port différent :

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 du serveur DNS

Nom de domaine : https://www.gandi.net => stockholm.lol

Spécifier les serveurs DNS (GlueRecords + externalServerNames):

Machine de service (IPv6) & machine mandataire (IPv4)

Dns.png

Propagation ??? DNS checker


Pour télécharger bind9 & apache2 sur la machine de service :

nano /etc/resolv.conf et faire les modifications suivantes :

Resolv.png
  • Configuration du le bind9 :

Dans /etc/bind/named.conf.local, créer la zone DNS :

  • Sur la machine de service (master)
 zone "stockholm.lol" {
   type master;
   file "/etc/bind/db.stockholm.lol";
   allow-transfer {192.168.162.1; };
 };
  • Sur la machine mandataire (slave)
 zone "stockholm.lol" {
   type slave;
   file "/etc/bind/db.stockholm.lol";
   allow-transfer {192.168.162.2; };
 };*

Dans /etc/bind/named.conf.options : (sur machine mandataire)

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

cp db.local db.stockholm.lol et le configurer comme suit :

New delay.png


Redémarrer le service DNS (incrémenter Serial dans db.stockholm.lol à chaque restart) :

  • service bind9 restart

Vérifier que le serveur DNS est bien présent sur la machine pour la zone demandée (installer le package dnsutils préalablement) :

apt install dnsutils

dig @localhost stockholm.lol ou dig 192.168.162.2 stockholm.lol

nslookup okay.stockholm.lol et nslookup www.stockholm.lol

HTTPS & Apache2

apt install openssl

Générer une CSR : dans /etc/ssl

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

Remarque : Common Name mettre stockholm.lol

Sécuriser l'accès à la clé privée mv stockholm.lol.key /private

chmod 440 stockholm.lol.key

Copier le certificat obtenu sur Gandi :

stockholm.lol.crt dans /etc/ssl/certs

"".pem dans ???

Copier de ma machine vers ma VM service : (après avoir mkdir transfer dans la machine mandataire)

  1. Copie de ma machine vers la machine mandataire

ldubois@florine01:~/Téléchargements$ scp -r -p stockholm.lol.crt root@193.48.57.168:/etc/transfer/

  1. Copie de ma machine mandataire vers la machine service

root@padel:/etc/transfer scp -r -p stockholm.lol.crt root@192.168.162.2:/etc/ssl/certs


Activer le mode SSL sur apache2 : a2enmod ssl et configurer apache2 pour gérer du HTTPS sur le port 443

Créer le fichier /etc/apache2/sites-available/vhosts-https.conf et le paramétrer de la manière suivante :

Cert.png

lancer le site :

a2ensite vhosts-https.conf

service apache2 restart

DNSSEC

Mettre à jour bind9 vers la v9.16

nano /etc/apt/sources.list

remplacer beowulf par chimaera

apt update && apt upgrade -y

Ajouter listen-on-v6 { any; } dans /etc/bind/named.conf.options

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

Dnssec.png



incrémenter serial pr service named restart

mkdir keys

named-checkconf named.conf.local


les clés sont créer :

Keys.png

Sur gandi :

ajouter la clé (13)