Aller au contenu

⚡ Scripts Bash — Automatisation admin

Deux scripts bash ont été développés pour simplifier les tâches d'administration répétitives. Ils s'utilisent directement depuis le shell des machines concernées.


Script 1 — config sur Proxmox VE

Emplacement : nœud pve (Proxmox VE)

Usage

config <numéro_de_conteneur>

Ce que ça fait

flowchart LR
    CMD["config 115"] --> A["Ouvre un shell\ndans CT115 (Paperless)"]
    A --> B["SSH désactivé\nsur ce container"]
    B --> C["Accès via\nnoVNC/xterm.js\nuniquement"]
  1. Accède directement au container désigné
  2. S'assure que le SSH est désactivé sur ce container
  3. L'accès reste uniquement via l'interface Proxmox (noVNC / xterm.js)

Exemples

# Accéder à Paperless
config 115

# Accéder à Caddy
config 110

# Accéder à AdGuard
config 105

# Accéder à Jellyfin
config 100

Pourquoi désactiver SSH ?

Avec SSH actif sur chaque container, il y avait potentiellement 25 vecteurs d'attaque différents (un par service). En forçant l'accès uniquement via l'interface Proxmox (qui requiert une authentification + 2FA), la surface d'attaque est réduite à un seul point d'entrée sécurisé.


Script 2 — config sur Active Directory

Emplacement : VM Active Directory (CT124)

Usage

config <numéro_de_conteneur> <url>.galexios.fr

Ce que ça fait

flowchart LR
    CMD["config 127 nouveauservice.galexios.fr"] --> DNS_A["Ajoute enregistrement DNS A\nnouveauservice.galexios.fr\n→ 192.168.192.110 (Caddy)\nIPv4"]
    CMD --> DNS_AAAA["Ajoute enregistrement DNS AAAA\nnouveauservice.galexios.fr\n→ fd00:192:168:192::6e (Caddy)\nIPv6"]
    DNS_A & DNS_AAAA --> RESULT["URL immédiatement\nrésolue sur tout le réseau"]
  1. Crée un enregistrement A (IPv4) : url.galexios.fr → 192.168.192.110 (Caddy)
  2. Crée un enregistrement AAAA (IPv6) : url.galexios.fr → fd00:192:168:192::6e (Caddy)
  3. Les deux enregistrements pointent toujours vers Caddy — c'est lui qui fait le routage final

Exemple — Ajouter un nouveau service

Quand tu installes un nouveau service (ex: CT127, URL monservice.galexios.fr) :

Étape 1 — Ajouter dans Caddy (depuis CT110) :

config 110   # Script PVE pour entrer dans Caddy
nano /etc/caddy/Caddyfile
# Ajouter :
# monservice.galexios.fr {
#     import cloudflare_tls
#     reverse_proxy 192.168.192.127:PORT
# }
systemctl reload caddy

Étape 2 — Ajouter dans l'AD (depuis CT124) :

config 127 monservice.galexios.fr
# Le script ajoute automatiquement les deux enregistrements DNS

Étape 3 — Tester :

# Depuis n'importe quel appareil du réseau
curl -I https://monservice.galexios.fr
# Doit répondre 200 OK

Pourquoi IPv4 ET IPv6 ?

Sans l'enregistrement IPv6 (AAAA), les appareils en IPv6-only (certains iPhones en 4G) ne pouvaient pas résoudre les URL Galexios. L'ajout systématique des deux enregistrements garantit la compatibilité maximale.


Flux complet d'ajout d'un service

sequenceDiagram
    participant PVE as Proxmox VE
    participant CAD as Caddy CT110
    participant AD as Active Directory CT124

    Note over PVE: Installer le nouveau service (script tteck ou manuel)
    PVE->>CAD: config 110
    CAD->>CAD: nano /etc/caddy/Caddyfile
    CAD->>CAD: Ajouter bloc reverse_proxy
    CAD->>CAD: systemctl reload caddy
    PVE->>AD: config [CT_ID] [url].galexios.fr
    AD->>AD: Ajoute A + AAAA → Caddy
    Note over PVE,AD: Service accessible immédiatement