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

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
(Partie sur les conteneurs)
 
Aucun résumé des modifications
 
(32 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
Partie sur les conteneurs :  
Nom de domaine : riga1.lol   


dd if=/dev/zero of=fs bs=1024k count=10240
== Partie sur les conteneurs ==


mkfs -t ext4 fs
dd if=/dev/zero of=fs bs=1024k count=10240
mkfs -t ext4 fs
mkdir /tmp/mnt
mount -o loop fs /tmp/mnt
apt install debootstrap
debootstrap stable /tmp/mnt
echo "proc /proc proc defaults 0 0" >> tmp/mnt/fstab
unshare  -p -f -m chroot /tmp/mnt  /bin/sh -c "mount /proc ; /bin/bash"


mkdir /tmp/mnt


mount -o loop fs /tmp/mnt
== Créer la VM ==
*Se connecter au serveur en tant que root :
ssh root@capbreton.plil.info
*Créer le fichier de config de la VM :
xen-create-image --hostname=Riga--ip=172.26.145.102 --netmask=255.255.255.0 --gateway=172.26.145.254 --bridge=bridgeStudents --dir=/usr/local/xen --password=glopglop
*Créer la VM :
xen create /etc/xen/kiev.cfg
*Lister les VM :
xen list
*se connecter à la VM depuis capbreton:
xen console


apt install debootstrap
Nom de domaine : riga1.lol


debootstrap stable /tmp/mnt
== Configurer le SSH ==
Modifier le fichier /etc/ssh/sshd_config:
*Autoriser la connexion en root :
PermitRootLogin yes
*Redémarrer le service SSH :
service ssh restart
*se connecter en root via ssh :
ssh root@172.26.145.102


echo "proc /proc proc defaults 0 0" >> tmp/mnt/fstab
== Créer les partitions LVM ==
*Créer 2 partitions LVM sur capbreton pour y rattacher, par la suite /home et /var :
lvcreate -L10G -n Riga-home virtual
lvcreate -L10G -n Riga-var virtual
*Lister les LVM :
lsblk
*Dans '''/etc/xen/Riga.cfg''', ajouter les 2 partitions  :
'phy:/dev/virtual/Riga-home, xvdb, w',<br>
'phy:/dev/virtual/Riga-var, xvdc, w',
  #  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/Riga-home,xvdb,w',
                'phy:/dev/virtual/Riga-var,xvdc,w',


unshare  -p -f -m chroot /tmp/mnt  /bin/sh -c "mount /proc ; /bin/bash"
Sur la VM :
<li><code> mkfs /dev/xvdc                  // formater et créer un système de fichier</code>
<li><code> mkfs /dev/xvdb </code>
<li><code> mkdir new-var                    // créer un dossier </code>
<li><code> mount /dev/xvdc new-var/ </code>
<li><code> cp -r /var/* new-var/            // on copie dans le fichier new-var</code>
<li><code> mkdir /mnt/new_home </code>
<li> <code>mount /dev/xvdb /mnt/new-home </code>
 
<li> <code>cp -r /home/* /mnt/new_home </code>
 
<li> <code>vi /etc/fstab                    // ajout dans le fichier des lignes suivantes :
 
/dev/xvdb  /home ext4 defaults 0 2
/dev/xvdc  /var ext4 defaults 0 2
 
<li><code> reboot </code>
<li><code> umount new-var                  // On démonte </code> <li>finis conf de bind9 mais erreurs du restart, revoir la config
 
            ]
*Eteindre la VM :
xen shut Riga
 
== Créer la machine mandataire ==
xen-create-image --hostname=balltrap --ip=193.48.57.163 --netmask=255.255.255.240 --bridge=SE2a5 --dir=/usr/local/xen --password=glopglop --gateway=193.48.57.161
 
xen create balltrap.cfg
*Se connecter à la VM
xen console balltrap
*Vérifier qu'on ping google
*Dans /etc/network/interfaces, obtenir une IPv6 par dhcp :
iface eth0 inet6 auto
Installer le serveur ssh, le serveur Web apache2 et le serveur DNS bind.
 
== Créer la mascarade ==
*Créer un bridge '''balltrap''' dans /etc/network/interfaces :
 
*Up l'interface du bridge
ifup balltrap
*Ajouter le bridge dans le fichier de config de chaque VM (dans vif):
'ip=192.168.163.1, bridge=balltrap'
*Redémarrer la VM et, dans /etc/network/interfaces, lui déclarer une nouvelle interface réseau (eth1) avec une IP privée statique :
balltrap = 192.168.163.1<br>
kiev = 192.168.163.2<br>
Riga = 192.168.163.3<br>
*Monter l'interface réseau eth1 nouvellement créée :
ifup -a
*Vérifier qu'elle est bien montée :
ip a
Ping les autres IP dans ce réseau privé.
*Créer une redirection de l'interface routée et notre interface privée sur la machine mandataire :
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.10.0/24
apt install iptables-persistent
iptables-save
iptables-save >> /etc/iptables/rules.v4
Vérifier dans /etc/iptables les nouvelles règles de routage.
*Se connecter en ssh depuis capbreton à ma machine de service en utilisant la machine mandataire comme jump :
ssh -J root@193.48.57.163 root@192.168.163.3
*Activer le routage (autoriser la redirection d'IP) (en mode définitif) sur notre machine mandataire : (dans quel dossier ???)
sysctl net.ipv4.ip_forward=1
*Créer maintenant des règles de routages pour se connecter en ssh aux machines de service en utilisant un port différent.
iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2201 -j DNAT --to-destination 192.168.163.2:22
iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2202 -j DNAT --to-destination 192.168.163.3:22
*Se connecter en ssh à la machine de service depuis capbreton en utilisant sur le port 2201 :
ssh root@193.48.57.163 -p 2201
 
== Configurer le serveur DNS ==
 
Sur https://www.gandi.net, acheter le nom de domaine '''riga1.lol''' et spécifier les serveurs DNS (GlueRecords + externalServerNames):
*DNS principal (machine de service) -> IPv6
*DNS secondaire (machine mandataire) -> IPv4
 
</br>
Sur la machine de service, ajouter le serveur DNS de google (8.8.8.8) dans '''/etc/resolv.conf (nameserver)'''
*Maintenant on peut télécharger bind9 sur la machine de service. </br>
Configurer le bind9 :
Dans '''/etc/bind/named.conf.local''', créer la zone DNS (sur la machine de service et mandataire):
*Sur la machine de service (master)
  zone "riga1.lol" {
    type master;
    file "/etc/bind/db.riga1.lol";
    allow-transfer {192.168.163.1; };
  };
*Sur la machine mandataire (slave)
  zone "riga1.lol" {
    type slave;
    file "/etc/bind/db.riga1.lol";
    allow-transfer {192.168.163.3; };
  };*
 
Dans '''/etc/bind/named.conf.options''', ajouter '''allow-recursion {127.0.0.1}'''[[Fichier:Dns named.conf.jpg|centré|sans_cadre|233x233px]]
 
  listen-on-v6 { any; }
  listen-on { any; };
  allow-recursion {127.0.0.1; };
 
 
 
 
Le fichier '''/etc/bind/db.riga1.lol''' contient les enregistrements DNS
 
[[Fichier:Dns db.riga1 lol.jpg|centré|sans_cadre]]
 
 
 
Vérifier qu'il n'y a pas d'erreur de conf DNS :
*<code> cat /var/log/daemon.log </code>
 
Redémarrer le service DNS (ne pas oublier d'incrémenter le SN dans '''named.conf.local''' à chaque restart :
*<code> service bind9 restart </code>
 
Vérifier qu'un serveur DNS est bien présent sur une machine pour la zone demandée (installer le package dnsutils préalablement) :
*<code> dig @localhost riga1.lol </code> ou <code> dig 192.168.163.3 riga1.lol </code>
 
 
Installer apache2 sur la machine de service et vérifier avec un browser que notre site web www.riga1.lol est en ligne:
*On peut aussi tester la résolution DNS avec <code> nslookup ns1.riga1.lol </code> et  <code> nslookup www.riga1.lol </code>
<br>
 
==DNSSEC==
Tout d'abord il a fallut mettre à jour bind9 v9.16
 
dans /etc/apt/sources.list changer weowolf en chimaera<li>
* Modification du fichier <code>/etc/bind/named.conf.options</code> :[[Fichier:Dsnsec option.jpg|centré|sans_cadre]]
 
 
* Modification du fichier <code>/etc/bind/named.conf.local</code> :
[[Fichier:Dnssec local.jpg|centré|sans_cadre]]On peut voir ensuite qu'un fichier "keys à été créé et contient des clés générées automatiquement :[[Fichier:Dnssec keys.jpg|centré|sans_cadre|441x441px]]service bind(named) restart
 
 
 
<li>valider le dnssec dans gandi en collant la clé ksk avec l'alogorithme 13<li>
 
== HTTPS & Apache2 ==
 
<code>apt install openssl </code>
 
Générer une CSR : dans /etc/ssl
 
<code>openssl req -nodes -newkey rsa:2048 -sha256 -keyout riga1.lol.key -out riga1.lol.csr -utf8</code>
 
Remarque : Common Name mettre riga1.lol
 
Sécuriser l'accès à la clé privée
<code>
mv riga1.lol.key /private
 
chmod 440 riga1.lol.key
</code>
 
Copier le certificat obtenu sur Gandi :
 
riga1.lol.crt dans /etc/ssl/certs
 
Copier de ma machine vers ma VM service : (après avoir mkdir transfer dans la machine mandataire)
 
Copie de ma machine vers la machine mandataire
 
<code>zabeth10:~/Téléchargements$ scp -r -p riga1.lol.crt root@193.48.57.168:/etc/transfer/</code>
 
Copie de ma machine mandataire vers la machine service :
 
/etc/transfert scp -r -p riga1.lol.crt root@192.48.57.3:/etc/ssl/certs</code>
 
 
Activer le mode SSL sur apache2 : <code>a2enmod ssl</code> et configurer apache2 pour gérer du HTTPS sur le port 443
 
Créer le fichier  /etc/apache2/sites-available/vhosts-https.conf et le paramétrer de la manière suivante :
 
 
lancer le site :
 
<code>a2ensite vhosts-https.conf
 
service apache2 restart</code>

Version actuelle datée du 24 novembre 2023 à 10:33

Nom de domaine : riga1.lol

Partie sur les conteneurs

dd if=/dev/zero of=fs bs=1024k count=10240
mkfs -t ext4 fs
mkdir /tmp/mnt
mount -o loop fs /tmp/mnt
apt install debootstrap
debootstrap stable /tmp/mnt
echo "proc /proc proc defaults 0 0" >> tmp/mnt/fstab
unshare  -p -f -m chroot /tmp/mnt  /bin/sh -c "mount /proc ; /bin/bash"


Créer la VM

  • Se connecter au serveur en tant que root :
ssh root@capbreton.plil.info
  • Créer le fichier de config de la VM :
xen-create-image --hostname=Riga--ip=172.26.145.102 --netmask=255.255.255.0 --gateway=172.26.145.254 --bridge=bridgeStudents --dir=/usr/local/xen --password=glopglop
  • Créer la VM :
xen create /etc/xen/kiev.cfg
  • Lister les VM :
xen list
  • se connecter à la VM depuis capbreton:
xen console

Nom de domaine : riga1.lol

Configurer le SSH

Modifier le fichier /etc/ssh/sshd_config:

  • Autoriser la connexion en root :
PermitRootLogin yes
  • Redémarrer le service SSH :
service ssh restart
  • se connecter en root via ssh :
ssh root@172.26.145.102

Créer les partitions LVM

  • Créer 2 partitions LVM sur capbreton pour y rattacher, par la suite /home et /var :
lvcreate -L10G -n Riga-home virtual
lvcreate -L10G -n Riga-var virtual
  • Lister les LVM :
lsblk
  • Dans /etc/xen/Riga.cfg, ajouter les 2 partitions  :

'phy:/dev/virtual/Riga-home, xvdb, w',
'phy:/dev/virtual/Riga-var, xvdc, w',

 #  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/Riga-home,xvdb,w',
                'phy:/dev/virtual/Riga-var,xvdc,w',

Sur la VM :

  • mkfs /dev/xvdc // formater et créer un système de fichier
  • mkfs /dev/xvdb
  • mkdir new-var // créer un dossier
  • mount /dev/xvdc new-var/
  • cp -r /var/* new-var/ // on copie dans le fichier new-var
  • mkdir /mnt/new_home
  • mount /dev/xvdb /mnt/new-home
  • cp -r /home/* /mnt/new_home
  • vi /etc/fstab // ajout dans le fichier des lignes suivantes : /dev/xvdb  /home ext4 defaults 0 2 /dev/xvdc  /var ext4 defaults 0 2
  • reboot
  • umount new-var // On démonte
  • finis conf de bind9 mais erreurs du restart, revoir la config ]
    • Eteindre la VM :
    xen shut Riga

    Créer la machine mandataire

    xen-create-image --hostname=balltrap --ip=193.48.57.163 --netmask=255.255.255.240 --bridge=SE2a5 --dir=/usr/local/xen --password=glopglop --gateway=193.48.57.161
    
    xen create balltrap.cfg
    
    • Se connecter à la VM
    xen console balltrap
    
    • Vérifier qu'on ping google
    • Dans /etc/network/interfaces, obtenir une IPv6 par dhcp :
    iface eth0 inet6 auto
    

    Installer le serveur ssh, le serveur Web apache2 et le serveur DNS bind.

    Créer la mascarade

    • Créer un bridge balltrap dans /etc/network/interfaces :
    • Up l'interface du bridge
    ifup balltrap
    
    • Ajouter le bridge dans le fichier de config de chaque VM (dans vif):
    'ip=192.168.163.1, bridge=balltrap'
    
    • Redémarrer la VM et, dans /etc/network/interfaces, lui déclarer une nouvelle interface réseau (eth1) avec une IP privée statique :

    balltrap = 192.168.163.1
    kiev = 192.168.163.2
    Riga = 192.168.163.3

    • Monter l'interface réseau eth1 nouvellement créée :
    ifup -a
    
    • Vérifier qu'elle est bien montée :
    ip a
    

    Ping les autres IP dans ce réseau privé.

    • Créer une redirection de l'interface routée et notre interface privée sur la machine mandataire :
    iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.10.0/24
    apt install iptables-persistent
    iptables-save
    iptables-save >> /etc/iptables/rules.v4
    

    Vérifier dans /etc/iptables les nouvelles règles de routage.

    • Se connecter en ssh depuis capbreton à ma machine de service en utilisant la machine mandataire comme jump :
    ssh -J root@193.48.57.163 root@192.168.163.3
    
    • Activer le routage (autoriser la redirection d'IP) (en mode définitif) sur notre machine mandataire : (dans quel dossier ???)
    sysctl net.ipv4.ip_forward=1
    
    • Créer maintenant des règles de routages pour se connecter en ssh aux machines de service en utilisant un port différent.
    iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2201 -j DNAT --to-destination 192.168.163.2:22
    iptables -A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 2202 -j DNAT --to-destination 192.168.163.3:22
    
    • Se connecter en ssh à la machine de service depuis capbreton en utilisant sur le port 2201 :
    ssh root@193.48.57.163 -p 2201
    

    Configurer le serveur DNS

    Sur https://www.gandi.net, acheter le nom de domaine riga1.lol et spécifier les serveurs DNS (GlueRecords + externalServerNames):

    • DNS principal (machine de service) -> IPv6
    • DNS secondaire (machine mandataire) -> IPv4


    Sur la machine de service, ajouter le serveur DNS de google (8.8.8.8) dans /etc/resolv.conf (nameserver)

    • Maintenant on peut télécharger bind9 sur la machine de service.

    Configurer le bind9 : Dans /etc/bind/named.conf.local, créer la zone DNS (sur la machine de service et mandataire):

    • Sur la machine de service (master)
     zone "riga1.lol" {
       type master;
       file "/etc/bind/db.riga1.lol";
       allow-transfer {192.168.163.1; };
     };
    
    • Sur la machine mandataire (slave)
     zone "riga1.lol" {
       type slave;
       file "/etc/bind/db.riga1.lol";
       allow-transfer {192.168.163.3; };
     };*
    
    Dans /etc/bind/named.conf.options, ajouter allow-recursion {127.0.0.1}
    Dns named.conf.jpg
     listen-on-v6 { any; }
     listen-on { any; };
     allow-recursion {127.0.0.1; };
    



    Le fichier /etc/bind/db.riga1.lol contient les enregistrements DNS

    Dns db.riga1 lol.jpg


    Vérifier qu'il n'y a pas d'erreur de conf DNS :

    • cat /var/log/daemon.log

    Redémarrer le service DNS (ne pas oublier d'incrémenter le SN dans named.conf.local à chaque restart :

    • service bind9 restart

    Vérifier qu'un serveur DNS est bien présent sur une machine pour la zone demandée (installer le package dnsutils préalablement) :

    • dig @localhost riga1.lol ou dig 192.168.163.3 riga1.lol


    Installer apache2 sur la machine de service et vérifier avec un browser que notre site web www.riga1.lol est en ligne:

    • On peut aussi tester la résolution DNS avec nslookup ns1.riga1.lol et nslookup www.riga1.lol


    DNSSEC

    Tout d'abord il a fallut mettre à jour bind9 v9.16

    dans /etc/apt/sources.list changer weowolf en chimaera
    • Modification du fichier /etc/bind/named.conf.options :
      Dsnsec option.jpg
    • Modification du fichier /etc/bind/named.conf.local :
    Dnssec local.jpg
    On peut voir ensuite qu'un fichier "keys à été créé et contient des clés générées automatiquement :
    Dnssec keys.jpg
    service bind(named) restart


  • valider le dnssec dans gandi en collant la clé ksk avec l'alogorithme 13
  • HTTPS & Apache2

    apt install openssl

    Générer une CSR : dans /etc/ssl

    openssl req -nodes -newkey rsa:2048 -sha256 -keyout riga1.lol.key -out riga1.lol.csr -utf8

    Remarque : Common Name mettre riga1.lol

    Sécuriser l'accès à la clé privée mv riga1.lol.key /private

    chmod 440 riga1.lol.key

    Copier le certificat obtenu sur Gandi :

    riga1.lol.crt dans /etc/ssl/certs

    Copier de ma machine vers ma VM service : (après avoir mkdir transfer dans la machine mandataire)

    Copie de ma machine vers la machine mandataire

    zabeth10:~/Téléchargements$ scp -r -p riga1.lol.crt root@193.48.57.168:/etc/transfer/

    Copie de ma machine mandataire vers la machine service :

    /etc/transfert scp -r -p riga1.lol.crt root@192.48.57.3:/etc/ssl/certs
    


    Activer le mode SSL sur apache2 : a2enmod ssl et configurer apache2 pour gérer du HTTPS sur le port 443

    Créer le fichier /etc/apache2/sites-available/vhosts-https.conf et le paramétrer de la manière suivante :


    lancer le site :

    a2ensite vhosts-https.conf

    service apache2 restart