[[./accueil| ↩ Retour à l'accueil du projet]]
====== 2) Descriptif de la Post-Installation ======

Ce document spécifie les objectifs, les exigences de sécurité et le comportement attendu du script de post-installation. Ce script intervient sur un VPS vierge (Debian 13 ou Fedora 44 Server), accessible uniquement via la clé SSH initiale de l'administrateur.

===== 1. Objectifs du Script =====

Le script a pour but d'automatiser la transition entre un serveur brut de livraison et une plateforme d'hébergement sécurisée, sans nécessiter d'interaction complexe. Il prépare l'environnement pour le [[./04_menu_principal|Menu Principal (Gestionnaire CLI)]].

===== 2. La Barrière de Secours Réseau (Détection du Système) =====

Afin de garantir la robustesse du framework d'administration et d'éviter tout dysfonctionnement, le script intègre un mécanisme de détection automatique de la distribution dès sa première seconde d'exécution :
  * **Méthode d'analyse :** Le script interroge directement le fichier système universel ''/etc/os-release'' pour identifier la distribution hôte.
  * **Aiguillage automatique :** Si le système détecte ''debian'' ou ''fedora'', il charge en mémoire les fonctions applicatives de la famille correspondante (gestion des paquets et des privilèges spécifiques).
  * **Interdiction des systèmes incompatibles :** Si la distribution n'est pas prise en charge (ex: Ubuntu, Alpine, AlmaLinux), le script interrompt immédiatement son exécution, affiche une alerte à l'écran et se ferme sans altérer aucun paramètre du VPS.

===== 3. Gestion de l'Identité (Le compte Tux) =====

Le script garantit la création propre et l'élévation de l'administrateur unique du système via la fonction générique ''tux.creerUtilisateur'' :
  * **Création du compte :** Configuration de l'utilisateur ''tux'' avec son dossier personnel.
  * **Privilèges d'administration :** Intégration automatique dans le groupe système adéquat (''sudo'' sur Debian 13, ''wheel'' sur Fedora 44).
  * **Migration de la clé SSH :** Récupération de la clé SSH publique active depuis le compte de déploiement d'origine vers le compte de ''tux''.
  * **Verrouillage restrictif :** Application des permissions restrictives strictes (mode ''700'' pour le dossier ''.ssh'' et ''600'' pour le fichier ''authorized_keys'').

===== 4. Déploiement des Dépendances Minimales =====

Pour préserver les ressources matérielles et la mémoire RAM du VPS, seules les briques logicielles indispensables sont installées via la fonction générique ''tux.installerPaquet'' :
  * **Réseau / VPN :** ''wireguard'' pour la gestion des tunnels chiffrés.
  * **Aiguillage Web :** ''nginx'' pour le rôle de Reverse Proxy.
  * **Routage Courrier :** ''postfix'' pour le rôle de relais SMTP.
  * **Sécurité & Filtrage :** ''nftables'' pour le pare-feu moderne natif du noyau Linux.

===== 5. Politique de Sécurité du Pare-feu (Nftables) =====

Le pare-feu applique une politique de sécurité stricte via la fonction ''tux.configurerPareFeu''. Par défaut, la politique globale rejette tout le trafic (''policy drop''), sauf les ports explicitement autorisés :
^ Port ^ Protocole ^ Service ^ Rôle ^

| **22** | TCP | SSH | Accès exclusif de ''tux'' par clé asymétrique protégée |
| **51820** | UDP | WireGuard | Port d'écoute pour le raccordement des clients distants |
| **80 / 443** | TCP | HTTP / HTTPS | Entrée du trafic Web public vers le Reverse Proxy Nginx |
| **25** | TCP | SMTP | Entrée du trafic e-mail public vers le relais Postfix |

==== Routage Inter-Interfaces & Masquage (NAT) ====
Le script configure le noyau Linux pour autoriser de manière permanente le transfert de paquets (''net.ipv4.ip_forward=1''). La table NAT de ''nftables'' intercepte le trafic et applique un masquage (''masquerade'') dynamique sur l'interface réseau publique détectée, permettant au sous-réseau VPN (''10.66.66.0/24'') de partager l'IP publique unique.

===== 6. Initialisation de la Mémoire & Traçabilité =====

Avant de se clôturer, le script prépare les outils de suivi et applique les services :
  * Création de l'arborescence centrale ''/etc/vps-gateway/''.
  * Initialisation du registre des clients ''utilisateurs.db''.
  * Écriture de la première ligne de traçabilité dans le journal global ''/var/log/vps-gateway.log''.
  * Activation et démarrage synchrone des démons via la fonction ''tux.demarrerService''.

Un bilan visuel clair (succès ou échec de chaque étape) est affiché en fin d'exécution directement dans le terminal de l'administrateur.

===== 7. 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]]
