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

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(58 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
=== '''13/09: Création de la VM''' ===
=== '''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/interfaces: <syntaxhighlight lang="shell">
auto eth0
iface eth0 inet static
address 172.26.145.105/24
gateway 172.26.145.254
</syntaxhighlight>
Configuration ssh, modifications dans /etc/ssh/sshd_config:<syntaxhighlight lang="shell">
PermitRootLogin yes
service ssh restart
</syntaxhighlight>


=== '''14/09: Création d'un conteneur à la main''' ===
=== '''14/09: Création d'un conteneur à la main''' ===
Ligne 22 : Ligne 43 :
unshare -p -f -m chroot /tmp/mnt /bin/sh -c "mount /proc ; /bin/bash" ;
unshare -p -f -m chroot /tmp/mnt /bin/sh -c "mount /proc ; /bin/bash" ;
</syntaxhighlight>
</syntaxhighlight>
=== '''02/10:''' ===
Installation des paquetages pour le serveur web et dns: <syntaxhighlight lang="shell">
apt install apache2
apt install bind9
</syntaxhighlight>Creation LVM: <syntaxhighlight lang="shell">
lvcreate -L10G -nTokyo-home virtual
lvcreate -L10G -nTokyo-var virtual
</syntaxhighlight>Visualisation des LVM:<syntaxhighlight lang="shell">
lvs
</syntaxhighlight>
=== '''05/10:''' ===
Dans la VM, vérification de la création des partitions:<syntaxhighlight lang="shell">
lsblk
</syntaxhighlight>
[[Fichier:Screenshot 2023-10-05 16-28-17.png|centré|vignette|375x375px]]
Formatage des partitions de disque:<syntaxhighlight lang="shell">
mkfs /dev/xvdb1
mkfs /dev/xvdb2
</syntaxhighlight>Créations des répertoires new_home et new_var:<syntaxhighlight lang="shell">
mkdir /new_var
mkdir /new_home
</syntaxhighlight>On monte les disques:<syntaxhighlight lang="shell">
mount /dev/xvbd1 /new_home
mount /dev/xvdb2 /new_var
</syntaxhighlight>On déplace tout ce qu'il y'a dans var vers new_var:<syntaxhighlight lang="shell">
mv /var/* /new_var
umount /new_home
umount /new_var
</syntaxhighlight>Modification de /etc/fstab:
[[Fichier:Fstab add.png|centré|vignette|298x298px]]
Nous avons maintenant 10GB dans /home et /var
Création de la machine mandataire '''muaythai''' en collaboration avec Simon MAROLLEAU:<syntaxhighlight lang="shell">
xen-create-image --hostname=muaythai --ip=193.48.57.164 --netmask=255.255.255.240 --gateway=193.48.57.161 --bridge=SE2a5 --dir=/usr/local/xen --password=glopglop
</syntaxhighlight>
=== '''06/10:''' ===
Dans capbreton ajout du bridge dans Tokyo.cfg:<syntaxhighlight lang="shell">
vim /etc/xen/Tokyo.cfg
#Networking
vif = [ 'mac=00:16:3E:45:AF:1E, bridge=muaythai' , 'mac=00:16:3D:46:AB:1D,bridge=SE2a5']
</syntaxhighlight>Configuration de l'interface eth1 sur la machine mandataire pour communiquer avec nos machine de service (Tokyo et bogota):<syntaxhighlight lang="shell">
vim /etc/network/interfaces
</syntaxhighlight>[[Fichier:Network-interfaces tokyo.png|vignette|centré|interfaces Tokyo]]
Dans muaythai.cfg:<syntaxhighlight lang="shell">
vim /etc/xen/muaythai.cfg
#Networking
vif = [ 'ip=193.48.57.164 , mac=00:16:3E:CD:47:4D,bridge=SE2a5', 'bridge=muaythai' ]
</syntaxhighlight>Dans le network/interfaces de Tokyo:
[[Fichier:Screenshot 2023-10-06 15-54-52.png|centré|vignette|Interfaces muaythai]]
Redémarrage de la VM Tokyo:<syntaxhighlight lang="shell">
xen shut Tokyo
xen create /etc/xen/Tokyo.cfg
</syntaxhighlight>Avant d'entamer la mascarade on installe sur la machine mandataire: <syntaxhighlight lang="shell">
apt install iptables-persistent
</syntaxhighlight>Puis on effectue la commande suivante:<syntaxhighlight lang="shell">
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.13.0/24
iptables-save > /etc/iptables/rules.v4
reboot
</syntaxhighlight>Il est maintenant possible de ping de l'IPV4 et IPV6 avec les machines de services.
Pour permettre la connexion aux machines de services en passant par la mandataire sans mot de passe, on créer un répertoire .ssh  dans les machines de services , où l'on viens mettre une clée publique générée sur la machine mandataire (dans le fichier authorized_keys):<syntaxhighlight lang="shell">
ssh-keygen
</syntaxhighlight><syntaxhighlight lang="shell">
mkdir /root/ .ssh
cd /root/.ssh
vim authorized_keys
</syntaxhighlight>Il n'est plus demandé d'entrer un mdp lors d'un connexion ssh de muaythai vers Tokyo ou bogota
Redirection de port:<syntaxhighlight lang="shell">
sysct1 net.ipv4.ip_forward=sysct1
service networking restart
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2202 -j DNAT --to-destination 192.168.13.12:22
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2201 -j DNAT --to-destination 192.168.13.11:22
iptables-save > /etc/iptables/rules.v4
</syntaxhighlight>On peut maintenant se connecter à la machine de service via la redirection de port avec la commande suivante (exemple Tokyo):<syntaxhighlight lang="shell">
ssh -p2202 root@193.48.57.164
</syntaxhighlight>Création du serveur DNS sur Gandi:
[[Fichier:Capture d’écran 2023-10-06 153127.png|centré|vignette]]
=== '''10/11:''' ===
==== '''Configuration DNS (bind9:''' Configuration du serveur DNS sur la machine de service Tokyo: <code> vim /etc/bind/db.tokyoray.lol</code> ====
[[Fichier:Db.tokyoray.lol.png|centré|vignette|535x535px|db.tokyoray.lol]]
* Puis <code> service bind9 restart </code>après chaque modification, (incrémenter le numéro Serial à chaque restart)
* Ajout d'une zone de resolution de domaine tokyoray.lol dans le fichier named.conf.local:
[[Fichier:Name.conf.local.png|centré|vignette|503x503px|named.conf.local]]
* Du coté de la machine mandataire "muaythai" (DNS secondaire) :
-création de 2 fichiers vides "db.tokyoray.lol" & "db.bogota.lol" dans /etc/bind
-modification du fichier named.conf.local:
[[Fichier:Name.conf.local.muaythai.png|centré|vignette|493x493px|named.conf.local (muaythai)]]
==== '''HTTPS (apache2):''' ====
* Création d'une clée privée, et génération d'une demande de csr <code> openssl req -nodes -newkey rsa:2048 -sha256 -keyout tokyo.key -out tokyo.csr -utf8 </code>
* Sécurisation de l'accès au fichier de clés privés:<code> chmod 440 tokyo.key </code>
* Sur Gandi on recopie notre clée privée csr pour obtenir un certificat d'autorité
* <br /> Création du Virtual Host pour redirection sur le port *:443 : <code> vim  /etc/apache2/sites-available/vhost-https.conf </code>
[[Fichier:Frgre.png|centré|vignette|494x494px|vhost-https.conf]]
=== '''23/11:''' ===
* Ajout de deux DNS records dans le fichier <code>/etc/bind9/db.tokyoray.lol</code>[[Fichier:Tokyo.png|centré|vignette|547x547px]]
* Puis <code>service bind9 restart</code> (Ne pas oublier l'incrémentation du serial number)
* Ajout DNS secondaire : <code>host ns6.gandi.net</code>
* Puis ajout des adresses IPV4 et IPV6 dans le fichier "config.name.local"  <code>allow-transfer {192.168.13.10;217.70.177.42;2001:4b98:d:1::4b;};</code>
* Dans db.tokyoray.lol  ajout de : <code>tokyoray.lol.    IN      NS      ns6.gandi.net</code> puis <code>service bind9 restart</code>
* Sur Gandi ajout du DNS secondaire:
[[Fichier:Gandi.png|centré|vignette|511x511px]]
* Une fois la certification validée sur gandi, je télécharge et déplace le fichier tokyoray.lol.crt vers la machine mandataire: <code>scp /home/pifou/Downloads/tokyoray.lol.crt  root@193.48.57.164:/etc/ssl/certs/</code>
* Puis depuis la machine mandataire vers la machine de service : <code>scp /etc/ssl/certs/tokyoray.lol.crt root@192.168.13.12:/etc/ssl/certs/</code>
* Je copie la clé tokyo.key sur la machine mandataire : <code>scp /etc/ssl/private/tokyo.key root@193.48.57.164:/etc/ssl/private/</code>
* Dans la mandataire <code>/etc/apache2/sites-available/vhost-https.conf :</code>
[[Fichier:Sccreeen333.png|centré|vignette|446x446px|vhost-https.conf (dans la mandataire)]]
* Dans la machine de service <code>/etc/apache2/sites-available/vhost-https.conf :</code>
[[Fichier:Sccreeenn444.png|centré|vignette|466x466px|vhost-https.conf (dans la machine de service)]]
* Activation du SSL pour apache : <code>a2enmod ssl</code>
* Activation du proxy :<code>a2enmod proxy et a2enmod proxy_http</code>
* Activation du virtual host : <code>a2ensite /etc/apache2/sites-available/vhost-https.conf</code>
* Puis <code>service apache2 restart</code>
====  '''Sécurisation du DNS (DNSSEC):''' ====
* Modification des droits de bind avec la commande: <code>chown -R bind /etc/bind</code>
* Création du répertoire Keys dans bind
* Modification du fichier <code>/etc/bind/named.conf.local :</code>
[[Fichier:DNSSEC.png|centré|vignette|510x510px|<code>named.conf.local (machine de service)</code>]]
=== '''24/11:''' ===
* Récupération de la clé KSK (Ktokyoray.lol.+013+46428.key) dans le répertoire <code>/etc/bind/keys</code>et copie de la clée sur le site gandi:
[[Fichier:Ksk.png|centré|vignette|810x810px|KSK key sur gandi]]
* Analyse via DNSViz
[[Fichier:DNSviz.png|centré|vignette|382x382px|DNSViz]]

Version actuelle datée du 24 novembre 2023 à 11:17

13/09: Création de la VM

Génération du fichier de configuration:

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

Lancement de la VM:

xen console Tokyo.cfg

xen console Tokyo

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

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

Configuration ssh, modifications dans /etc/ssh/sshd_config:

PermitRootLogin yes
service ssh restart

14/09: Création d'un conteneur à la main

Création d'une partition de 10GB:

dd if=/dev/zero of=toto bs=1024k count=10240

On formate l'espace mémoire toto créé, pour cela on passe en root:

su -
cd ~pifou
mkfs toto

On monte ensuite la partition:

mkdir /tmp/mnt
mount -o loop toto /tmp/mnt

On y ajoute l'image du conteneur:

debootstrap stable /tmp/mnt

Préparation du montage du pseudo système de fichier /proc:

echo "proc /proc proc defaults 0 0" >> /tmp/mnt/etc/fstab

Isolation du processus:

unshare -p -f -m chroot /tmp/mnt /bin/sh -c "mount /proc ; /bin/bash" ;

02/10:

Installation des paquetages pour le serveur web et dns:

apt install apache2
apt install bind9

Creation LVM:

lvcreate -L10G -nTokyo-home virtual
lvcreate -L10G -nTokyo-var virtual

Visualisation des LVM:

lvs

05/10:

Dans la VM, vérification de la création des partitions:

lsblk
Screenshot 2023-10-05 16-28-17.png

Formatage des partitions de disque:

mkfs /dev/xvdb1
mkfs /dev/xvdb2

Créations des répertoires new_home et new_var:

mkdir /new_var
mkdir /new_home

On monte les disques:

mount /dev/xvbd1 /new_home
mount /dev/xvdb2 /new_var

On déplace tout ce qu'il y'a dans var vers new_var:

mv /var/* /new_var
umount /new_home
umount /new_var

Modification de /etc/fstab:

Fstab add.png

Nous avons maintenant 10GB dans /home et /var


Création de la machine mandataire muaythai en collaboration avec Simon MAROLLEAU:

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

06/10:

Dans capbreton ajout du bridge dans Tokyo.cfg:

vim /etc/xen/Tokyo.cfg

#Networking

vif = [ 'mac=00:16:3E:45:AF:1E, bridge=muaythai' , 'mac=00:16:3D:46:AB:1D,bridge=SE2a5']

Configuration de l'interface eth1 sur la machine mandataire pour communiquer avec nos machine de service (Tokyo et bogota):

vim /etc/network/interfaces
interfaces Tokyo


Dans muaythai.cfg:

vim /etc/xen/muaythai.cfg

#Networking

vif = [ 'ip=193.48.57.164 , mac=00:16:3E:CD:47:4D,bridge=SE2a5', 'bridge=muaythai' ]

Dans le network/interfaces de Tokyo:

Interfaces muaythai


Redémarrage de la VM Tokyo:

xen shut Tokyo
xen create /etc/xen/Tokyo.cfg

Avant d'entamer la mascarade on installe sur la machine mandataire:

apt install iptables-persistent

Puis on effectue la commande suivante:

iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.13.0/24
iptables-save > /etc/iptables/rules.v4
reboot

Il est maintenant possible de ping de l'IPV4 et IPV6 avec les machines de services.


Pour permettre la connexion aux machines de services en passant par la mandataire sans mot de passe, on créer un répertoire .ssh dans les machines de services , où l'on viens mettre une clée publique générée sur la machine mandataire (dans le fichier authorized_keys):

ssh-keygen
mkdir /root/ .ssh
cd /root/.ssh
vim authorized_keys

Il n'est plus demandé d'entrer un mdp lors d'un connexion ssh de muaythai vers Tokyo ou bogota Redirection de port:

sysct1 net.ipv4.ip_forward=sysct1
service networking restart
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2202 -j DNAT --to-destination 192.168.13.12:22
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2201 -j DNAT --to-destination 192.168.13.11:22
iptables-save > /etc/iptables/rules.v4

On peut maintenant se connecter à la machine de service via la redirection de port avec la commande suivante (exemple Tokyo):

ssh -p2202 root@193.48.57.164

Création du serveur DNS sur Gandi:

Capture d’écran 2023-10-06 153127.png

10/11:

Configuration DNS (bind9: Configuration du serveur DNS sur la machine de service Tokyo: vim /etc/bind/db.tokyoray.lol

db.tokyoray.lol
  • Puis service bind9 restart après chaque modification, (incrémenter le numéro Serial à chaque restart)
  • Ajout d'une zone de resolution de domaine tokyoray.lol dans le fichier named.conf.local:
named.conf.local
  • Du coté de la machine mandataire "muaythai" (DNS secondaire) :

-création de 2 fichiers vides "db.tokyoray.lol" & "db.bogota.lol" dans /etc/bind

-modification du fichier named.conf.local:

named.conf.local (muaythai)

HTTPS (apache2):

  • Création d'une clée privée, et génération d'une demande de csr openssl req -nodes -newkey rsa:2048 -sha256 -keyout tokyo.key -out tokyo.csr -utf8
  • Sécurisation de l'accès au fichier de clés privés: chmod 440 tokyo.key
  • Sur Gandi on recopie notre clée privée csr pour obtenir un certificat d'autorité

  • Création du Virtual Host pour redirection sur le port *:443 : vim /etc/apache2/sites-available/vhost-https.conf
vhost-https.conf

23/11:

  • Ajout de deux DNS records dans le fichier /etc/bind9/db.tokyoray.lol
    Tokyo.png
  • Puis service bind9 restart (Ne pas oublier l'incrémentation du serial number)



  • Ajout DNS secondaire : host ns6.gandi.net
  • Puis ajout des adresses IPV4 et IPV6 dans le fichier "config.name.local" allow-transfer {192.168.13.10;217.70.177.42;2001:4b98:d:1::4b;};
  • Dans db.tokyoray.lol ajout de : tokyoray.lol. IN NS ns6.gandi.net puis service bind9 restart
  • Sur Gandi ajout du DNS secondaire:
Gandi.png
  • Une fois la certification validée sur gandi, je télécharge et déplace le fichier tokyoray.lol.crt vers la machine mandataire: scp /home/pifou/Downloads/tokyoray.lol.crt  root@193.48.57.164:/etc/ssl/certs/
  • Puis depuis la machine mandataire vers la machine de service : scp /etc/ssl/certs/tokyoray.lol.crt root@192.168.13.12:/etc/ssl/certs/
  • Je copie la clé tokyo.key sur la machine mandataire : scp /etc/ssl/private/tokyo.key root@193.48.57.164:/etc/ssl/private/
  • Dans la mandataire /etc/apache2/sites-available/vhost-https.conf :
vhost-https.conf (dans la mandataire)
  • Dans la machine de service /etc/apache2/sites-available/vhost-https.conf :
vhost-https.conf (dans la machine de service)
  • Activation du SSL pour apache : a2enmod ssl
  • Activation du proxy :a2enmod proxy et a2enmod proxy_http
  • Activation du virtual host : a2ensite /etc/apache2/sites-available/vhost-https.conf
  • Puis service apache2 restart

Sécurisation du DNS (DNSSEC):

  • Modification des droits de bind avec la commande: chown -R bind /etc/bind
  • Création du répertoire Keys dans bind
  • Modification du fichier /etc/bind/named.conf.local :
named.conf.local (machine de service)

24/11:

  • Récupération de la clé KSK (Ktokyoray.lol.+013+46428.key) dans le répertoire /etc/bind/keyset copie de la clée sur le site gandi:
KSK key sur gandi
  • Analyse via DNSViz
DNSViz