[[./accueil| ↩ Retour à l'accueil du projet]]
====== 5) Script : Ajouter une liaison VPN Client ======

Ce document définit le comportement attendu du script d'automatisation lors du raccordement d'un nouveau client distant (PC physique ou conteneur) au réseau privé du VPS.

===== 1. Cinématique d'Exécution =====

Lors de son appel via le [[./04_menu_principal|Menu Principal]], le script déroule les étapes suivantes en tâche de fond :
  * **Saisie des informations :** Demande à l'administrateur le nom de l'utilisateur responsable et son nom de domaine associé.
  * **Calcul de l'IP :** Analyse le fichier ''utilisateurs.db'' pour attribuer la première adresse IP privée disponible dans la plage ''10.66.66.0/24''.
  * **Génération des clés :** Crée dynamiquement les clés cryptographiques nécessaires à la sécurisation du tunnel WireGuard.

===== 2. Reconfiguration Automatique des Services =====

Pour garantir la cohérence du système, le script écrit automatiquement les configurations requises :

==== Réseau (WireGuard) ====
Ajoute le bloc ''[Peer]'' contenant la clé publique du client et son IP dédiée à la fin du fichier ''/etc/wireguard/wg0.conf'', puis recharges le service sans couper les autres connexions.

==== Pare-feu (nftables) ====
Ajoute une règle autorisant le transfert de paquets spécifiquement pour la nouvelle adresse IP attribuée.

==== Aiguillage Web (Nginx) ====
Génère le fichier de Reverse Proxy dans ''/etc/nginx/sites-available/'' pour rediriger le trafic HTTP du domaine vers l'IP VPN du client. Active le site via un lien symbolique.

==== Routage Courrier (Postfix) ====
Inscrit le domaine et son routage SMTP vers l'IP du client dans le fichier ''/etc/postfix/transport'', puis recompile la base de données de messagerie.

===== 3. Bilan Visuel & Enregistrement =====

  * **Registre local :** Les informations (Nom, IP, Domaine) sont gravées dans ''/etc/vps-gateway/utilisateurs.db''.
  * **Fichier de Log :** Une ligne contenant le statut du déploiement est inscrite dans ''/var/log/vps-gateway.log''.
  * **Affichage terminal :** Le script affiche en vert le succès de l'opération et imprime directement à l'écran le bloc de configuration texte à copier-coller sur la machine distante pour finaliser la connexion.

===== 4. Accès aux Ressources Techniques =====

Pour consulter le code source de ce script ou télécharger l'archive globale du projet :
➔ [[./12_telechargements_sources|🛠️ Aller au module 12) Téléchargements du projet et sources des scripts]]

[[./accueil| ↩ Retour à l'accueil du projet]]
