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 <code> allow-recursion {localhost;}; <\code>

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;};
};