« Atelier SysRes SE2a5 2023/2024 E11 » : différence entre les versions
(Page créée avec « === '''13/09: Création de la VM''' === Génération du fichier de configuration:<syntaxhighlight lang="shell"> xen-create-image --hostname=Tokyo --ip=172.26.145.105 --netmask=255.255.255.0 --gateway 172.26.145.254 --bridge=bridgeStudents --dir=/usr/local/xen --password=glopglop </syntaxhighlight> Lancement de la VM:<syntaxhighlight lang="shell"> xen console Tokyo.cfg xen console Tokyo </syntaxhighlight> Modication de l'interface eth0 dans /etc/network/interfa... ») |
|||
(10 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
== '''Création de la VM Rio''' == | |||
Génération du fichier de configuration:<syntaxhighlight lang="shell"> | Génération du fichier de configuration:<syntaxhighlight lang="shell"> | ||
xen-create-image --hostname= | 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Lancer la VM grâce au fichier de configuration crée :<syntaxhighlight lang="shell"> | |||
xen | xen create rio.cfg | ||
xen console rio | |||
xen console | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Modification de l'interface eth0 dans '''/etc/network/interfaces''' : <syntaxhighlight lang="shell"> | |||
auto eth0 | auto eth0 | ||
iface eth0 inet static | iface eth0 inet static | ||
address 172.26.145. | address 172.26.145.113/24 | ||
gateway 172.26.145.254 | gateway 172.26.145.254 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Configuration ssh, | 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''<syntaxhighlight lang="shell"> | |||
PermitRootLogin yes | PermitRootLogin yes | ||
</syntaxhighlight>- Redémarrer le ssh :<syntaxhighlight lang="shell"> | |||
service ssh restart | service ssh restart | ||
</syntaxhighlight>Au niveau de capbreton, nous créons les deux partitions LVM :<syntaxhighlight lang="shell"> | |||
lvcreate -L10G -n rio-home storage | |||
lvcreate -L10G -n rio-var storage | |||
</syntaxhighlight>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 :<syntaxhighlight lang="shell"> | |||
# 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', | |||
] | |||
</syntaxhighlight><u>Problème rencontré :</u> Message d'erreur en essayant de redémarrer la VM | |||
[[Fichier:Erreur partitions.png|centré]]Création des deux partitions LVM en ''virtual'' et non ''storage''<syntaxhighlight lang="shell"> | |||
lvcreate -L10G -n rio-home virtual | |||
lvcreate -L10G -n rio-var virtual | |||
</syntaxhighlight>Au niveau de la VM, nous vérifions, grâce à la commande lsblk, la présence des nouvelles partitions : | |||
[[Fichier:Liste LVM.png|centré]] | |||
Montage des disques dans deux répertoires '''/home''' et '''/var''' :<syntaxhighlight lang="shell"> | |||
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/ | |||
</syntaxhighlight>Vérification de la nouvelle liste des LVM : | |||
[[Fichier:NouvelleListeLVM.png|centré]] | |||
Nous nous rendons dans le dossier '''/etc/''' pour modifier le ficher '''fstab''' : | |||
[[Fichier:Fstab chg.png|centré]] | |||
Nous redémarrons la VM, puis nouvelle vérification de la liste des LVM : les partitions sont bien montées. | |||
[[Fichier:ListeFinaleLVM.png|centré]] | |||
== '''Création de la VM Mandataire padel''' == | |||
Génération du fichier de configuration:<syntaxhighlight lang="shell"> | |||
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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Lancer la VM grâce au fichier de configuration crée :<syntaxhighlight lang="shell"> | |||
xen create padel.cfg | |||
xen console padel | |||
</syntaxhighlight>Ajout de l'IPv6 : Nous nous rendons dans le dossier '''/etc/network''' pour modifier le fichier '''interfaces''' : | |||
[[Fichier:Eth0ipv6.png|centré]] | |||
== '''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''' : | |||
[[Fichier:PadelBridge.png|centré]] | |||
Par la suite, nous ajoutons le bridge dans chacun des fichiers de config de nos VMs dans '''/etc/xen/''' en modifiant le ''vif :'' <syntaxhighlight lang="shell"> | |||
'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 | |||
</syntaxhighlight>- Création des interfaces réseaux ''eth1'' sur nos VMs (services) dans '''/etc/network/interfaces :'''<syntaxhighlight lang="shell"> | |||
auto eth1 | |||
iface eth1 inet static | |||
address 192.168.162.3/24 | |||
gateway 192.168.162.1 //IP Mandataire | |||
</syntaxhighlight>Pour la VM mandataire :<syntaxhighlight lang="shell"> | |||
auto eth1 | |||
iface eth1 inet static | |||
address 192.168.162.1 | |||
netmask 255.255.255.0 | |||
</syntaxhighlight>- Passage en IPv6 pour les machines de service :<syntaxhighlight lang="shell"> | |||
auto eht0 | |||
iface eth0 inet6 auto | |||
</syntaxhighlight>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''' :<syntaxhighlight lang="shell"> | |||
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 | |||
</syntaxhighlight>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 :''<syntaxhighlight lang="shell"> | |||
ssh -J root@193.48.57.162 root@192.168.162.2 | |||
</syntaxhighlight>Au niveau de padel, nous avons autorisé les redirections IP dans '''/etc/sysctl.conf''' : | |||
[[Fichier:AutorisationIPv4.png|centré]] | |||
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 :<syntaxhighlight lang="shell"> | |||
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 | |||
</syntaxhighlight> | |||
== '''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 | |||
[[Fichier:GlueRec.png|centré]] | |||
'''PS :''' Télécharger bind9 & apache2 sur les VMs (<u>Attention</u> : apt update avant apt install bind9 et apache2) | |||
Configurer la zone de DNS en local dans nos VMs ('''/etc/bind/named.conf.local''') : | |||
[[Fichier:ConfigDNS.png|gauche]] | |||
[[Fichier:Bindconfmaster.png|droite]] | |||
<= 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''' <syntaxhighlight lang="shell"> | |||
listen-on-v6 { any; } | |||
listen-on { any; }; | |||
allow-recursion {127.0.0.1; }; | |||
</syntaxhighlight>Pour les VMs de service : <syntaxhighlight lang="shell"> | |||
listen-on-v6 { any; } | |||
</syntaxhighlight>Dans le même dossier, copie de la configuration local sur la configuration db.rio71.lol et modifications : | |||
[[Fichier:ConfigDNSrio.png|centré]] | |||
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 : <code>service bind9 restart</code> | |||
'''PS :''' Penser à installer dnsutils (<code>apt install dnsutils</code>) | |||
Vérifier la présence du DNS sur la machine en utilisant : <code>dig @localhost rio71.lol</code> | |||
== '''Configuration Apache2''' == | |||
Tout d'abord, installer ''openssl'' (<code>apt install openssl)</code>pour pouvoir générer une CSR (Certificate Signing Request) dans '''/etc/ssl''' .<syntaxhighlight lang="shell"> | |||
openssl req -nodes -newkey rsa:2048 -sha256 -keyout rio71.lol.key -out rio71.lol.csr -utf8 | |||
</syntaxhighlight>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) : <code>chmod 440 stockholm.lol.key</code> | |||
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 :<syntaxhighlight lang="shell"> | |||
/*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 | |||
</syntaxhighlight>Activer le mode SSL sur apache2 : <code>a2enmod ssl</code> | |||
Création du nouveau fichier de config (pour configurer apache2 sur le port 443) dans '''/etc/apache2/sites-available/vhosts-https.conf :''' | |||
[[Fichier:Vhostshttps.png|centré]] | |||
(Modification pour avoir les bons chemins pour les certificats) | |||
Lancer le fichier de configuration : <code>a2ensite vhosts-https.conf</code> | |||
Puis relancer apache2 : <code>service apache2 restart</code> | |||
== '''DNSSEC''' == | |||
Passage sur chimaera pour pouvoir réaliser toutes les mises à jour des packages : | |||
[[Fichier:PassageChimaera.png|centré]] | |||
Ensuite, nous pouvons : <code>apt update && apt upgrade -y</code> | |||
Modification du fichier local '''/etc/bind/named.conf.local :''' | |||
[[Fichier:Dnsseclocalconf.png|centré]] | |||
<u>PS :</u> Erreur des temps d'attente sur le fichier '''db.rio71.lol''' => passage à 3600 | |||
[[Fichier:Newdbrio71.png|centré]] | |||
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). |
Version actuelle datée du 24 novembre 2023 à 10:55
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
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 :
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 :
Nous nous rendons dans le dossier /etc/ pour modifier le ficher fstab :
Nous redémarrons la VM, puis nouvelle vérification de la liste des LVM : les partitions sont bien montées.
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 :
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 :
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 :
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
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) :
<= 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 :
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 :
(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 :
Ensuite, nous pouvons : apt update && apt upgrade -y
Modification du fichier local /etc/bind/named.conf.local :
PS : Erreur des temps d'attente sur le fichier db.rio71.lol => passage à 3600
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).