Télécharger le fichier pour plus de lisibilité

🔹 Configuration réseau

⚙️ Configuration réseau d'une machine de service

  auto eth0
iface eth0 inet6 auto
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0 #Possibilité de juste mettre /28 à la fin de l'ip juste au-dessus
        gateway 192.168.1.1 # Machine mandataire (faire la masquarade)
auto eth1
iface eth1 inet6 auto

⚙️ Configuration réseau d'une machine mandataire

# Interface eth0 (réseau local)
auto eth0
iface eth0 inet6 auto
iface eth0 inet static
    address 192.168.1.1       # Adresse IP statique pour l'interface eth0 dans le réseau local
    netmask 255.255.255.0     # Masque de sous-réseau pour eth0

# Interface eth1 (interface avec une adresse publique)
auto eth1
iface eth1 inet static
    address 193.48.57.170     # Adresse IP publique de la machine mandataire (gateway)
    netmask 255.255.255.224   # Masque de sous-réseau pour eth1
    gateway 193.48.57.161     # Passerelle pour accéder à Internet via eth1

🌐 Configuration du Masquerading (sur la passerelle de connexion)

  1. Vérifier la connectivité et l'interface réseau de la passerelle
  2. Activer le Forwarding IP
  net.ipv4.ip_forward = 1
  1. Configurer le Masquerading avec iptables
  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  1. Vérifier la règle iptables
  iptables -t nat -L -v
  1. Rendre la configuration iptables persistante
  apt install iptables-persistent

🔄 Redirection de port (exemple avec ssh)

iptables -t nat -A PREROUTING -p tcp --dport 2201 -j DNAT --to-destination 192.168.1.2:22
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 22 -j ACCEPT

Redirection du port 2201 de la machine sur lequel la commande est lancée verse le port 22 de la machine 192.168.1.1.

Rendre la configuration iptables persistante

  apt install iptables-persistent

🛠 Vérifications et Tests

 ip a  # Vérifie les interfaces réseau et les adresses IP
brctl show # Affiche tous les bridges créés sur le système et les interfaces associées
brctl delbr br0 # Cela supprimera le bridge "br0" et toutes les interfaces qui lui sont associées

🔹 BIND9 (DNS)

📌 Fichiers de configuration

Options

        dnssec-validation auto;
        allow-query { any;};
        recursion no;
        //allow-query-cache { trusted; };
        //allow-recursion { any; };
        allow-transfer{ none; };
        version "mine";
        listen-on-v6 { any; };

📑 Fichiers de zones

    zone "ekko.my"{
      type secondary; // version politiquement correcte de slave
      file "/etc/bind/ekko.my";
      primaries{ 2001:660:4401:60a0:216:3eff:feec:a9e; }; #Adresse IP de la machine ou se trouve la zone primaire
    };

📑 Exemple de fichier de zone DNS pour ekko.my

$TTL 500
@       IN      SOA     ns.ekko.my. admin.ekko.my. (
                   2025031202  ; Version
                   21600        ; Refresh secondaire (6h)
                   3600         ; Tentative secondaire (1h)
                   2592000      ; Expiration (30j)
                   86400 )      ; Negative cache (24h)

@       IN      NS      ns.ekko.my.
@       IN      NS      ns1.caitlyn.eu.

ns      IN      AAAA    2001:660:4401:60a0:216:3eff:feec:a9e
        IN      A       193.48.57.170
matrix  IN      A       195.101.204.155

@       IN      A       193.48.57.170
@       IN      AAAA    2001:660:4401:60a0:216:3eff:feec:a9e
www     IN      CNAME   ekko.my.

Explication du fichier de zone

  1. $TTL 500 : Définit un TTL (Time To Live) de 500 secondes pour les enregistrements DNS, ce qui spécifie la durée pendant laquelle les réponses peuvent être mises en cache.
  2. @ IN SOA ns.ekko.my. admin.ekko.my. : Enregistrement SOA (Start of Authority) qui définit le serveur DNS principal pour le domaine, ainsi que les informations administratives.
  3. @ IN NS ns.ekko.my. et @ IN NS ns1.caitlyn.eu. : Définit les serveurs de noms autoritaires pour le domaine ekko.my.
  4. ns IN AAAA 2001:660:4401:60a0:216:3eff:feec:a9e : Enregistrement AAAA pour l'adresse IPv6 du serveur ns.ekko.my.
  5. ns IN A 193.48.57.170 : Enregistrement A pour l'adresse IPv4 du serveur ns.ekko.my.
  6. matrix IN A 195.101.204.155 : Enregistrement A pour l'adresse IPv4 du sous-domaine matrix.ekko.my.
  7. @ IN A 193.48.57.170 : Enregistrement A pour l'adresse IPv4 du domaine principal ekko.my.
  8. @ IN AAAA 2001:660:4401:60a0:216:3eff:feec:a9e : Enregistrement AAAA pour l'adresse IPv6 du domaine principal ekko.my.
  9. www IN CNAME ekko.my. : Enregistrement CNAME pour rediriger www.ekko.my vers ekko.my.

🛠 Vérification et Debug

🔹 Apache2

📌 Fichiers de configuration

📑 Apache2 - Fichier de configuration pour ekko.my

Contenu du fichier /etc/apache2/sites-available/ekko.my.conf

  <VirtualHost *:80>
    ServerName ekko.my
    ServerAlias www.ekko.my
    Redirect permanent / https://ekko.my/
</VirtualHost>

<VirtualHost *:443>
    ServerName ekko.my
    DocumentRoot /var/www/ekko.my

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/ekko.my.crt
    SSLCertificateKeyFile /etc/apache2/ssl/ekko.my.key
    SSLCertificateChainFile /etc/apache2/ssl/ekko.my.pem

    <Directory /var/www/ekko.my>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/ekko.my_error.log
    CustomLog ${APACHE_LOG_DIR}/ekko.my_access.log combined
</VirtualHost>

Explication détaillé

  1. VirtualHost sur le port 80 (HTTP)
  2. VirtualHost sur le port 443 (HTTPS)
  3. Configuration SSL

📑 Apache2 en reverse proxy

<VirtualHost *:80>
    ServerName ekko.my
    Redirect permanent / https://ekko.my/
    ServerAlias www.ekko.my

</VirtualHost>

<VirtualHost *:443>
    ServerName ekko.my

    SSLProxyEngine on
    ProxyPreserveHost on
    ProxyPass / https://ekko.my/
    ProxyPassReverse / https://ekko.my/

    ErrorLog /var/log/apache2/ekko_error.log


    SSLCertificateFile /etc/ssl/certs/ekko.my.crt
    SSLCertificateKeyFile /etc/ssl/private/ekko.my.key
    SSLCertificateChainFile /etc/ssl/certs/ekko_chain.pem

</VirtualHost>

🛠 Commandes, debogage et autre

  a2enmod proxy #Activer un module
  a2dismod proxy #Désactiver un module
  apache2ctl -M #Liste des modules actifs
  a2ensite ekko.my #Activer un module
  a2dissite ekko.my #Désactiver un site

🔹 Certificats SSL (Let's Encrypt)

📌 Mini Tutoriel Let's Encrypt avec Certbot

  1. Installation de Certbot (si non installé) :

    apt install certbot python3-certbot-apache  # Debian/Ubuntu
    

    Installe Certbot et le module pour Apache.

  2. Générer un certificat SSL :

    certbot certonly --webroot -w /var/www/html -d ekko.my --email tonemail@example.com
    
    • certonly : Génère uniquement le certificat sans modifier la config Apache.
    • --webroot -w /var/www/html : Utilise le dossier web pour validation.
    • -d ekko.my : Domaine concerné.
    • --email : Adresse pour notifications et renouvellement.
  3. Renouvellement manuel des certificats :

    certbot renew --dry-run
    

    Simule un renouvellement pour vérifier si tout fonctionne.

  4. Ajout au cron pour le renouvellement automatique :

    echo "0 3 * * * certbot renew --quiet" | crontab -
    

    Exécute le renouvellement chaque jour à 3h du matin.

  5. Redémarrer Apache après renouvellement (si nécessaire) :

    systemctl restart apache2
    

🔹 IPv6 et Routage

🔹 Autres Commandes Utiles