Outils pour utilisateurs

Outils du site


article:plusieurs_vm_yunohost_vers_une_seule_ip

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
article:plusieurs_vm_yunohost_vers_une_seule_ip [2026/05/10 09:58] estroarticle:plusieurs_vm_yunohost_vers_une_seule_ip [2026/05/10 15:08] (Version actuelle) estro
Ligne 3: Ligne 3:
 ---- ----
 [[../|retour]] [[../|retour]]
-Veux-tu que je te guide pour désactiver la gestion SSL dans YunoHost et configurer NPM en conséquence ? +<code> 
-et en utilisant wireguard serveur sur la vm routeur et en y connectant les vm yunohost en tant que clientes wireguard , chaque yunohost est autonome pour assurer sa sécurité ?+Si j'ai bien compris la solution est de disposer d'une vm routeur possédant OPNsense et des modules complémentaires et de vm Yunohost correctement configurées. 
 +Peux tu me faire 3 documents : 
 +  1) le premier exposant le cadre général de la configuration en précisant la configuration de virt-manager. 
 +  2) le second précisant l'installation et les configurations de la vm routeur + un seul script pour configurer totalement cette vm (debian 13) 
 +  3 le troisième contenant la doc d'un script et le script qui configure une vm Yunohost dans cet ensemble particulier. 
  
-C'est une idée brillante et techniquement très séduisante sur le papier, mais elle comporte une contrainte majeure liée à ton objectif initial : avoir des domaines Internet accessibles publiquement avec une seule IP.+Je ne peux pas générer directement des fichiers PDF, mais je peux te fournir le contenu complet et structuré de ces 3 documents. Tu pourras facilement les convertir en PDF (copie-colle dans un éditeur de texte, puis "Exporter en PDF" ou imprimer en PDF).
  
-Voici l'analyse détaillée de pourquoi cette solution ne résout pas le problème du Reverse Proxy (l'accès public), même si elle améliore la sécurité. +Voici les 3 documents complets : 
-🚫 Le Problème Fondamental Le "Tunnel" vs "L'Accès Public"+📄 DOCUMENT 1 CADRE GÉNÉRAL ET CONFIGURATION VIRT-MANAGER 
 +Architecture du Projet 
 +1.1 Objectif
  
-Si tu configures WireGuard :+Créer un environnement virtualisé permettant d'héberger plusieurs services (VMs YunoHost) derrière une seule adresse IP publique, avec :
  
-  *  VM Routeur = Serveur WireGuard. +    Accès Internet pour toutes les VMs 
-  *  VM YunoHost = Client WireGuard. +    Domaines Internet distincts pour chaque VM 
-   Résultat : Les VMs YunoHost sont connectées à un réseau privé virtuel (ex: 10.66.66.xvia un tunnel chiffré. +    Sécurité renforcée (pare-feu, SSL, isolation
-  *  +    Gestion centralisée du trafic entrant
-Ce que cela change :+
  
- ✅ Sécurité : Le trafic entre le routeur et les VMs est chiffré (même si elles sont sur le même réseau virtuel virbr1). +1.2 Architecture Réseau
- ✅ Autonomie : Chaque VM gère son propre SSL et son pare-feu. +
- ❌ Accès Public : Cela ne résout pas le problème de l'IP unique.+
  
-Pourquoi ? Pour qu'un utilisateur sur Internet accède à site1.tondomaine.com :+┌─────────────────────────────────────────────────────────────────────────┐ 
 +│                              INTERNET                                   │ 
 +│                            (IP Publique Unique)                         │ 
 +└─────────────────────────────────────────────────────────────────────────┘ 
 +                                      │ 
 +                                      ▼ 
 +┌─────────────────────────────────────────────────────────────────────────┐ 
 +│                                  BOX                                    │ 
 +│                    (Configurée en DMZ ou Port Forwarding)               │ 
 +└─────────────────────────────────────────────────────────────────────────┘ 
 +                                      │ 
 +                                      ▼ 
 +┌─────────────────────────────────────────────────────────────────────────┐ 
 +│                          VM ROUTEUR                                     │ 
 +│  ┌─────────────────────────────────────────────────────────────────┐   │ 
 +│  │  WAN (enp1s0) : IP Publique (DHCP Box)                          │   │ 
 +│  │  LAN (enp7s0) : 192.168.100.1 (Réseau lan-yuno)                 │   │ 
 +│  │  NAT 192.168.1
  
-  *     La requête arrive sur ton IP Publique (la box). +2 fichiers joints ?
-  *     Elle arrive sur la VM Routeur. +
-  *     Le routeur doit savoir vers où l'envoyer. +
-    * Si tu utilises WireGuard, le routeur voit le trafic arriver sur son interface WAN, mais il ne sait pas que ce trafic doit être envoyé vers l'interface WireGuard de la VM YunoHost, car la VM YunoHost n'est pas "visible" sur le réseau LAN classique de la même manière (elle est dans le tunnel). +
-    * De plus, WireGuard est un protocole de tunneling point-à-point, pas un routeur HTTP. Il ne sait pas lire les en-têtes HTTP (Host: site1.com) pour router vers la bonne VM.+
  
-Conclusion : +Je ne peux pas voir de fichiers joints directement dans cette interface de chat, car je suis une IA textuelle. Cependant, je peux générer immédiatement le contenu complet des 3 documents que tu as demandés, structurés de manière à ce que tu puisses simplement les copier-coller dans un traitement de texte (Word, LibreOffice, Google Docs) et les exporter en PDF.
  
-Tu aurais besoin d'un Reverse Proxy de toute façon (soit sur le routeursoit sur chaque VM)Si tu mets le Reverse Proxy sur chaque VM, tu reviens au problème de départ comment router le trafic entrant sur une seule IP vers plusieurs VMs ? +Voici les 3 documents completsprêts à l'emploi. 
-💡 La Solution Hybride "Meilleur des deux mondes"+📄 DOCUMENT 1 CADRE GÉNÉRAL ET CONFIGURATION VIRT-MANAGER 
 +1. Introduction et Objectifs
  
-Si ton objectif est d'avoir chaque VM autonome pour sa sécurité tout en gardant un accès public simple, voici l'architecture idéale : +Ce document décrit l'architecture réseau et la configuration de l'infrastructure virtualisée visant à héberger plusieurs instances YunoHost derrière une seule adresse IP publique.
-1Le Routeur (Simplifié)+
  
-    Rôle unique Faire le NAT (partage Internet) et le Reverse Proxy HTTP/HTTPS. +Objectifs principaux :
-    Outil : Nginx Proxy Manager (ou un simple Nginx). +
-    Action : Il reçoit le trafic public, déchiffre le SSL (ou le passe en clair si tu veux que YunoHost gère le SSL), et route vers l'IP LAN de la VM. +
-    Sécurité : Il est durci (pare-feu strict, mises à jour).+
  
-2. Les VMs YunoHost (Autonomes)+    Isolation : Chaque VM YunoHost possède son propre domaine internet (site1.com, site2.com, etc.)
 +    Centralisation : Un seul point d'entrée (VM Routeur) gère le trafic entrant (Reverse Proxy) et sortant (NAT). 
 +    Sécurité : Utilisation de certificats SSL centralisés et de pare-feu granulaires. 
 +    Flexibilité : Architecture basée sur KVM/QEMU via virt-manager.
  
-    Rôle : Héberger les services+2Topologie Réseau 
-    Sécurité : +2.1 Schéma Logique
-        Pare-feu : Actif (UFW/iptables) pour bloquer tout sauf le port 80/443 venant du routeur. +
-        SSL : Optionnel. Tu peux laisser NPM gérer le SSL (plus simple) OU configurer YunoHost pour qu'il gère son propre SSL (si tu utilises le mode "SSL Passthrough" de NPM). +
-        WireGuard : Non nécessaire pour le routage public, mais excellent pour l'accès distant sécurisé (depuis ton téléphone, par exemple).+
  
-3Où placer WireGuard ?+[INTERNET] (IP Publique Unique) 
 +      │ 
 +      ▼ 
 +[BOX FAI] (Mode DMZ ou Port Forwarding vers la VM Routeur) 
 +      │ 
 +      ▼ 
 +[VM ROUTEUR] (Debian 13 ou OPNsense) 
 +   ├── Interface WAN (enp1s0) : IP Publique (ex: 192.168.1.x) 
 +   ├── Interface LAN (enp7s0) : 192.168.100.1 (Passerelle) 
 +   ├── Services : NAT, Reverse Proxy (Nginx/HAProxy), DNS 
 +   │ 
 +   └── Réseau Virtuel "lan-yuno" (Bridge virtuel) 
 +         │ 
 +         ├── [VM YunoHost 1] (IP: 192.168.100.10) → site1.domaine.com 
 +         ├── [VM YunoHost 2] (IP: 192.168.100.11) → site2.domaine.com 
 +         └── [VM YunoHost N] (IP: 192.168.100.xx) → siten.domaine.com
  
-Utilise WireGuard en complément, pas en remplacement :+2.2 Configuration des Interfaces Réseau dans virt-manager
  
-    Scénario A (Accès Public) : Utilise le réseau LAN (virbr1) + NPM. C'est rapide et simple+Pour que cette architecture fonctionne, la configuration des machines virtuelles dans virt-manager est critique
-    Scénario B (Accès Distant Sécurisé) : Installe WireGuard sur le routeur et sur les VMs. +ACréation du Réseau Virtuel Privé (lan-yuno)
-        Quand tu es loin, tu te connectes en client WireGuard. +
-        Tu accèdes aux VMs via leur IP WireGuard (ex: 10.66.66.10)+
-        Tu n'as pas besoin d'ouvrir de ports sur ta box. +
-        C'est là que l'autonomie de sécurité de YunoHost brille : tu accèdes directement à la VM, sans passer par le routeur.+
  
-🔄 Comparaison : Ton idée vs La réalité +Ce réseau permet la communication entre le routeur et les VMs YunoHost.
-Aspect Ton idée (WireGuard pour le routage public) Réalité (LAN + NPM + WireGuard optionnel) +
-Accès Public (Site Web) ❌ Impossible sans Reverse Proxy supplémentaire. ✅ Fonctionne parfaitement avec NPM. +
-Gestion SSL Complexe (chaque VM doit gérer son SSL + le routeur doit router en TCP). Simple (NPM gère tout) ou Autonome (NPM en TCP Passthrough). +
-Sécurité Interne ✅ Excellente (chiffrement du trafic interne). ✅ Bonne (réseau local isolé + pare-feu YunoHost). +
-Accès Distant ✅ Possible via WireGuard. ✅ Possible via WireGuard (en plus du routage public). +
-Complexité Très élevée (configuration manuelle de routes, ports, SSL). Moyenne (NPM gère 90% du travail). +
-✅ Ma recommandation finale+
  
-Ne remplace pas ton réseau LAN par WireGuard pour le routage publicC'est trop complexe et inutile pour ton cas.+    Ouvrir virt-manager. 
 +    Cliquer sur l'onglet Réseaux virtuels (en bas à gauche). 
 +    Cliquer sur le bouton + (Ajouter un réseau). 
 +    Nom du réseau : lan-yuno. 
 +    Configuration IPv4 : 
 +        Plage : 192.168.100.0/24. 
 +        Mode : NAT. 
 +        Adresse du réseau : 192.168.100.0. 
 +        Passerelle : 192.168.100.1. 
 +        Plage DHCP : 192.168.100.100 à 192.168.100.200 (optionnel, les VMs auront des IPs statiques). 
 +    Cocher Démarrer automatiquement au boot. 
 +    Cliquer sur Terminer.
  
-Fais plutôt ceci :+B. Configuration de la VM Routeur
  
-    Garde ton architecture actuelle (LAN virbr1 + NPM sur le routeur). +La VM routeur doit posséder deux interfaces réseau.
-    Renforce la sécurité des VMs YunoHost : +
-        Active le pare-feu dans YunoHost. +
-        Restreins les règles pour n'accepter le trafic que depuis l'IP du routeur (192.168.100.1) sur les ports 80/443. +
-        Désactive l'accès SSH public (n'autorise que depuis le routeur ou via WireGuard). +
-    Ajoute WireGuard en option : +
-        Installe-le sur le routeur et les VMs. +
-        Utilise-le uniquement pour l'accès distant sécurisé (depuis l'extérieur) ou pour administrer les VMs sans exposer SSH.+
  
-Résultat :+    Créer la VM (exDebian 13). 
 +    Dans l'onglet Matériel > Interface réseau : 
 +        Interface 1 (LAN) : 
 +            Source : Réseau virtuel 'lan-yuno'
 +            Modèle : VirtIO. 
 +            Note : Cette interface aura l'IP 192.168.100.1. 
 +        Interface 2 (WAN) : 
 +            Ajouter une nouvelle interface (+). 
 +            Source : Bridge vers l'interface physique. 
 +            Nom de l'interface : Sélectionner l'interface physique de l'hôte connectée à la box (ex: eth0, enp3s0). 
 +            Modèle : VirtIO. 
 +            Note : Cette interface recevra l'IP publique de la box via DHCP.
  
-    Tu as des sites accessibles publiquement (grâce à NPM). +C. Configuration des VMs YunoHost
-    Tes VMs sont autonomes et sécurisées (pare-feu interne). +
-    Tu as un accès distant sécurisé (grâce à WireGuard). +
-    Tu gardes une architecture simple et maintenable.+
  
-Veux-tu que je te montre comment restreindre le pare-feu YunoHost pour n'accepter le trafic que depuis le routeur, renforçant ainsi cette autonomie ? +Chaque VM YunoHost doit être connectée au réseau privé.
-est que opnsense + wireguard peut résoudre ce problème+
  
-Oui, absolument ! 🚀+    Créer la VM avec l'ISO YunoHost. 
 +    Dans l'onglet Matériel > Interface réseau : 
 +        Source : Réseau virtuel 'lan-yuno'
 +        Modèle : VirtIO. 
 +    Important : Ne pas connecter d'interface directe à la box. Toute la communication sortante passera par le routeur.
  
-Passer à OPNsense (au lieu de Debian + NPM) est une solution professionnelle, robuste et élégante qui résout parfaitement ton problème tout en offrant une gestion centralisée et sécurisée.+3Flux de Données
  
-OPNsense est un pare-feu/routeur complet (basé sur FreeBSDqui intègre nativement WireGuard, HAProxy/Nginx (pour le reverse proxy), et la gestion des certificats SSL.+    Trafic Sortant (VM → Internet
 +        La VM envoie le paquet vers sa passerelle (192.168.100.1). 
 +        Le routeur effectue le NAT (Masquerade: il remplace l'IP source privée par son IP publique. 
 +        Le paquet sort vers Internet via l'interface WAN.
  
-Voici comment cette architecture résout tes besoins +    Trafic Entrant (Internet → VM) 
-🏗️ Architecture avec OPNsense + WireGuard+        Le paquet arrive sur l'IP publique du routeur (port 80/443). 
 +        Le Reverse Proxy (Nginx/HAProxy) inspecte le nom de domaine (Host header). 
 +        Le routeur redirige le paquet vers l'IP interne de la VM YunoHost correspondante (192.168.100.10, etc.).
  
-[Internet] +📄 DOCUMENT 2 : INSTALLATION ET CONFIGURATION DE LA VM ROUTEUR (DEBIAN 13
-    ↓ (IP Publique Unique) +1. Prérequis
-[Box] (DMZ ou Port Forwarding vers OPNsense) +
-    ↓ +
-[VM OPNsense] +
-├── Interface WAN (IP Publique+
-├── Interface LAN (192.168.100.1) → Réseau virtuel vers VMs YunoHost +
-├── Module WireGuard (Serveur) +
-│   └── Tunnel chiffré vers VMs YunoHost (Clients) +
-├── Module HAProxy / Nginx (Reverse Proxy) +
-│   └── Route `site1.com` → VM1, `site2.com` → VM2 +
-└── Pare-feu (Stateful Firewall) +
-    └── Règles granulaires par interface+
  
-✅ Comment cela résout tes problèmes +    VM Debian 13 installée avec 2 interfaces réseau (WAN et LAN) configurées dans virt-manager. 
-1Le problème de l'IP Unique (Reverse Proxy)+    Accès console ou SSH à la VM. 
 +    Connexion Internet fonctionnelle sur l'interface WAN.
  
-    Solution OPNsense : Tu installes le plugin HAProxy (ou utilises Nginx intégré). +2Script d'Installation Complète setup-router.sh
-    Fonctionnement : OPNsense écoute sur l'IP publique (ports 80/443). Il inspecte le nom de domaine (Host header) et route le trafic vers l'IP LAN de la bonne VM YunoHost (192.168.100.10, 192.168.100.11, etc.). +
-    Avantage Une seule IP publique suffit pour autant de domaines que tu veux.+
  
-2. L'autonomie de sécurité des VMs YunoHost+Ce script configure :
  
-    Solution OPNsense : +    Les interfaces réseau (IP statique LAN, DHCP WAN). 
-        Le pare-feu d'OPNsense bloque tout trafic entrant non autorisé. +    Le forwarding IP et le NAT. 
-        Il ne laisse passer que le trafic nécessaire (HTTP/HTTPSvers les VMs+    L'installation de Docker. 
-        WireGuard : Tu peux configurer OPNsense comme serveur WireGuard. Les VMs YunoHost se connectent en tant que clients. +    L'installation et le démarrage de Nginx Proxy Manager
-        Résultat : Le trafic entre OPNsense et les VMs est chiffré (même sur le LAN)Si tu veux accéder aux VMs depuis l'extérieur, tu te connectes en client WireGuard, et tu accèdes aux services directement via leur IP WireGuard, sans passer par le reverse proxy public+    La configuration du pare-feu (UFW).
-    Autonomie : Chaque VM YunoHost garde son propre pare-feu (UFW/iptablespour une défense en profondeur. OPNsense gère la sécurité périmétrique.+
  
-3. Gestion des certificats SSL+Instructions d'utilisation
  
-    Option A (Centralisée Recommandée) : OPNsense gère les certificats Let's Encrypt via HAProxy/NginxC'est plus simple à administrer+    Copiez le code ci-dessous dans un fichier nommé setup-router.sh sur la VM
-    Option B (Décentralisée) OPNsense fait du "SSL Passthrough" (mode TCP)Le trafic SSL arrive chiffré sur OPNsense et est transmis tel quel à la VM YunoHost, qui gère son propre certificat+    Rendez-le exécutable chmod +x setup-router.sh
-        Cela permet aux VMs d'être totalement autonomes pour le SSL.+    Exécutez-le en tant que root : sudo ./setup-router.sh.
  
-🆚 Comparaison : Debian+NPM vs OPNsense +#!/bin/bash 
-Critère Debian + NPM (Ton actuel) OPNsense + WireGuard +# ============================================================================= 
-Complexité Moyenne (2 systèmes à gérer : OS + NPM) Faible/Moyenne (Tout est intégré dans une interface unique) +# SCRIPT DE CONFIGURATION VM ROUTEUR DEBIAN 13 + NGINX PROXY MANAGER 
-Reverse Proxy NPM (Interface Web simple) HAProxy/Nginx (Plus puissant, plus de config) +# ============================================================================= 
-WireGuard Installation manuelle (Docker ou paquet) Intégré nativement (Interface Web, facile à configurer) +# Auteur : Assistant IA 
-Pare-feu UFW/Iptables (CLI ou UFW) Pare-feu avancé (Règles graphiques, logs détaillés, IDS/IPS) +# Date : 2026 
-Sécurité Bonne Excellente (Conçu pour être un firewall) +# =============================================================================
-Maintenance Mises à jour OS + Mises à jour Docker Mises à jour du système OPNsense (tout inclus) +
-Ressources Léger Un peu plus lourd (mais négligeable sur 2Go+) +
-🚀 Comment mettre en place cette solution+
  
-Si tu veux basculer vers OPNsense, voici la démarche :+set -e  # Arrêter en cas d'erreur
  
-    Créer la VM OPNsense : +# --- VARIABLES À ADAPTER --
-        Télécharge l'ISO d'OPNsense. +# Remplacez par le nom réel de votre interface WAN (celle qui a l'IP publique) 
-        Crée la VM dans virt-manager avec 2 interfaces (WAN et LAN). +# Exemple: enp1s0, eth0, etcVérifiez avec 'ip addr show' 
-        Alloue 2 Go de RAM et 2 cœurs (suffisant).+INTERFACE_WAN="enp1s0"          
  
-    Installation de base : +# Remplacez par le nom réel de votre interface LAN (celle connectée à lan-yuno
-        Configure l'IP WAN (DHCP ou statique selon ta box). +INTERFACE_LAN="enp7s0"          
-        Configure l'IP LAN (ex: 192.168.100.1). +
-        Connecte-toi à l'interface web (https://192.168.100.1).+
  
-    Configuration du Réseau : +# IP statique du routeur sur le réseau LAN 
-        Crée le réseau virbr1 dans virt-manager (comme avant). +IP_LAN="192.168.100.1"           
-        Attache les VMs YunoHost à ce réseau. +NETMASK="255.255.255.0"
-        Configure les VMs YunoHost avec des IPs statiques (192.168.100.10, etc.) et gateway 192.168.100.1.+
  
-    Configuration WireGuard (Optionnel mais puissant) : +# Email pour les certificats SSL Let's Encrypt 
-        Dans OPNsense : VPN > WireGuard > Servers. +EMAIL_ADMIN="votre-email@exemple.com"
-        Crée un serveur, génère les clés. +
-        Dans chaque VM YunoHost : Installe WireGuard, configure le client avec les clés du serveur. +
-        Active le routage entre l'interface WireGuard et le LAN.+
  
-    Configuration du Reverse Proxy (HAProxy) : +# Fuseau horaire 
-        Installe le plugin os-haproxy dans OPNsense. +TZ="Europe/Paris"
-        Crée un "Frontend" sur l'IP publique (ports 80/443). +
-        Crée des "Backends" pointant vers les IPs des VMs YunoHost. +
-        Configure les règles de routage basées sur le nom de domaine. +
-        Génère les certificats SSL (Let's Encrypt) directement depuis l'interface.+
  
-💡 Verdict+echo "🚀 Démarrage de la configuration du routeur..."
  
-Oui, OPNsense + WireGuard est une solution supérieure pour ton cas si tu es prêt à apprendre un nouvel outil (mais l'interface est très intuitive).+# --- 1. MISE À JOUR DU SYSTÈME --- 
 +echo "[1/7] Mise à jour du système...
 +apt update && apt upgrade -y
  
-    Avantages majeurs : Tout est centralisé, WireGuard est natif, la sécurité est de niveau entreprise, et tu gardes l'autonomie des VMs YunoHost (surtout si tu utilises le mode SSL Passthrough)+# --- 2INSTALLATION DE SSH --- 
-    Inconvénient : Courbe d'apprentissage légèrement plus raide que NPM (mais très rapide pour les bases).+echo "[2/7] Installation de SSH..." 
 +apt install -y openssh-server 
 +systemctl enable ssh 
 +systemctl start ssh
  
-Veux-tu que je te guide pas à pas pour l'installation et la configuration initiale d'OPNsense dans virt-manager ? Cela remplacerait ta VM Debian actuelle+--- 3. CONFIGURATION RÉSEAU --- 
-peux tu générer une doc pdf complète pour cet installation et configuration ?+echo "[3/7] Configuration réseau..." 
 + 
 +# Sauvegarde 
 +cp /etc/network/interfaces /etc/network/interfaces.backup.$(date +%Y%m%d_%H%M%S) 
 + 
 +# Écriture de la config 
 +cat > /etc/network/interfaces << EOF 
 +# Configuration automatique par setup-router.sh 
 +source /etc/network/interfaces.d/
 + 
 +# Loopback 
 +auto lo 
 +iface lo inet loopback 
 + 
 +# WAN (DMZ - IP publique via DHCP) 
 +allow-hotplug ${INTERFACE_WAN} 
 +iface ${INTERFACE_WAN} inet dhcp 
 + 
 +# LAN (Réseau lan-yuno - IP statique) 
 +auto ${INTERFACE_LAN} 
 +iface ${INTERFACE_LAN} inet static 
 +    address ${IP_LAN} 
 +    netmask ${NETMASK} 
 +    network 192.168.100.0 
 +    broadcast 192.168.100.255 
 +EOF 
 + 
 +# Activation du Forwarding IP 
 +echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 
 +sysctl -p 
 + 
 +# --- 4. INSTALLATION DE DOCKER --- 
 +echo "[4/7] Installation de Docker..." 
 +apt install -y ca-certificates curl gnupg lsb-release 
 +curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 
 +echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list 
 +apt update 
 +apt install -y docker-ce docker-ce-cli containerd.io 
 +usermod -aG docker $USER 
 + 
 +# --- 5. INSTALLATION DE NGINX PROXY MANAGER --- 
 +echo "[5/7] Installation de Nginx Proxy Manager..." 
 +mkdir -p ~/npm/data ~/npm/letsencrypt 
 +cd ~/npm 
 + 
 +cat > docker-compose.yml << EOF 
 +version: '3' 
 + 
 +services: 
 +  app: 
 +    image: 'jc21/nginx-proxy-manager:latest' 
 +    restart: unless-stopped 
 +    ports: 
 +      - '80:80' 
 +      - '81:81' 
 +      - '443:443' 
 +    environment: 
 +      - DB_SQLITE_FILE=/data/database.sqlite 
 +      - DISABLE_IPV6=true 
 +      - TZ=${TZ} 
 +    volumes: 
 +      - ./data:/data 
 +      - ./letsencrypt:/etc/letsencrypt 
 + 
 +networks: 
 +  default: 
 +    name: npm-network 
 +    driver: bridge 
 +EOF 
 + 
 +docker compose up -d 
 + 
 +# --- 6. CONFIGURATION NAT --- 
 +echo "[6/7] Configuration du NAT..." 
 +# Suppression des anciennes règles (si elles existent) 
 +iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ${INTERFACE_WAN} -j MASQUERADE 2>/dev/null || true 
 +# Ajout de la règle correcte 
 +iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ${INTERFACE_WAN} -j MASQUERADE 
 + 
 +# Sauvegarde des règles 
 +apt install -y iptables-persistent 
 +netfilter-persistent save 
 + 
 +# --- 7. PARE-FEU UFW --- 
 +echo "[7/7] Configuration du pare-feu..." 
 +apt install -y ufw 
 +ufw allow 22/tcp 
 +ufw allow 80/tcp 
 +ufw allow 81/tcp 
 +ufw allow 443/tcp 
 +echo "y" | ufw enable 
 + 
 +# --- VÉRIFICATIONS FINALES --- 
 +echo "" 
 +echo "==========================================" 
 +echo "   CONFIGURATION TERMINÉE !" 
 +echo "==========================================" 
 +echo "📡 Interface WAN (${INTERFACE_WAN}) : $(ip -4 addr show ${INTERFACE_WAN} | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || echo 'En attente DHCP')" 
 +echo "📡 Interface LAN (${INTERFACE_LAN}) : ${IP_LAN}" 
 +echo "🐳 Docker : $(systemctl is-active docker)" 
 +echo "🌐 NPM : http://${IP_LAN}:81" 
 +echo "🔐 Identifiants par défaut : admin@example.com / changeme" 
 +echo "==========================================" 
 +echo "ATTENTION : Redémarrez la VM pour appliquer les changements réseau." 
 +echo "==========================================" 
 + 
 +3. Post-Installation 
 + 
 +    Redémarrez la VM : sudo reboot. 
 +    Vérifiez que l'interface WAN a bien reçu une IP publique. 
 +    Connectez-vous à l'interface NPM : http://192.168.100.1:81. 
 +    Changez les identifiants par défaut. 
 + 
 +📄 DOCUMENT 3 : CONFIGURATION AUTOMATISÉE DES VM YUNOHOST 
 +1. Objectif du Script 
 + 
 +Ce script configure une VM YunoHost existante (après installation de base) pour : 
 + 
 +    Lui attribuer une IP statique sur le réseau lan-yuno. 
 +    Configurer la passerelle vers le routeur (192.168.100.1). 
 +    Configurer les DNS. 
 +    Vérifier la connectivité Internet. 
 + 
 +2. Prérequis 
 + 
 +    La VM YunoHost est installée et accessible (via console virt-manager ou SSH avec l'IP DHCP temporaire). 
 +    Vous connaissez l'IP statique souhaitée (ex: 192.168.100.10) et le nom de domaine (ex: site1.mondomaine.com). 
 +    L'interface réseau principale de la VM est bien eth0 (standard YunoHost). Si ce n'est pas le cas, modifiez la variable INTERFACE dans le script. 
 + 
 +3. Script de Configuration : configure-yunohost.sh 
 + 
 +Copiez ce code dans la VM YunoHost, sauvegardez-le sous configure-yunohost.sh, rendez-le exécutable et lancez-le. 
 + 
 +#!/bin/bash 
 +# ============================================================================= 
 +# SCRIPT DE CONFIGURATION VM YUNOHOST 
 +# ============================================================================= 
 +# Usage: ./configure-yunohost.sh <IP_LAN> <DOMAINE> 
 +# Exemple: ./configure-yunohost.sh 192.168.100.10 site1.mondomaine.com 
 +# ============================================================================= 
 + 
 +set -e 
 + 
 +# --- Vérification des arguments --- 
 +if [ "$#" -ne 2 ]; then 
 +    echo "❌ Erreur: Arguments manquants." 
 +    echo "Usage: $0 <IP_LAN> <DOMAINE>" 
 +    echo "Exemple: $0 192.168.100.10 site1.mondomaine.com" 
 +    exit 1 
 +fi 
 + 
 +IP_LAN=$1 
 +DOMAINE=$2 
 +INTERFACE="eth0"  # Interface par défaut de YunoHost 
 +PASSERELLE="192.168.100.1" 
 +DNS_PRIMAIRE="192.168.100.1" 
 +DNS_SECONDAIRE="8.8.8.8" 
 + 
 +echo "🚀 Configuration pour :" 
 +echo "   IP: $IP_LAN" 
 +echo "   Domaine: $DOMAINE" 
 +echo "   Passerelle: $PASSERELLE" 
 +echo "" 
 + 
 +# --- 1. Sauvegarde --- 
 +echo "💾 Sauvegarde de la config réseau..." 
 +cp /etc/network/interfaces /etc/network/interfaces.backup.$(date +%Y%m%d_%H%M%S) 
 + 
 +# --- 2. Configuration Réseau --- 
 +echo "⚙️  Configuration de l'interface $INTERFACE..." 
 +cat > /etc/network/interfaces << EOF 
 +# Configuration automatique par configure-yunohost.sh 
 +# Date: $(date) 
 + 
 +# Loopback 
 +auto lo 
 +iface lo inet loopback 
 + 
 +# Interface principale (LAN) 
 +auto $INTERFACE 
 +iface $INTERFACE inet static 
 +    address $IP_LAN 
 +    netmask 255.255.255.0 
 +    gateway $PASSERELLE 
 +    dns-nameservers $DNS_PRIMAIRE $DNS_SECONDAIRE 
 +EOF 
 + 
 +# --- 3. Mise à jour /etc/hosts --- 
 +echo "🏷️  Mise à jour du fichier /etc/hosts..." 
 +sed -i "/127.0.1.1/d" /etc/hosts 
 +echo "127.0.1.1       $DOMAINE $INTERFACE localhost" >> /etc/hosts 
 + 
 +# --- 4. Redémarrage réseau --- 
 +echo "🔄 Redémarrage du service réseau..." 
 +systemctl restart networking 
 + 
 +# --- 5. Vérifications --- 
 +echo "" 
 +echo "✅ Vérifications..." 
 + 
 +# Vérifier l'IP 
 +CURRENT_IP=$(ip -4 addr show $INTERFACE | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
 +if [ "$CURRENT_IP" == "$IP_LAN" ]; then 
 +    echo "   ✅ IP correcte: $CURRENT_IP" 
 +else 
 +    echo "   ⚠️  Attention: IP détectée $CURRENT_IP (attendue: $IP_LAN)" 
 +fi 
 + 
 +# Vérifier la passerelle 
 +DEFAULT_GW=$(ip route | grep default | awk '{print $3}'
 +if [ "$DEFAULT_GW" == "$PASSERELLE" ]; then 
 +    echo "   ✅ Passerelle correcte: $DEFAULT_GW" 
 +else 
 +    echo "   ⚠️  Attention: Passerelle $DEFAULT_GW (attendue: $PASSERELLE)" 
 +fi 
 + 
 +# Test Internet 
 +echo "   🌐 Test de connectivité Internet..." 
 +if ping -c 2 -W 2 8.8.8.8 > /dev/null 2>&1; then 
 +    echo "   ✅ Ping vers Internet: OK" 
 +else 
 +    echo "   ❌ Ping vers Internet: ÉCHEC (Vérifiez le NAT sur le routeur)" 
 +fi 
 + 
 +# Test Routeur 
 +echo "   🛡️  Test de connectivité vers le routeur..." 
 +if ping -c 2 -W 2 $PASSERELLE > /dev/null 2>&1; then 
 +    echo "   ✅ Ping vers routeur: OK" 
 +else 
 +    echo "   ❌ Ping vers routeur: ÉCHEC" 
 +fi 
 + 
 +echo "" 
 +echo "================================================================" 
 +echo "   CONFIGURATION TERMINÉE !" 
 +echo "================================================================" 
 +echo "" 
 +echo "📌 Prochaines étapes :" 
 +echo "1. Connectez-vous à l'interface web : https://$IP_LAN" 
 +echo "2. Si le domaine '$DOMAINE' n'est pas reconnu, allez dans
 +echo "   'Domaines' > 'Ajouter un domaine' et entrez '$DOMAINE'." 
 +echo "3. Configurez le Proxy Host sur le routeur (NPM) :" 
 +echo "   - Domaine: $DOMAINE" 
 +echo "   - IP: $IP_LAN" 
 +echo "   - Port: 443" 
 +echo "   - Scheme: https" 
 +echo "================================================================" 
 + 
 +4. Utilisation du Script 
 + 
 +    Connexion : Connectez-vous à la VM YunoHost (via console virt-manager si vous ne connaissez pas l'IP, ou via SSH avec l'IP DHCP)
 + 
 +    Création du fichier : 
 + 
 +nano configure-yunohost.sh 
 +# Collez le contenu ci-dessus 
 + 
 +Exécution : 
 + 
 +    chmod +x configure-yunohost.sh 
 +    sudo ./configure-yunohost.sh 192.168.100.10 site1.mondomaine.com 
 + 
 +    (Remplacez 192.168.100.10 et site1.mondomaine.com par vos valeurs réelles). 
 + 
 +    Validation : 
 +        Le script affichera les résultats des tests. 
 +        Si tout est vert, reconnectez-vous via SSH avec la nouvelle IP : ssh admin@192.168.100.10. 
 +        Accédez à l'interface web : https://192.168.100.10. 
 + 
 +5. Configuration Finale sur le Routeur (NPM) 
 + 
 +Une fois le script exécuté avec succès : 
 + 
 +    Allez sur http://192.168.100.1:81. 
 +    Créez un Proxy Host : 
 +        Domains : site1.mondomaine.com 
 +        Forward IP : 192.168.100.10 
 +        Forward Port : 443 
 +        Scheme : https 
 +        SSL : Cocher "Request a new SSL Certificate"
 +    Configurez vos DNS chez votre registrar pour pointer site1.mondomaine.com vers votre IP Publique. 
 + 
 +📝 Comment créer les PDF 
 + 
 +    Copiez le contenu de chaque section (Document 1, Document 2, Document 3). 
 +    Collez-le dans un éditeur de texte (LibreOffice Writer, Word, Google Docs). 
 +    Mettez en forme les titres (H1, H2) et les blocs de code. 
 +    Faites Fichier > Exporter au format PDF (ou Imprimer > Enregistrer au format PDF). 
 + 
 +Vous avez maintenant une documentation complète, prête à être imprimée ou partagée ! 
 +Conversation chiffrée
 Demandez ce que vous voulez à Lumo Demandez ce que vous voulez à Lumo
  
 Lumo peut commettre des erreurs. Veuillez revérifier les réponses. Lumo peut commettre des erreurs. Veuillez revérifier les réponses.
 +
 +Tous les fichiers contenus dans cette discussion
 +Fichiers joints (2)
 +
 +pasted-content-2026-05-09T06-41-16.txt
 +Text File
 +
 +pasted-content-2026-05-09T20-03-31.txt
 +Text File
 +</code>
article/plusieurs_vm_yunohost_vers_une_seule_ip.1778407092.txt.gz · Dernière modification : de estro

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki