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

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 270 : Ligne 270 :
== '''23/11/2023:''' ==
== '''23/11/2023:''' ==


* Sécurisation des clés: chmod 440 berlin2.key
* Sécurisation de la clé privée : chmod 440 berlin2.key
*Ajout des deux dns records dans notre fichier: /etc/bind/db.berlin2.lol
*Ajout du dns secondaire : ns6.gandi.net
*Recherche des adresse IPv4 et IPV6: host ns6.gandi.net
*Ajout des deux adresses IP dans le fichier: /config.name.local
*Incrémentation du numéro série puis service bind9 restart
*Sur le site gandi.net: nous avons ajouté le dns secondaire : ns6.gandi.net
 
=== Sécurisation dnssec: ===
*Gestion automatique des clefs: dans le fichier: /etc/bind/named.conf.local<syntaxhighlight lang="linux-config">
dnssec-policy "berlin2-lol" {
    keys {
        ksk key-directory lifetime unlimited algorithm 13;
        zsk key-directory lifetime unlimited algorithm 13;
    };
    nsec3param;
};


*Sécurisation dns:
*Gestion automatique des clefs<syntaxhighlight lang="linux-config">
  key-directory "/etc/bind/keys";
  key-directory "/etc/bind/keys";
  auto-dnssec maintain;
  dnssec-policy "berlin2-lol";
  inline-signing yes;
  inline-signing yes;
</syntaxhighlight>Note: dnssec-policy ne fonctionne pas sur bind9, nous avons dons mis à jour bind9 à la dernière version  nommé "named",
*J'ai commencé par modifier les sources dans '''/etc/apt/sources.list''' (chimaera) puis j'ai mis à jour avec '''apt update''' et '''apt install bind9'''
*Service named restart
=== Validation du certificat sur gandi: ===
Apres avoir reçu le certificat dns sur gandi, je l'ai télechargé et je l'ai copié sur la machine mandataire puis sur la machine de service: <syntaxhighlight lang="linux-config">
scp /etc/ssl/private/berlin2.key root@193.48.57.165:/etc/ssl/private/
scp /etc/ssl/certs/berlin2.lol.crt root@192.168.165.3:/etc/ssl/certs
</syntaxhighlight>
* Modification du virtualhost de la machine de service: /etc/apache2/sites-available/vhost-https.conf
<syntaxhighlight lang="linux-config">
# vhost https
<VirtualHost *:443>
  DocumentRoot /var/www/html
  ServerName  berlin2.lol
  ServerSignature Off
  ErrorLog ${APACHE_LOG_DIR}/berlin2.log     
  LogLevel info     
  CustomLog ${APACHE_LOG_DIR}/berlin2.log combined     
  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/berlin2.lol.crt
  SSLCertificateKeyFile /etc/ssl/private/berlin2.key
</VirtualHost>
</syntaxhighlight>
* Modification du virtualhost de la machine mandataire: /etc/apache2/sites-available/vhost-https.conf <syntaxhighlight lang="linux-config">
<VirtualHost *:443>
  DocumentRoot /var/www/html
  ServerName berlin2.lol
  ServerAlias www.berlin2.lol
  ServerSignature Off
  ErrorLog ${APACHE_LOG_DIR}/error_berlin2.log
  LogLevel info
  CustomLog ${APACHE_LOG_DIR}/access_berlin2.log combined
  SSLEngine on
  SSLCertificateFile  /etc/ssl/certs/berlin2.lol.crt
  SSLCertificateKeyFile /etc/ssl/private/berlin2.key
  SSLProxyEngine on
  ProxyPass / http://192.168.165.3
  ProxyPassReverse / http://192.165.3
</VirtualHost>
</syntaxhighlight>
</syntaxhighlight>
* Activation du virtualhost: a2ensite vhost-https.con
* puis a2enmode proxy*(pour activer proxy et proxy_http)

Version du 23 novembre 2023 à 19:52

Informations :

IP : 172.26.145.112

Nom du domaine: berlin2.lol

Machine de service: berlin

Machine mandataire: judo

13/09/2023 :

  • Création de la VM
xen-create-image --hostname=berlin --ip=172.26.145.112 --dir=/usr/local/xen --dhcp
  • Configuration de la VM
xen create berlin.cfg
  • Accéder à la VM
xen console berlin
  • vi /etc/network/interfaces : remplacer DHCP par static
  • Mise en place de l'adressage IP pour ssh :
address 172.26.145.112/24
gateway 172.26.145.254
  • Activation du PermitRootPassword dans /etc/ssh/sshd_config
PermitRootLogin yes

14/09/2023 :

  • Configuration de l'interface eth0:
nano /etc/network/interfaces
  • Nous avons configuré le fichier /etc/network/interfaces
auto eth0
iface eth0 inet static
address 172.26.145.109/24
gateway 172.26.145.254

Création d’un conteneur à la main

  • Sous machine Zabeth:
dd if=/dev/zero of=toto bs=1024k count=10240
mkfs /home/pifou/toto
mkdir tmp/mnt
mount -oloop /home/pifou/toto /tmp/mnt
apt install debootstrap
debootstrap stable /tmp/mnt
echo "proc /proc proc defaults 0 0" >> /tmp/mnt/etc/fstab
unshare -p -f -m chroot /tmp/mnt  /bin/sh -c "mount /proc ; /bin/bash"

Docker

docker run -i -t debian /bin/bash

02/10/2023

  • Configuration du ssh : /etc/ssh/sshd_config
    PermitRootLogin yes
    
  • Installer apache2 et bind9
  • créez deux partitions LVM (var et home) de 10G pour notre VM:
lvcreate -L10G -nberlin-var virtual

lvcreate -L10G -nberlin-home virtual

05/10/2023

  • Nous avons implanté les répertoires /var et /home de la machine virtuelle sur les partitions LVM
mkdir /new-home
mkdir /new-var
mkfs /dev/xvdb1
mkfs /dev/xvdb2
mount /dev/xvdb1 /new-home
mount /dev/xvdb2 /new-var
mv /var/* /new-var
  • lsblk
xvda1 202:1    0  512M  0 disk [SWAP]
xvda2 202:2    0   10G  0 disk /
xvdb1 202:17   0   10G  0 disk /root/new-home
xvdb2 202:18   0   10G  0 disk /root/new-var
  • nano /etc/fstab
/dev/xvdb1 /home ext2 defaults 0 2
/dev/xvdb2 /var  ext4 defaults 0 2
umount /root/new-var
umount /root/new-home
mount -a
  • lsblk
xvda1 202:1    0  512M  0 disk [SWAP]
xvda2 202:2    0   10G  0 disk /
xvdb1 202:17   0   10G  0 disk /home
xvdb2 202:18   0   10G  0 disk /var

Création de la machine mandataire judo(avec Baptiste):

  • 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

  • Dand le fichier : /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 la machine de service paris :
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 des interfaces sur la machine de service berlin :
auto eth1
iface eth1 inet static
        address 192.168.165.3/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

Nous avons maintenant un réseau privé entre nos deux machines de services et notre machine mandataire.

  • Mise en place de la mascarade:
    iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.165.0/24
    apt install iptables-persistent
    iptable -save
    
  • Dans le fichier /etc/sysctl.conf :( nous avons modifié la ligne permettant le forward ipv4 permettant a nos machines d'envoyer des paquets sur internet.
  • pour activer le transfert de paquets IP
    net.ipv4.ip_forward=1
    

Pour se connecter sur nos machines on utilise maintenant cette commande ssh -J root@193.48.57.165 root@192.168.165.3

  • Création du serveur DNS sur gandi:
ns1.berlin2.lol

193.48.57.165
2001:660:4401:60a0:216:3eff:fe0b:d504

10/11/2023:

  • Modification: nano /etc/bind/db.berlin2.lol
$TTL 1H
berlin2.lol.    IN      SOA     ns1.berlin2.lol. berlin222@mail.com. (
                                        2011041902 ; Serial
                                        1H ; Refresh
                                        15M ; Retry
                                        2W ; Expire
                                        3M ; Minimum TTL
                                        )
berlin.lol.      IN NS   ns1.berlin2.lol.
berlin.lol.      IN A    193.48.57.165
ns1.berlin2.lol. IN A    193.48.57.165 
ns1.berlin2.lol. IN AAAA  2001:660:4401:60a0:216:3eff:fe9b:446d
www.berlin2.lol. IN CNAME ns1.berlin2.lol.
  • Ajout de la zone dans le fichier named.conf.local :
zone "berlin2.lol" {
    type master;
    file "/etc/bind/db.berlin2.lol";
    allow-transfer { 192.168.165.1; };
};
  • Machine mandataire :

modification du fichier de config named.config.local, nous avons ajouté les deux zones de nos machines de service:

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

Accès https sur apache, Création d'un certificat :

https://www.vincentliefooghe.net/content/activer-un-acc%C3%A8s-https-sur-apache
  • Création d'un certificat :
    openssl req -nodes -newkey rsa:2048 -sha256 -keyout berlin2.key -out berlinserver.csr -utf8
    
  • Création du Virtual Host :
    # vhost https
    <VirtualHost *:443>
      DocumentRoot /var/www/html
      ServerName  berlin2.lol
    
      ServerSignature Off
      ErrorLog ${APACHE_LOG_DIR}/berlin2.log      
      LogLevel info      
      CustomLog ${APACHE_LOG_DIR}/berlin2.log combined      
    
      SSLEngine on
      SSLCertificateFile /etc/ssl/certs/berlinserver.crt
      SSLCertificateKeyFile /etc/ssl/private/berlin2.key
    </VirtualHost>
    

23/11/2023:

  • Sécurisation de la clé privée : chmod 440 berlin2.key
  • Ajout des deux dns records dans notre fichier: /etc/bind/db.berlin2.lol
  • Ajout du dns secondaire : ns6.gandi.net
  • Recherche des adresse IPv4 et IPV6: host ns6.gandi.net
  • Ajout des deux adresses IP dans le fichier: /config.name.local
  • Incrémentation du numéro série puis service bind9 restart
  • Sur le site gandi.net: nous avons ajouté le dns secondaire : ns6.gandi.net

Sécurisation dnssec:

  • Gestion automatique des clefs: dans le fichier: /etc/bind/named.conf.local
    dnssec-policy "berlin2-lol" {
        keys {
            ksk key-directory lifetime unlimited algorithm 13;
            zsk key-directory lifetime unlimited algorithm 13;
        };
        nsec3param;
    };
    
     key-directory "/etc/bind/keys";
     dnssec-policy "berlin2-lol";
     inline-signing yes;
    
    Note: dnssec-policy ne fonctionne pas sur bind9, nous avons dons mis à jour bind9 à la dernière version nommé "named",
  • J'ai commencé par modifier les sources dans /etc/apt/sources.list (chimaera) puis j'ai mis à jour avec apt update et apt install bind9
  • Service named restart

Validation du certificat sur gandi:

Apres avoir reçu le certificat dns sur gandi, je l'ai télechargé et je l'ai copié sur la machine mandataire puis sur la machine de service:

scp /etc/ssl/private/berlin2.key root@193.48.57.165:/etc/ssl/private/
scp /etc/ssl/certs/berlin2.lol.crt root@192.168.165.3:/etc/ssl/certs
  • Modification du virtualhost de la machine de service: /etc/apache2/sites-available/vhost-https.conf
# vhost https
<VirtualHost *:443>
  DocumentRoot /var/www/html
  ServerName  berlin2.lol

  ServerSignature Off
  ErrorLog ${APACHE_LOG_DIR}/berlin2.log      
  LogLevel info      
  CustomLog ${APACHE_LOG_DIR}/berlin2.log combined      

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/berlin2.lol.crt
  SSLCertificateKeyFile /etc/ssl/private/berlin2.key
</VirtualHost>
  • Modification du virtualhost de la machine mandataire: /etc/apache2/sites-available/vhost-https.conf
    <VirtualHost *:443>
      DocumentRoot /var/www/html
      ServerName berlin2.lol
      ServerAlias www.berlin2.lol
    
      ServerSignature Off
      ErrorLog ${APACHE_LOG_DIR}/error_berlin2.log
      LogLevel info
      CustomLog ${APACHE_LOG_DIR}/access_berlin2.log combined
    
      SSLEngine on
      SSLCertificateFile  /etc/ssl/certs/berlin2.lol.crt
      SSLCertificateKeyFile /etc/ssl/private/berlin2.key
      SSLProxyEngine on
      ProxyPass / http://192.168.165.3
      ProxyPassReverse / http://192.165.3
    </VirtualHost>
    
  • Activation du virtualhost: a2ensite vhost-https.con
  • puis a2enmode proxy*(pour activer proxy et proxy_http)