« Atelier SysRes SE2a5 2023/2024 E12 » : différence entre les versions
(33 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 | ||
Ligne 40 : | Ligne 63 : | ||
<code>xen create -c stockhom.cfg</code> | <code>xen create -c stockhom.cfg</code> | ||
Remarque : pour voir la liste des VM : (et donc si elle est en marche) | |||
<code> xen list</code> | |||
*'''Attribution d'une adresse IP static à notre VM :''' | |||
On ouvre la VM via à la console : | |||
<code>xen console stockholm</code> | |||
On va dans le répertoire : /etc/network | |||
<code>nano interfaces</code> | |||
Attribution d'une adresse IP statique sur l'interface eth0 ainsi que le masque et la gateway associé : | |||
[[Fichier:Network.png|centré|vignette]] | |||
On enregistre et on effectue la modification : | |||
<code>/etc/init.d/networking restart</code> | |||
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 :<code>PermitRootLogin yes</code> | |||
Relancer service SSH : <code>service ssh restart</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 des deux partitions sur capbreton :''' | |||
<code>lvcreate -L10G -n stockholm-home virtual | |||
lvcreate -L10G -n stockholm-var virtual</code> | |||
* '''Ajout des partitions dans /etc/xen/stockholm.cfg :''' | |||
<code>phy:/dev/virtual/stockholm-home, xvdb, w', | |||
phy:/dev/virtual/stockholm-var, xvdc, w',</code> | |||
Eteindre la VM, la redémarrer et s'y connecter : | |||
<code>xen shut stockholm | |||
xen create stockholm.cfg | |||
xen consol stockholm </code> ou par ssh | |||
Sur la VM : | |||
<code>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/ | |||
</code> | |||
Lister les LVM : <code>lsblk</code> | |||
[[Fichier:Monter.png|centré|vignette]] | |||
Dans '''/etc/fstab''', ajouter : | |||
<code>/dev/xvdb /home ext4 defaults 0 2 * | |||
/dev/xvdc /var ext4 defaults 0 2 *</code> | |||
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]] | |||
incrémenter serial pr service named restart | |||
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é :
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
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".
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
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
- VM padel
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)
Propagation ??? DNS checker
Pour télécharger bind9 & apache2 sur la machine de service :
nano /etc/resolv.conf et faire les modifications suivantes :
- 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 :
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)
- 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/
- 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 :
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
:
incrémenter serial pr service named restart
mkdir keys
named-checkconf named.conf.local
les clés sont créer :
Sur gandi :
ajouter la clé (13)