docs(vpn): tunnel SSH inverse NAS->VPS (remplace IPsec Freebox, retire le 06/08)

IPsec/IKEv2 casse par le reboot LWS (noyau sans ESP). Nouveau lien = SSH inverse (NAS->VPS, forwards 18080/11981), tache DSM au boot, kernel/Freebox-independant. strongSwan arrete+desactive, ipsec.conf archive. Doc source de verite en tete du runbook.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
steve 2026-08-06 13:53:56 +02:00
parent 62da8007ef
commit d2fe8ac623
1 changed files with 52 additions and 1 deletions

View File

@ -4,6 +4,51 @@
> le **pont** (interne, sur le NAS), lequel parle à la gestion (Dolibarr) + ThingsBoard. > le **pont** (interne, sur le NAS), lequel parle à la gestion (Dolibarr) + ThingsBoard.
> **La gestion n'est JAMAIS exposée.** Documenté pour être reproductible — ne rien casser. > **La gestion n'est JAMAIS exposée.** Documenté pour être reproductible — ne rien casser.
---
## ⭐ CONNEXION VPS↔NAS ACTUELLE (depuis 2026-08-06) — TUNNEL SSH INVERSÉ
> **SOURCE DE VÉRITÉ.** L'IPsec/IKEv2 Freebox (plus bas) est **RETIRÉ** : il cassait à chaque reboot
> LWS (noyau externe `6.12` livré **sans module ESP** → tunnel mort, remontée SAV gelée). Le nouveau
> lien ne dépend **ni du noyau LWS, ni de la Freebox** — seulement « le NAS a un accès internet
> sortant » + « le VPS répond en SSH ».
**Montage :** le **NAS compose** (dial-out) un SSH sortant vers le VPS et publie 2 *remote-forwards* :
- `VPS 127.0.0.1:18080``NAS localhost:8080` = **pont SAV**
- `VPS 127.0.0.1:11981``NAS localhost:1981` = **SSH du NAS** (sauvegarde / accès distant)
**Côté NAS (Synology) :**
- Clé dédiée `/volume1/docker/sav-tunnel/id_tunnel`, autorisée sur le VPS (`~deploy/.ssh/authorized_keys`,
option `restrict,port-forwarding` = ce couple de clés ne peut RIEN faire d'autre que du forwarding).
- Persistance = **Planificateur de tâches DSM** → tâche déclenchée « **Au démarrage** », utilisateur
**root**, commande :
```sh
KEY=/volume1/docker/sav-tunnel/id_tunnel
while true; do
ssh -i "$KEY" -o BatchMode=yes -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 -o ServerAliveCountMax=3 \
-N -R 18080:localhost:8080 -R 11981:localhost:1981 deploy@78.138.45.8
sleep 5
done
```
La boucle `while` = **reconnexion automatique** (« autossh du pauvre »).
**Côté VPS :**
- Le pont lit le NAS via le tunnel : `/opt/navier-sav/.env``NAS_PONT_URL=http://127.0.0.1:18080`
(sauvegarde de l'ancien `.env` : `/opt/navier-sav/.env.bak-pretunnel`). Relais confirmé actif,
remontée SAV restaurée (plus aucun « fetch failed »).
- Atteindre le NAS **depuis le VPS** : `ssh -p 11981 SteveC@127.0.0.1`
(⚠️ **plus** `192.168.10.104` : l'ancienne route IPsec est morte).
**Vérif de bout en bout :**
```bash
ssh navier-vps 'curl -s http://127.0.0.1:18080/healthz' # 200 => pont NAS joint via le tunnel
ssh navier-vps 'ss -ltn | grep -E ":18080|:11981"' # les 2 forwards doivent être UP
```
**Si ça retombe :** vérifier que la tâche DSM tourne (Planificateur de tâches), que le NAS a internet,
puis `ss -ltn | grep 18080` sur le VPS. La tâche se relance seule ; sinon « Exécuter » dans DSM.
---
## Architecture cible ## Architecture cible
``` ```
public ──HTTPS──▶ api.navier-instruments.com public ──HTTPS──▶ api.navier-instruments.com
@ -103,7 +148,13 @@ curl -I https://api.navier-instruments.com/health
``` ```
--- ---
## ✅ RÉALISÉ (2026-07-13) — VPN opérationnel = Freebox IKEv2 (pas WireGuard) ## ⛔ RETIRÉ le 2026-08-06 — ancien VPN Freebox IKEv2 (remplacé par le tunnel SSH inversé, voir en tête)
> **Ne plus utiliser.** Cassé par le reboot LWS du 31/07 (noyau `6.12` sans ESP). Remplacé par le
> **tunnel SSH inversé** (section « CONNEXION VPS↔NAS ACTUELLE » en tête). Le 06/08/2026, strongSwan a
> été **arrêté + désactivé au démarrage** sur le VPS, et `/etc/ipsec.conf` **archivé** dans
> `/opt/navier-sav/ipsec-retired-2026-08-06/`. Conservé ci-dessous **pour l'historique uniquement**.
WireGuard abandonné pour NAS↔VPS : le réseau du NAS (Freebox Pro) **filtre l'UDP sortant** (seul dport 53 passe, prouvé par tcpdump) → WireGuard (UDP) impossible depuis le NAS. **Retenu : serveur VPN IKEv2 de la Freebox Pro.** WireGuard abandonné pour NAS↔VPS : le réseau du NAS (Freebox Pro) **filtre l'UDP sortant** (seul dport 53 passe, prouvé par tcpdump) → WireGuard (UDP) impossible depuis le NAS. **Retenu : serveur VPN IKEv2 de la Freebox Pro.**
Montage : `VPS (client strongSwan) → 160189667.box.freepro.com (Freebox, VPN IKEv2) → LAN → NAS 192.168.10.104`. Montage : `VPS (client strongSwan) → 160189667.box.freepro.com (Freebox, VPN IKEv2) → LAN → NAS 192.168.10.104`.