Atelier SysRes SE2a5 2023/2024 E5
Création d'un container :
création d'un fichier de partition toto à l'aide de l'utilitaire dd :
dd if=/dev/zero of=toto bs=1024k count=10240
on formate et monte ensuite la partition :
mkfs toto
mount -o loop toto /tpm/mnt
Une fois notre partition préparée on la remplie avec l'image du container grâce à l'utilitaire debootstrap :
debbotstrap stable /tmp/mnt
On peut ensuite préparer le montage de notre container avec /proc :
echo "proc /proc proc defaults 0 0" >> tmp/mnt/etc/fstab
Ensuite grâce a la commande unshare nous pouvons entrer dans l'espace de fichier que nous venons de créer et l'isolé créant ainsi un container
unshare -p -f -m chroot /tmp/mnt /bin/sh -c "mount /proc ; /bin/bash"
Installation de la Machine virtuelle :
Machine | IP |
---|---|
paris | 172.26.145.111 |
Création de la machine virtuelle a expliquer (première séance)
séance du 02/10 :
Création des partitions paris-home et paris-var grâce à la commande
lvcreate -L10G -nparis-var virtual
vérifier la création des partition avec lsblk. On créer ensuite deux répertoire new_home et new_var pordans lesquels ont va placer le contenu de /var et /home pour ensuite monter nos disque dans /home et /var.
mkdir /new_home
mkdir /new_var
mkfs /dev/xvdb1
mkfs /dev/xvdb2
mount /dev/xvdbs1 /new_home
mount /dev/svdbs2 /new_var
mv /var/* /new_var
umount /new_var
umount /new_home
On ajoute ensuite dans le fichier /etc/fstab les 2 lignes
/dev/xvdb1 /home ext4 defaults 0 2
/dev/xvdb2 /var ext4 defaults 0 2
De cette manière nos répertoires /home et /var profiteront d'un espace de 10G.
Création de la machine mandataire (avec Ahlam)
Création de la machine mandataire virtuelle
xen-create-image --hostname=judo --ip=193.48.57.165 --netmask=255.255.255.240 --bridge=SE2a5 --dir=/usr/local/xen --password=glopglop --gateway=193.48.57.161
Création de la VM mandataire :
xen create /etc/xen/judo.cfg
xen console judo
xen create /etc/xen/.cfg
xen console judo
Adresse IPV6 de notre machine JUDO : 2001:660:4401:60a0:216:3eff:fe0b:d504
//
nano /etc/resolv.conf
search plil.info
nameserver 8.8.8.8
nameserver 193.48.57.48
Création du bridge:
#judo_bridge
auto judo
iface judo inet manual
bridge_ports none
post-up ip link set $IFACE up
post-down ip link set $IFACE down
ajout des interfaces sur les machines de services :
auto eth1
iface eth1 inet static
address 192.168.165.2/24
gateway 192.168.165.1
post-up ethtool -K eth1 tx off
ajout de l'interface sur la machine mandataire :
auto eth1
iface eth1 inet static
address 192.168.165.1/24
On a maintenant un réseau privé entre nos deux machines de services et notre machine mandataire nous allons maintenant mettre en place la mascarade.
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.165.0/24
apt install iptables-persistent
iptable -save
On va modifier dans le fichier /etc/sysctl.conf la ligne permettant le forward ipv4 permettant a nos machines d'envoyer des paquets sur internet.
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
On va désormais supprimer les interfaces ipv4 sur nos machines de services. Elles vont maintenant accéder à internet en ipv4 via la machine mandataire.
Pour se connecter sur nos machines on utilise maintenant cette commande ssh -J root@193.48.57.165 root@192.168.165.2
Mise en place de la redirection de port
Afin de mettre en place la direction de port nous allons :
- autoriser l'IP forwarding afin que notre machine mandataire puisse agir en tant que routeur entre notre réseau privé et les réseaux extérieurs.
sysctl net.ipv4.ip_forward=1
- Ajouter les règles de transfert de port
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2201 -j DNAT --to-destination 192.168.165.2:22 // vers paris
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2202 -j DNAT --to-destination 192.168.165.3:22 // vers berlin
On peut maintenant se connecter su ma machine de service avec la commande ssh root@193.48.57.165 -p2201
séance du 10/11 :
Configuration de bind:
On utilise bind9 pour avoir notre dns.
Machine de service:
création sur la machine de service du fichier de zone db.paris13.lol :
$TTL 1H
paris13.lol. IN SOA ns1.paris13.lol. quoicoubeh@mail.com. (
2011041902 ; Serial
1H ; Refresh
15M ; Retry
2W ; Expire
3M ; Minimum TTL
)
paris13.lol. IN NS ns1.paris13.lol.
paris13.lol IN A 193.48.57.165
ns1.paris13.lol. IN A 193.48.57.165
ns1.paris13.lol. IN AAAA 2001:660:4401:6050:216:3eff:fe45:73c4
www.paris13.lol. IN CNAME ns1.paris13.lol.
et ajout de la zone dans le fichier named.conf.local :
zone "paris13.lol" {
type master;
file "/etc/bind/db.paris13.lol";
allow-transfer { 192.168.165.1; };
};
On ajotue aussi dans le fichier named.conf.options allow-recursion {localhost;};
pour éviter de servir de relai DNS ouvert.
Machine mandataire :
modification du fichier de config named.config.local, on ajoute les deux zones de nos machines de service car la machine agira comme machine esclave et va transmettre les messages:
zone "paris13.lol" {
type slave;
file "/etc/bind/db.paris13.lol";
masters {192.168.165.2;};
};
zone "berlin2.lol" {
type slave;
file "/etc/bind/db.berlin2.lol";
masters {192.168.165.3;};
};
Obtention d'une clé d'authtification pour protocole https :
Génération d'un CSR openssl req -nodes -newkey rsa:2048 -sha256 -keyout paris.key -out paris13server.csr -utf8
On copie la clé créée sur gandi afin d'obtenir le certificat.
Puis on créer le Virtual Host: vim /etc/apache2/sites-available/vhost-https.conf
Séance 23/11 :
Sécurisation du DNS :
Génération de la clé de signature de zone : dnssec-keygen -a RSASHA256 -b 2048 -f KSK -n ZONE paris13.lol
on obtient nos 2 clés : paris13.lol-ksk.key et paris13.lol-ksk.private qu'on place dans le répertoire paris13.lol.dnssec .