Atelier SysRes SE2a5 2023/2024 E5

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

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

Vhostparis.png

Séance 23/11 :

Sécurisation du DNS :

Solution Manuelle :

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 .

La version de bind9 utilisée sur l'ordi ne permettant pas cette solution. On va utilisé la méthode automatique.

Solution automatique :

On ajoute dans le fichier de config bind :

Bind58.png

AJout de règles de sécurité du DNS, ce qui va automatiquement créer les clés privées et publiques. On va ensuite mettre notre clé KSK sur Gandi. Après le temps de propagation de Gandi notre dns sera possèdera la protection supplémentaire DNSSEC.

Ajout des certificats https :

on récupère le certificat sur gandi et on l'ajoute sur la machine mandataire ainsi que la machine de service.

On ajoute ensuite sur la machine mandataire des redirection vers la machine de service afin d'afficher la page sur celle-ci.cd

Vhostv2.png