OverView OutPost
VM préconfigurée à déployer dans votre DMZ pour un accès API sécurisé et sans agent — aucun port entrant, aucune configuration VPN
Qu'est-ce que c'est ?
Une VM préconfigurée qui permet à OverView d'accéder de manière sécurisée à vos APIs internes sans configuration VPN complexe. Déployez dans votre DMZ, configurez les règles firewall, et c'est terminé en moins d'1 heure.
La solution utilise Tailscale, un VPN mesh moderne basé sur le protocole WireGuard®.
Le nom dit le rôle : un avant-poste est une petite position avancée, installée à la limite du territoire, qui observe et rend compte à la base. Il ne commande rien, ne conserve rien, et peut être retiré sans rien changer à la position principale. L'OutPost fonctionne exactement ainsi : déployé en bordure de votre réseau, il relaie vers OverView ce que vous l'autorisez à lire, et rien d'autre.
Avantages clés :
- ✅ Pas de tunnels IPSec ou certificats à gérer
- ✅ Aucun port entrant à ouvrir sur votre firewall
- ✅ La VM s'auto-configure au premier démarrage
- ✅ Seul OverView peut accéder à l'OutPost (isolation réseau privée)
- ✅ Vous contrôlez exactement quelles APIs exposer
Fourni avec : VM Ubuntu 24.04 LTS durcie, agent Tailscale préconfiguré pour l'auto-enrôlement, mises à jour de sécurité automatiques (OS + VPN), documentation et support OverSOC.
Comment ça fonctionne
La VM se place dans votre DMZ et agit comme un pont sécurisé entre OverView et vos APIs internes. Toutes les connexions sont initiées en sortie depuis la VM — aucun trou dans votre firewall.
Modèle de sécurité :
| Principe | Concrètement |
|---|---|
| Isolation réseau privée | L'OutPost rejoint le réseau privé Tailscale d'OverView. Seule la plateforme OverView peut y accéder — pas Internet public, pas d'autres utilisateurs Tailscale. L'OutPost ne peut pas accéder à l'infrastructure OverView : il ne fait que relayer vos APIs |
| Zero Trust par défaut | La VM démarre sans aucun accès à votre réseau interne. Chaque API nécessite une règle firewall explicite — aucun mouvement latéral possible |
| Chiffrement | WireGuard (ChaCha20-Poly1305), bout-en-bout entre OverView et votre OutPost, rotation automatique des clés |
| Circulation des données | Direct peer-to-peer quand possible, relais chiffré en fallback. Le service de coordination (*.tailscale.com) gère uniquement l'authentification — il ne route pas vos données |
Guide de déploiement
Prérequis
- Hyperviseur : VMware vSphere/ESXi, Microsoft Hyper-V, Nutanix AHV, Proxmox VE ou KVM
- Ressources : 2 vCPU, 2 GB RAM, 10 GB stockage
- Réseau : Accès internet sortant, résolution DNS
- Positionnement : DMZ ou VLAN isolé
Phase 1 : Déployer la VM (15 minutes)
L'image existe au format de chaque hyperviseur pris en charge — indiquez à OverSOC le vôtre avant le build. Une seule procédure s'applique : dépliez celle qui correspond à votre plateforme.
VMware ESXi / vSpherefichier .ova
- Ouvrir le vSphere Client (interface web)
- Clic droit sur l'hôte ou le cluster > Deploy OVF Template...
- Sélectionner Local file et choisir le fichier
.ovafourni - Suivre l'assistant : nommer la VM, choisir le datastore, sélectionner le réseau (VLAN/portgroup)
- Cliquer sur Finish et attendre la fin de l'import
- Démarrer la VM
Microsoft Hyper-Vfichier .vhdx
- Copier le fichier
.vhdxfourni sur l'hôte Hyper-V - Dans Hyper-V Manager, créer une nouvelle VM Génération 2 et, à l'étape du disque, choisir Use an existing virtual hard disk en pointant le
.vhdx(l'action Import Virtual Machine ne fonctionnera pas — elle attend un dossier de VM exportée, pas un disque seul) - Régler le modèle Secure Boot sur Microsoft UEFI Certificate Authority (Settings → Security) — le modèle par défaut Microsoft Windows refuse de démarrer Linux :
Set-VMFirmware "<nom-vm>" -SecureBootTemplate MicrosoftUEFICertificateAuthority - Configurer les ressources (2 vCPU, 2 GB RAM), connecter un virtual switch, démarrer la VM
Génération 1 ? Indiquez-le avant le build : un
.vhdest fourni à la place (même procédure, sans réglage Secure Boot).
Nutanix AHVfichier .qcow2
- Ouvrir Prism Central > Compute & Storage > Images > Add Image
- Uploader le fichier
.qcow2fourni, type Disk, placer sur le cluster cible - Aller à Compute & Storage > VMs > Create VM
- Configurer : 2 vCPU, 2 GB RAM, et régler le Boot Configuration sur UEFI (l'image est prévue pour un démarrage UEFI)
- Attacher un disque : Clone from Image > sélectionner l'image uploadée
- Ajouter un NIC sur le subnet/VLAN souhaité
- Sauvegarder et démarrer la VM
Proxmox VE / KVMfichier .qcow2
Proxmox VE
- Copier le fichier
.qcow2fourni sur l'hôte Proxmox - Créer une VM sans disque : 2 vCPU, 2 GB RAM, BIOS : OVMF (UEFI) avec un disque EFI (l'image est prévue pour un démarrage UEFI)
- Importer l'image :
qm importdisk <vmid> ovsgw-*.qcow2 <storage> - Attacher le disque importé, le définir comme périphérique de boot
- Connecter un bridge, démarrer la VM
KVM / libvirt (sans Proxmox)
Créer et démarrer la VM directement depuis l'image :
virt-install --name overview-outpost --memory 2048 --vcpus 2 \
--disk /var/lib/libvirt/images/ovsgw.qcow2 --import \
--osinfo ubuntu24.04 --boot uefi \
--network bridge=br0 --noautoconsole
Phase 2 : Configurer le réseau de la VM (5 minutes)
La VM demande une adresse en DHCP au premier démarrage. Deux cas :
Avec DHCP (par défaut)
Rien à faire : la VM obtient son adresse toute seule. Relevez-la sur la bannière console de l'hyperviseur, puis passez à la vérification.
Sans DHCP — IP statique
- Ouvrir la console de l'hyperviseur et se connecter avec le login
ubuntuet le mot de passe fourni par OverSOC - Éditer la configuration réseau :
sudo nano /etc/netplan/01-netcfg.yaml
Remplacer le contenu par (adapter les adresses à votre réseau) :network: version: 2 ethernets: all-en: match: name: "en*" addresses: [192.0.2.10/24] routes: - to: default via: 192.0.2.1 nameservers: addresses: [8.8.8.8, 1.1.1.1] - Appliquer et relancer la connexion VPN :
sudo netplan apply sudo systemctl restart tailscale-gateway-init
Pour désigner vos APIs par leurs noms DNS internes (plutôt que par IP) : avec DHCP, ce sont les résolveurs distribués par votre serveur DHCP qui s'appliquent ; en IP statique, renseignez vos résolveurs internes dans nameservers au lieu des résolveurs publics. Tout nom que la VM sait résoudre est utilisable dans les sources de données.
Vérification
- La bannière console affiche l'adresse IP LAN et l'adresse IP Tailscale après le démarrage
- En vous connectant en SSH, le message d'accueil affiche le statut de la connexion VPN
Tant que les firewalls de la Phase 3 ne sont pas configurés, le statut VPN reste déconnecté : c'est attendu. La connexion s'établit d'elle-même dès que les flux sont ouverts.
Phase 3 : Configurer les firewalls (15-30 minutes)
Toutes les règles sont SORTANTES — aucun port entrant requis. Seule la VM initie les connexions : votre réseau interne ne peut pas se connecter à elle.
Dans toute cette page, 192.0.2.10 désigne l'IP de votre OutPost (relevée à la Phase 2) : c'est un exemple à remplacer. Renseignez-la ici pour que tables et commandes s'adaptent automatiquement :
Renseignez-la pour remplacer l'exemple 192.0.2.10 dans toutes les commandes de cette page — elles deviennent copiables telles quelles.
Firewall edge (DMZ -> Internet)
Une seule source à déclarer : l'IP de la VM (ex. 192.0.2.10).
Version stricte — chaque hôte nommé, avec son port et son protocole. Elle ne suppose aucun support du wildcard et passe donc telle quelle sur tous les firewalls, Palo Alto et Cisco ASA compris.
| # | Destination | Port | Proto | À quoi ça sert | Niveau |
|---|---|---|---|---|---|
| 1 | controlplane.tailscale.com | 443 | TCP | Enregistrement, configuration, clés | Obligatoire |
| 2 | login.tailscale.com | 443 | TCP | Authentification | Obligatoire |
| 3 | log.tailscale.com, console.tailscale.com | 443 | TCP | Télémétrie de connexion et coordination | Obligatoire |
| 4 | derpN-all.tailscale.com — une entrée par région | 443 | TCP | Relais chiffré : chemin de données de repli | Obligatoire |
| 5 | derpN-all.tailscale.com — une entrée par région | 3478 | UDP | STUN — détection du NAT | Recommandé |
| 6 | 51.15.222.156 | 32768-60999 | UDP | Tunnel WireGuard direct vers OverView | Recommandé |
Tout autre trafic sortant : REFUSER.
derpN-all n'est pas un hôte uniqueIl en existe un par région DERP — derp1-all.tailscale.com, derp2-all.tailscale.com, … une trentaine aujourd'hui. Chaque entrée regroupe tous les serveurs de sa région : elles existent précisément pour les allowlists firewall et évitent d'avoir à suivre chaque serveur.
Le nombre de régions évolue dans le temps : construisez la liste à partir de la source vivante publiée sur login.tailscale.com/derpmap/default plutôt que d'un compte figé.
Liste des relais DERP28 régions — août 2026
Les 28 entrées à déclarer, chacune en TCP 443 et UDP 3478 :
derp1-all.tailscale.com
derp2-all.tailscale.com
derp3-all.tailscale.com
derp4-all.tailscale.com
derp5-all.tailscale.com
derp6-all.tailscale.com
derp7-all.tailscale.com
derp8-all.tailscale.com
derp9-all.tailscale.com
derp10-all.tailscale.com
derp11-all.tailscale.com
derp12-all.tailscale.com
derp13-all.tailscale.com
derp14-all.tailscale.com
derp15-all.tailscale.com
derp16-all.tailscale.com
derp17-all.tailscale.com
derp18-all.tailscale.com
derp19-all.tailscale.com
derp20-all.tailscale.com
derp21-all.tailscale.com
derp22-all.tailscale.com
derp23-all.tailscale.com
derp24-all.tailscale.com
derp25-all.tailscale.com
derp26-all.tailscale.com
derp27-all.tailscale.com
derp28-all.tailscale.comÀ déclarer en TCP 443 et UDP 3478.
Cette liste est un instantané. Tailscale ajoute et retire des régions ; la source fait foi. Pour la régénérer :
curl -s https://login.tailscale.com/derpmap/default |
python3 -c "import json,sys; [print('derp%s-all.tailscale.com' % k) for k in sorted(json.load(sys.stdin)['Regions'], key=int)]"
Les régions couvrent plusieurs continents : c'est normal, la VM mesure la latence vers l'ensemble des relais pour choisir le plus proche. Voir la FAQ sur ce point.
Il est tentant de ne garder que le relais le plus proche — derp18-all pour Paris, par exemple. Ne le faites pas : la VM sonde toutes les régions pour élire la plus rapide, et bascule sur une autre en cas d'incident ou de changement de chemin réseau. Une allowlist réduite à une région fonctionne le jour de l'installation puis casse silencieusement le jour où cette région devient injoignable.
Si les trente entrées sont trop lourdes à maintenir, la bonne réponse n'est pas d'en retirer : c'est la version simplifiée (*.tailscale.com, une entrée) ou un objet applicatif d'éditeur.
Les flux 1 à 4 sont le minimum vital : les trois premiers enregistrent la VM auprès du control plane, le quatrième lui donne un chemin de données. Sans les flux 5 et 6, tout transite par les relais DERP en TCP 443 — fonctionnel, mais plus lent. Les flux 5 et 6 permettent une connexion directe entre l'OutPost et OverView.
Version simplifiéesi votre firewall gère les wildcards
Trois règles au lieu de six, et une seule entrée à maintenir au lieu d'une trentaine — à condition que votre firewall accepte un objet FQDN wildcard. FortiGate, Check Point et la plupart des UTM le font ; Palo Alto et Cisco ASA le refusent.
| # | Destination | Port | Proto | À quoi ça sert | Niveau |
|---|---|---|---|---|---|
| 1 | *.tailscale.com | 443 | TCP | Control plane et relais chiffrés (DERP) | Obligatoire |
| 2 | *.tailscale.com | 3478 | UDP | STUN — détection du NAT | Recommandé |
| 3 | 51.15.222.156 | 32768-60999 | UDP | Tunnel WireGuard direct vers OverView | Recommandé |
Tout autre trafic sortant : REFUSER.
Le périmètre reste le même — tout est restreint au domaine tailscale.com — mais le firewall suit lui-même les serveurs DERP au lieu de vous faire tenir la liste à jour.
Certains firewalls font encore mieux : un objet applicatif maintenu par l'éditeur (Internet Service Tailscale-Tailscale chez Fortinet, App-ID tailscale chez Palo Alto) reste aussi strict que l'énumération complète, sans aucun entretien. Voir la procédure selon votre firewall.
Flux de service
Le « tout autre trafic sortant : REFUSER » des deux versions ci-dessus bloque aussi les flux de service de la VM elle-même. Quelle que soit la version retenue :
- DNS — la VM doit pouvoir joindre ses résolveurs (Phase 2) en UDP/TCP 53. La plupart des réseaux ont déjà une règle globale pour cela ; vérifiez simplement que la VM en bénéficie.
- Mises à jour et heure — la VM applique ses mises à jour de sécurité directement depuis Internet et synchronise son horloge en NTP :
| Destination | Port | Proto | À quoi ça sert |
|---|---|---|---|
archive.ubuntu.com, security.ubuntu.com | 80, 443 | TCP | Mises à jour de sécurité de l'OS |
pkgs.tailscale.com | 443 | TCP | Mises à jour du client VPN |
ntp.ubuntu.com | 123 | UDP | Synchronisation de l'heure — une horloge fausse fait échouer les handshakes TLS |
Sans ces flux, le tunnel continue de fonctionner, mais les mises à jour de sécurité automatiques ne s'appliquent plus — silencieusement.
La section Flux réseau reprend ces mêmes flux sous forme de référence, à transmettre à votre équipe réseau.
Firewall interne (DMZ -> Réseau interne)
| Source | Destination | Port | Action |
|---|---|---|---|
| IP de la VM | IP de l'API cible (ex. 10.0.1.50) | 8443/tcp | AUTORISER |
| IP de la VM | 10.0.0.0/8 — tout le reste | tout | REFUSER |
Ajoutez une ligne « AUTORISER » par API à exposer. Si vous utilisez des noms DNS internes, autorisez aussi la VM à joindre vos résolveurs (UDP/TCP 53).
Votre firewall edge doit être stateful afin que le trafic retour sur les connexions établies (TCP et UDP) soit automatiquement autorisé. Si le firewall est stateless ou effectue du DPI (deep packet inspection) agressif, les réponses des relais DERP ou des peers WireGuard peuvent être bloquées même si la connexion sortante est autorisée.
Procédure selon votre firewall
Ces procédures reprennent la documentation Tailscale par éditeur et la documentation officielle de chaque constructeur.
Dans toutes les procédures ci-dessous, 192.0.2.10 est un exemple : remplacez-le partout par l'adresse IP réelle de votre OutPost, y compris dans les commandes de diagnostic — ou laissez le champ IP de votre OutPost en tête de la Phase 3 faire ce remplacement pour vous. En revanche, l'IP 51.15.222.156 (sortie OverView) et les noms *.tailscale.com sont à reprendre tels quels.
Fortinet FortiGate (FortiOS)
FortiOS expose un objet Internet Service (ISDB) Tailscale-Tailscale, maintenu par FortiGuard : il contient déjà les plages IP et les ports de l'infrastructure Tailscale. C'est la méthode la plus simple et la plus robuste — aucun FQDN ni serveur DERP à suivre.
Interface graphique
- Policy & Objects > Firewall Policy > Create New
- Source : l'objet adresse de la VM · Destination : basculer sur l'onglet Internet Service et rechercher
Tailscale - Sélectionner Tailscale-Tailscale, action ACCEPT, et désactiver l'inspection SSL profonde
CLI (FortiOS 7.x)
config firewall address
edit "OverView-OutPost"
set subnet 192.0.2.10 255.255.255.255
next
edit "OverView-Egress"
set subnet 51.15.222.156 255.255.255.255
next
end
config firewall service custom
edit "WireGuard-OverView"
set udp-portrange 32768-60999
next
end
config firewall policy
edit 0
set name "OutPost-Tailscale"
set srcintf "dmz"
set dstintf "wan1"
set srcaddr "OverView-OutPost"
set internet-service enable
set internet-service-name "Tailscale-Tailscale"
set action accept
set schedule "always"
set ssl-ssh-profile "no-inspection"
set nat enable
next
edit 0
set name "OutPost-WireGuard"
set srcintf "dmz"
set dstintf "wan1"
set srcaddr "OverView-OutPost"
set dstaddr "OverView-Egress"
set service "WireGuard-OverView"
set action accept
set schedule "always"
set nat enable
next
end
set internet-service remplace dstaddr et service dans la même règle : c'est pourquoi le flux WireGuard direct vers 51.15.222.156 fait l'objet d'une seconde règle.
Variante sans ISDB — FortiOS accepte les objets FQDN wildcard dans le champ dstaddr d'une policy :
config firewall address
edit "Tailscale-Wildcard"
set type wildcard-fqdn
set wildcard-fqdn "*.tailscale.com"
next
end
Réglages par défaut qui cassent Tailscale
C'est la cause la plus fréquente sur FortiGate : la règle est correcte, mais un profil actif par défaut coupe le flux.
| Élément | Effet | Correctif |
|---|---|---|
| Profil SSL deep-inspection sur la policy | Erreur de vérification de certificat, l'enrôlement Tailscale échoue | Security Profiles > SSL/SSH Inspection → basculer la policy sur no-inspection |
Profil Application Control bloquant la catégorie Proxy, ou la signature Tailscale (ID 51457) | Le VPN est coupé alors que la policy est bien en accept | Security Profiles > Application Control → retirer le blocage, ou exclure la VM du profil |
| Base ISDB en mode mini (défaut sur les modèles d'entrée de gamme) | L'objet Tailscale-Tailscale est vide ou incomplet : la policy ne matche jamais | config system global puis set internet-service-database standard (ou full) |
| ISDB à 0 entrée après une montée de version FortiOS | Idem — la base est purgée et doit être retéléchargée | Forcer la mise à jour dans System > FortiGuard |
| Un autre objet ISDB recouvre les mêmes IP/port | FortiOS ne retient qu'un objet par tuple : le trafic tombe sur une autre policy | Vérifier avec diagnose internet-service match (ci-dessous) |
Diagnostic express
# La base ISDB est-elle chargée ? (taille, version, nombre d'entrées)
diagnose internet-service id-summary
# À quel objet ISDB appartient réellement une IP Tailscale ?
diagnose internet-service match root <IP_TAILSCALE> 255.255.255.255
# Quel service correspond à un tuple protocole / port / IP ?
diagnose internet-service info root 6 443 <IP_TAILSCALE>
# Tracer le cheminement du flux dans les policies
diagnose debug flow filter saddr 192.0.2.10
diagnose debug flow show function-name enable
diagnose debug flow trace start 20
diagnose debug enable
# … puis pour arrêter :
diagnose debug disable
diagnose debug reset
# Que voit réellement passer le FortiGate ?
diagnose sniffer packet any 'host 51.15.222.156' 4
Si diagnose internet-service match ne renvoie pas Tailscale-Tailscale pour une IP de derp1-all.tailscale.com, la base ISDB est trop réduite ou périmée : corrigez internet-service-database avant de toucher aux règles.
Port WireGuard — Fortinet recommande de randomiser le port client WireGuard. Ce réglage se fait côté tailnet : contactez le support OverSOC si les connexions directes n'aboutissent jamais.
Palo Alto Networks (PAN-OS)
Deux façons de désigner la destination. L'App-ID est préférable : PAN-OS n'accepte pas de wildcard dans un objet FQDN (*.tailscale.com est refusé), et un objet FQDN ne mémorise que 32 adresses alors que controlplane.tailscale.com en publie déjà 16 en IPv4 et 16 en IPv6.
Option A — règle App-ID (recommandée)
Interface graphique
- Objects > Addresses > Add — créer deux objets d'adresse, chacun avec
une Description pour que l'administrateur suivant sache de quoi il s'agit :
OVS-OUTPOST, l'IP de votre OutPost en /32, ex.192.0.2.10/32— VM OverView OutPost en DMZ, source de tout le trafic OverViewOVS-OVERVIEW,51.15.222.156/32, à reprendre tel quel — IP de sortie de la plateforme OverView, pair du tunnel WireGuard direct
- Objects > Services > Add — créer le service qu'utilisera la seconde règle :
- Name :
SVC-WIREGUARD - Description : plage de ports UDP du tunnel WireGuard direct entre l'OutPost et OverView
- Protocol :
UDP - Destination Port :
32768-60999 - Source Port : laisser vide. L'OutPost choisit lui-même son port source, le restreindre ici couperait le tunnel
- Session Timeout :
Inherit from application
- Name :
- Policies > Security > Add — onglet par onglet :
- General : Name
ALLOW-TAILSCALE, et une Description du type OverView OutPost : control plane Tailscale et relais chiffrés. À retirer en même temps que la VM OutPost. - Source : Source Zone est la zone où se trouve l'OutPost, choisie
parmi vos propres zones, donc rarement nommée
dmz: elle porte le nom que ce segment a sur votre firewall. Source Address est l'objetOVS-OUTPOSTcréé plus haut. Laissez Source User et Source Device surany, et Negate décoché - Destination : zone
untrust(votre zone WAN), adresseAny - Application : ajouter
tailscale,tailscale-base,stunetssl. PAN-OS indique ce dont une application a besoin dans le panneau Depends On, à côté de la liste, et avertit au commit lorsqu'une règle en oublie une : ajoutez ce qui y figure. Les content releases actuelles associenttailscaleàtailscale-base - Service/URL Category :
application-default - Actions :
Allow
- General : Name
- Ajouter une seconde règle pour le tunnel direct, avec les mêmes onglets :
- General : Name
ALLOW-WIREGUARD, Description OverView OutPost : tunnel WireGuard direct vers la plateforme OverView. Sans elle, le trafic bascule sur les relais. - Source : la même zone que la règle précédente, adresse
OVS-OUTPOST - Destination : zone
untrust, adresseOVS-OVERVIEW - Application :
any - Service/URL Category :
SVC-WIREGUARD - Actions :
Allow
- General : Name
- Déplacer les deux règles au-dessus de la règle qui bloque les catégories VPN / proxy (Move > Move Up, ou glisser dans la liste)
- Commit
Les premiers paquets d'une session sont classés ssl avant que l'App-ID
tailscale ne soit résolu. Une règle qui n'autorise que tailscale coupe donc
la session avant son identification, et le symptôme est identique à un blocage
pur et simple.
stun couvre la détection du NAT (UDP 3478 vers les relais DERP) : sans lui, la
connexion directe ne s'établit jamais et tout le trafic transite par les relais.
tailscale-base est une dépendance, pas un flux en propre ; Palo Alto explique
comment les lire et les résoudre dans
Resolve Application Dependencies.
L'App-ID wireguard n'est pas dans cette règle. Le tunnel direct est pris par la
seconde règle, sur le service SVC-WIREGUARD. Ne l'ajoutez ici que si vous
préférez regrouper les deux flux dans une seule règle, en lui donnant aussi le
service : avec application-default, wireguard porte le port 51820, qui ne
couvre pas la plage utilisée par OverView.
CLI équivalente
set address OVS-OUTPOST ip-netmask 192.0.2.10/32 description "VM OverView OutPost en DMZ"
set address OVS-OVERVIEW ip-netmask 51.15.222.156/32 description "IP de sortie de la plateforme OverView"
set service SVC-WIREGUARD protocol udp port 32768-60999 description "Tunnel WireGuard direct, OutPost vers OverView"
set rulebase security rules ALLOW-TAILSCALE from dmz to untrust \
source OVS-OUTPOST destination any \
application [ tailscale tailscale-base stun ssl ] \
service application-default action allow \
description "OverView OutPost : control plane Tailscale et relais chiffres"
set rulebase security rules ALLOW-WIREGUARD from dmz to untrust \
source OVS-OUTPOST destination OVS-OVERVIEW \
application any service SVC-WIREGUARD action allow \
description "OverView OutPost : tunnel WireGuard direct vers OverView"
move rulebase security rules ALLOW-TAILSCALE top
Option B — si l'App-ID tailscale est absent de votre content release
L'objet FQDN ne pouvant pas porter de wildcard, il faut combiner deux objets :
- Objects > Addresses — un objet FQDN par nom :
controlplane.tailscale.com,login.tailscale.com,log.tailscale.com, puis un objetderpN-all.tailscale.compar région DERP (liste vivante). Les regrouper dans Objects > Address Groups. - Objects > Custom Objects > URL Category > Add — catégorie
TAILSCALEcontenant*.tailscale.com/ - Dans la règle : le groupe d'adresses en Destination, la catégorie personnalisée dans l'onglet Service/URL Category
Un objet FQDN ne retient que 32 adresses, rafraîchies toutes les 30 minutes. controlplane.tailscale.com en publie 16 en IPv4 et 16 en IPv6 : la limite est atteinte d'emblée et la moindre rotation fait sortir le trafic du périmètre de la règle. À défaut d'App-ID, préférez une destination Any limitée au TCP/443 — la source est déjà restreinte à cette seule VM.
Points d'attention
- NAT — Policies > NAT, sur la règle qui s'applique à la VM, onglet Translated Packet : type de traduction Persistent Dynamic IP and Port (PAN-OS 11.1.1 et supérieur). Sur un PAN-OS plus ancien, créez une règle NAT Static IP dédiée à la VM — avec la traduction dynamique classique, le port source est imprévisible et tout passe par les relais DERP.
- Déchiffrement — Policies > Decryption : ajouter une règle No Decrypt pour
OVS-OUTPOST.tailscaledrefuse un certificat ré-signé, l'enrôlement échoue. - Security Profiles — piège suivant une fois la règle en place : le trafic apparaît en
allowdans Monitor > Traffic mais la session est quand même coupée. Regarder Monitor > Threat : un profil Vulnerability Protection ou Anti-Spyware attaché à la règle peut la reset. Le retirer pour cette règle. - Signature du blocage — un RST immédiat après le ClientHello trahit une action reset-both sur une règle placée plus haut, pas un port 443 fermé.
Diagnostic express
# La règle matche-t-elle vraiment ?
test security-policy-match from dmz to untrust source 192.0.2.10 \
destination <IP_TAILSCALE> destination-port 443 protocol 6
# Les objets FQDN sont-ils résolus ? (mapping, TTL restant, dernier refresh)
request system fqdn show
# Forcer une actualisation (toute la table — il n'existe pas de refresh unitaire)
request system fqdn refresh
Dans Monitor > Traffic, le filtre (addr.src eq 192.0.2.10) and (app eq tailscale) isole le trafic de l'OutPost et désigne la règle responsable dans la colonne Rule.
| Symptôme | Cause probable |
|---|---|
Trafic loggé allow dans Monitor > Traffic, session reset malgré tout | Un Security Profile coupe la session — vérifier Monitor > Threat |
RST immédiat après le Client hello | Règle reset-both placée plus haut : la règle Allow n'est pas la première à matcher |
Application vue comme incomplete / insufficient-data | La session n'aboutit pas — vérifier la traduction NAT et l'accessibilité sortante |
request system fqdn show ne renvoie rien pour un objet | L'objet n'est référencé par aucune règle, ou le DNS de Device > Setup > Services ne répond pas |
| Connexion directe jamais établie, tout passe par DERP | Traduction NAT non persistante (passer en Persistent Dynamic IP and Port), ou application stun absente de la règle |
Check Point (R80.10+)
Selon Tailscale, Check Point établit des connexions directes sans configuration particulière. Il reste à créer la règle sortante.
Objets
| Objet | Type | Valeur |
|---|---|---|
OverView-OutPost | Host | 192.0.2.10 |
OverView-Egress | Host | 51.15.222.156 |
.tailscale.com | Domain — case FQDN décochée | .tailscale.com |
UDP-STUN | Service UDP | 3478 |
UDP-WireGuard | Service UDP | 32768-60999 |
Le point initial est obligatoire. Case FQDN décochée = mode non-FQDN, qui fait correspondre le domaine et ses sous-domaines (controlplane., derp1-all.…). Cochée, l'objet ne matcherait que tailscale.com et www.tailscale.com.
Règles
| N° | Source | Destination | Service | Action |
|---|---|---|---|---|
| 1 | OverView-OutPost | .tailscale.com | https, UDP-STUN | Accept |
| 2 | OverView-OutPost | OverView-Egress | UDP-WireGuard | Accept |
Points d'attention
- Le mode non-FQDN s'appuie sur des résolutions DNS inverses : si le matching est instable, remplacez l'objet Domain par des objets Domain FQDN nommés un par un.
- Exclure la source
OverView-OutPostde l'HTTPS Inspection — l'interception TLS casse l'enrôlement Tailscale.
Diagnostic express
# Paquets rejetés en temps réel, avec le motif du drop (Ctrl+C pour arrêter)
fw ctl zdebug + drop | grep 192.0.2.10
# Tables noyau du résolveur DNS inverse utilisées par les objets Domain
fw ctl multik print_bl dns_reverse_cache_tbl
# Relancer le résolveur si les objets Domain ne matchent plus,
# puis réinstaller la politique
killall wsdnsd
| Symptôme | Cause probable |
|---|---|
| Log Drop sur la « Cleanup rule » alors que la règle existe | L'objet Domain non-FQDN n'a pas résolu : la gateway raisonne en IP, pas en nom |
| Matching intermittent | Le mode non-FQDN dépend de résolutions inverses qui n'aboutissent pas toujours — basculer sur des objets Domain FQDN |
Domain resolving error dans les logs | DNS non joignable depuis la gateway — vérifier Gateway Properties > DNS |
Les logs se consultent dans SmartConsole, onglet Logs & Monitor, filtrés sur la source OverView-OutPost.
Cisco ASA / Firepower (FTD)
ASA — les objets network de type fqdn n'acceptent pas de wildcard, et la résolution DNS doit être fonctionnelle sur l'appliance elle-même.
dns domain-lookup outside
dns server-group DefaultDNS
name-server 8.8.8.8
! 192.0.2.10 = l'IP de votre OutPost — remplacez-la par la vôtre
object network OVS-OUTPOST
host 192.0.2.10
object network OVS-OVERVIEW
host 51.15.222.156
object network TS-CONTROLPLANE
fqdn controlplane.tailscale.com
object network TS-LOGIN
fqdn login.tailscale.com
object network TS-DERP1
fqdn derp1-all.tailscale.com
! … un objet par région DERP publiée dans la derp map
object-group network TS-ALL
network-object object TS-CONTROLPLANE
network-object object TS-LOGIN
network-object object TS-DERP1
access-list DMZ_OUT extended permit tcp object OVS-OUTPOST object-group TS-ALL eq 443
access-list DMZ_OUT extended permit udp object OVS-OUTPOST object-group TS-ALL eq 3478
access-list DMZ_OUT extended permit udp object OVS-OUTPOST object OVS-OVERVIEW range 32768 60999
access-group DMZ_OUT in interface dmz
Firepower / FTD — les objets URL acceptent les wildcards. Créez un objet URL .tailscale.com et utilisez-le dans l'onglet URLs d'une règle Access Control, plutôt que d'énumérer 28 objets FQDN.
Points d'attention
- Sans ouverture de port dédiée côté NAT, Cisco force le trafic à passer par les relais DERP : c'est fonctionnel, simplement plus lent.
- Cisco Umbrella (agent poste) : aucun contournement connu, le trafic emprunte toujours les relais.
- Ne pas activer le déchiffrement SSL/TLS sur ce flux.
Diagnostic express
! ASA — simuler le flux à travers la politique
packet-tracer input dmz tcp 192.0.2.10 12345 <IP_TAILSCALE> 443 detailed
! Les objets FQDN sont-ils résolus ?
show dns
show run object network
! L'ACL est-elle réellement traversée ? (compteurs de hits)
show access-list DMZ_OUT
| Symptôme | Cause probable |
|---|---|
show dns ne renvoie aucune entrée | dns domain-lookup n'est pas activé sur une interface joignable : les objets FQDN restent sans IP et l'ACL ne matche jamais |
packet-tracer s'arrête en phase ACCESS-LIST avec DROP | L'objet FQDN concerné n'est pas dans l'object-group, ou n'a pas résolu |
| Compteurs de hits à 0 sur la ligne UDP 32768-60999 | Normal si la connexion directe n'est jamais tentée — le trafic passe par les relais DERP |
Sur Firepower / FTD, les logs équivalents sont dans Analysis > Connection Events, filtrés sur l'IP de la VM.
pfSense / OPNsense
Alias
Créez des alias de type Host(s) — les alias pfSense/OPNsense résolvent les FQDN périodiquement, mais n'acceptent pas de wildcard :
| Alias | Type | Contenu |
|---|---|---|
Tailscale_CP | Host(s) | controlplane.tailscale.com, login.tailscale.com, log.tailscale.com |
Tailscale_DERP | Host(s) | un derpN-all.tailscale.com par région DERP |
OverView_Egress | Host(s) | 51.15.222.156 |
Règles (interface DMZ)
| Proto | Source | Destination | Port | Action |
|---|---|---|---|---|
| TCP | IP de la VM | Tailscale_CP, Tailscale_DERP | 443 | Pass |
| UDP | IP de la VM | Tailscale_DERP | 3478 | Pass |
| UDP | IP de la VM | OverView_Egress | 32768-60999 | Pass |
Point d'attention — NAT sortant
Par défaut le NAT réécrit le port source, ce qui empêche la connexion directe. Passez Firewall > NAT > Outbound en mode Hybrid ou Manual, puis cochez Static Port sur la règle qui couvre l'IP de la VM. Activer NAT-PMP ou UPnP produit le même résultat.
Diagnostic express
# Que contient réellement l'alias après résolution DNS ?
pfctl -t Tailscale_CP -T show
# États ouverts depuis la VM
pfctl -ss | grep 192.0.2.10
| Symptôme | Cause probable |
|---|---|
pfctl -t … -T show renvoie une table vide | Les FQDN de l'alias ne résolvent pas — vérifier le DNS du firewall |
| Blocage sur la « Default deny rule » dans Status > System Logs > Firewall | La règle est placée trop bas : sur une interface, les règles sont évaluées de haut en bas et la première qui matche gagne |
tailscale netcheck renvoie UDP: false sur la VM | NAT sortant sans Static Port, ou UDP 3478 bloqué |
Autres constructeurs
| Constructeur | Comportement par défaut | À faire |
|---|---|---|
| Sophos | Connexion directe fonctionnelle | Rien de particulier |
| Barracuda | Passe par les relais DERP | Augmenter le paramètre Max UDP (sessions UDP simultanées) |
| UniFi Gateway | Passe par les relais DERP | Désactiver la détection de menaces P2P dans les réglages de sécurité |
Dans tous les cas, un firewall qui laisse passer TCP/443 sortant suffit à faire fonctionner l'OutPost.
Si la règle semble correcte et que la VM ne se connecte toujours pas, allez voir La VM ne joint pas Tailscale : le compteur de hits de la règle dit en une seconde si le trafic l'emprunte réellement.
Phase 4 : Activation et ajout des sources de données
Une fois la VM déployée et les firewalls configurés, informez OverSOC que la VM est en ligne. OverSOC vérifie la connexion VPN et valide le bon fonctionnement.
Une fois l'OutPost connecté, il apparaît automatiquement dans votre interface OverView lorsque vous ajoutez une source de données. C'est vous qui configurez les accès aux APIs cibles :
- Dans OverView, aller dans Sources de données > Ajouter
- Sélectionner votre OutPost comme point de collecte
- Renseigner les informations de connexion à l'API cible
Les deux fonctionnent. Un nom DNS interne (ex : api.internal.corp) est utilisable à condition que la VM sache le résoudre — c'est-à-dire que ses résolveurs DNS (voir Phase 2) connaissent vos zones internes. Dans le doute, l'adresse IP fonctionne toujours.
Vos actions :
- Vous assurer que les règles firewall internes autorisent la VM à joindre vos APIs
- Ajouter vos sources de données dans OverView
Accès à la VM
| Méthode | Détails |
|---|---|
| Console (hyperviseur) | Login : ubuntu, mot de passe fourni par OverSOC |
| SSH | ssh ubuntu@<IP_LAN> (clé SSH fournie par OverSOC si applicable) |
Recommandation de sécurité : une fois la VM connectée au réseau, configurez une clé SSH et désactivez le mot de passe :
# Ajouter votre clé SSH
echo "ssh-ed25519 AAAA... votre@email" >> ~/.ssh/authorized_keys
# Désactiver le mot de passe
sudo passwd -d ubuntu
Commandes utiles :
tailscale status— Vérifier l'état de la connexion VPNsudo gateway-reconfig— Menu de reconfiguration (changer la clé VPN, reconnecter)
Flux réseau
Référence : Tailscale Firewall Ports
Flux sortants requis (source : IP de la VM) :
| Service | Destination | Port | Protocole | Requis pour |
|---|---|---|---|---|
| Control plane | controlplane.tailscale.com | 443 | TCP (HTTPS) | Enregistrement, auth, config |
| Login | login.tailscale.com | 443 | TCP (HTTPS) | Authentification |
| Logs & console | log.tailscale.com, console.tailscale.com | 443 | TCP (HTTPS) | Télémétrie de connexion et coordination |
| DERP relays | derpN-all.tailscale.com | 443 | TCP | Trafic relayé (fallback si connexion directe impossible) |
| STUN | derpN-all.tailscale.com | 3478 | UDP | Détection NAT (nécessaire à la connexion directe) |
| WireGuard direct | 51.15.222.156 | 32768-60999 | UDP | Connexion directe peer-to-peer (perf optimale) |
Flux de service (hors VPN — voir Flux de service) :
| Service | Destination | Port | Protocole | Requis pour |
|---|---|---|---|---|
| Mises à jour OS | archive.ubuntu.com, security.ubuntu.com | 80, 443 | TCP | Mises à jour de sécurité automatiques |
| Mises à jour VPN | pkgs.tailscale.com | 443 | TCP | Mises à jour du client Tailscale |
| NTP | ntp.ubuntu.com | 123 | UDP | Synchronisation de l'heure |
La VM doit aussi pouvoir joindre ses résolveurs DNS (UDP/TCP 53) — généralement couvert par une règle existante.
Minimum vital : TCP 443 sortant vers *.tailscale.com. Si l'UDP est bloqué, Tailscale bascule sur les relais DERP (TCP 443) — plus lent mais fonctionnel. L'ouverture UDP vers 51.15.222.156 permet une connexion directe entre l'OutPost et OverView, sans passer par les relais.
Troubleshooting
1. Commencer ici — Diagnostic rapide
Toujours commencer par cette commande — elle donne le maximum d'information en une seule fois :
tailscale netcheck
Teste tout d'un coup : accessibilité des DERP, UDP, STUN, hairpinning.
Résultat sain attendu :
| Champ | Valeur attendue |
|---|---|
| UDP | true |
| IPv4 | adresse détectée |
| Nearest DERP | un serveur (ex : par pour Paris) |
Si tout est false / unknown → problème réseau en amont. Voir la section 2 ci-dessous.
Status et logs :
sudo tailscale status
sudo journalctl -u tailscaled -n 100 --no-pager
2. La VM ne joint pas Tailscale
Symptômes typiques : tailscale status affiche Logged out, ou les logs montrent fetch control key: ... context deadline exceeded. Déroulez ces vérifications dans l'ordre — chacune isole une couche.
ping controlplane.tailscale.com et curl https://google.com fonctionnent sur la quasi-totalité des réseaux qui bloquent cette VM : la plupart des firewalls laissent passer l'ICMP et la navigation web générique, et bloquent Tailscale nommément. Ne concluez pas « le flux est ouvert » sur la base de ces deux tests.
DNS
dig controlplane.tailscale.com
Si la résolution échoue, vérifiez /etc/resolv.conf et que le firewall ne bloque pas UDP 53.
HTTPS vers le control plane (port 443)
curl -v https://controlplane.tailscale.com/key?v=142
L'enregistrement Tailscale passe entièrement par HTTPS. L'endroit exact où la sortie s'arrête désigne le blocage :
| Ce que vous voyez | Interprétation |
|---|---|
HTTP/2 200 en fin de sortie | Le control plane est joignable — le problème est ailleurs (voir section 3) |
Rien après Trying <ip>:443... | Le TCP est droppé — sortie 443 fermée sur le firewall |
Connected to ... puis blocage juste après Client hello | Le TCP passe, le TLS est coupé après lecture du nom de domaine — voir ci-dessous |
Erreur de certificat (self signed, CA interne) | Un proxy intercepte le TLS — voir ci-dessous |
Le TLS n'aboutit pas : interception, SNI ou catégorie applicative
Trois blocages TLS possibles, que deux commandes départagent :
# Test A — handshake avec le nom réel
timeout 10 openssl s_client -connect controlplane.tailscale.com:443 \
-servername controlplane.tailscale.com </dev/null 2>&1 | tail -5
# Test B — même IP, nom anodin
IP=$(getent ahostsv4 controlplane.tailscale.com | awk 'NR==1{print $1}')
timeout 10 openssl s_client -connect $IP:443 -servername www.google.com </dev/null 2>&1 | tail -5
Sur un réseau qui laisse passer Tailscale, les deux tests terminent par Verify return code: 0 (ok) : le load balancer Tailscale complète le handshake quel que soit le nom envoyé.
| Résultat | Cause | Fix |
|---|---|---|
| A aboutit mais montre un certificat émis par une CA interne (pas Let's Encrypt / DigiCert) | Un proxy intercepte le TLS | Exclure *.tailscale.com de l'inspection TLS |
A bloque après Client hello, B aboutit | Le nom de domaine est filtré (la seule variable qui change est le nom envoyé) | Voir les deux règles ci-dessous |
| A et B bloquent tous les deux | La plage d'IP de destination est bloquée | Ouvrir le TCP 443 sortant (cf. Flux réseau) |
Quand c'est le nom qui est filtré, aucun réglage sur la VM ne contourne le blocage — deux règles à faire vérifier par votre équipe réseau :
- Filtrage URL / SNI — autoriser
*.tailscale.comen TCP 443 (détail dans Flux réseau). - Filtrage applicatif par catégorie — Tailscale est classé « VPN » ou « anonymizer » par la plupart des firewalls de nouvelle génération (Fortinet, Palo Alto, Check Point, Zscaler) et bloqué par catégorie, même quand la destination est autorisée. Cette règle doit être surchargée pour l'IP de cette VM uniquement. C'est la cause habituelle quand « on a ouvert le flux » et « ça ne marche toujours pas » coexistent. Tailscale documente ce cas par éditeur (Fortinet, Palo Alto, Check Point, Sophos…) dans Configure your firewall to work with Tailscale — pour Fortinet : ne pas avoir de règle qui bloque la catégorie Proxy ou qui matche l'application Tailscale définie dans FortiGuard.
Vérifiez le compteur de hits de votre règle firewall. Cette VM retente la connexion toutes les ~30 secondes : une règle réellement empruntée compte des centaines de hits en quelques heures. Un compteur quasi nul prouve que le trafic tombe dans une autre règle plus bas dans la liste — c'est elle qu'il faut corriger. Cause fréquente : des objets destination de type FQDN, alors que controlplane.tailscale.com publie plus de 15 adresses en rotation — le firewall et la VM résolvent des IPs différentes et la règle est enjambée. Préférez un objet applicatif maintenu par l'éditeur du firewall (ex. Internet Service « Tailscale » chez Fortinet), ou une destination ouverte limitée aux services requis, la source étant déjà restreinte à cette VM.
Pièce à conviction pour l'équipe réseau — le control plane répond aussi en clair sur le port 80 :
timeout 10 curl -sS -o /dev/null -w '%{http_code}\n' http://controlplane.tailscale.com/derpmap/default
Si le port 80 répond 200 alors que le 443 bloque, le filtrage porte bien sur le HTTPS et non sur la destination.
Ne demandez pas « d'ouvrir le TCP 443 » : il est déjà ouvert, la connexion TCP s'établit. C'est le nom de domaine, lu en clair dans le ClientHello, qui déclenche le reset. Une équipe réseau qui cherche une règle sur le port ne trouvera rien. Demandez l'autorisation de *.tailscale.com sur une règle de filtrage URL / SNI / applicative, pour l'IP de cette VM uniquement.
controlplane.tailscale.com résout vers 192.200.0.0/24 (et 2606:b740:49::/48). Malgré le préfixe 192., c'est de l'espace public : seul 192.168.0.0/16 est privé au sens RFC 1918. Une destination en 192.200.x.x dans une trace n'est donc ni une erreur de routage ni une fuite d'adressage interne.
Derrière un proxy sortant explicite
Le service tailscaled ne lit pas les variables proxy du shell. Déclarez le proxy dans l'unité systemd :
sudo systemctl edit tailscaled
# Ajouter :
# [Service]
# Environment="HTTPS_PROXY=http://proxy:port"
sudo systemctl restart tailscaled
Le proxy doit laisser passer le CONNECT vers *.tailscale.com:443 sans inspection TLS.
3. Clé invalide ou expirée
Symptômes :
- Les logs montrent
backend error: invalid key: API key ... not valid→ la clé d'authentification est expirée ou révoquée - La VM était connectée mais est désormais injoignable, et OverView indique le statut "Expired" → la clé de la machine a expiré
Fix — identique dans les deux cas :
- Contactez le support OverSOC — seul OverSOC peut générer une nouvelle auth key (la console Tailscale est gérée par OverSOC). Les autorisations de la machine (tags) sont portées par la clé : rien à configurer de ce côté.
- Une fois la nouvelle clé reçue, appliquez-la sur la VM :
sudo tailscale up --auth-key=tskey-auth-NOUVELLE_CLE
(Ajoutez --force-reauth si la machine était au statut "Expired".)
Si tailscale up refuse avec ce message, c'est normal : la VM porte déjà une configuration, et tailscale up remettrait à zéro tout réglage non mentionné. L'erreur affiche la commande exacte à utiliser (avec tous les réglages courants, ex : tailscale up --hostname=...) : copiez-la telle quelle et ajoutez-y --auth-key=.... Alternative : sudo gateway-reconfig s'en occupe pour vous.
4. Subnet router — activer les routes
Symptôme : OverView vous indique que l'OutPost n'expose aucune route réseau.
Fix :
Sur la VM, advertise les routes du réseau local :
sudo tailscale set --advertise-routes=172.18.0.0/16
Adaptez le CIDR au réseau réel de la VM.
Utilisez bien tailscale set et non tailscale up : set modifie ce seul réglage, alors que up remet à zéro tous les réglages non mentionnés sur la ligne de commande.
Puis contactez OverSOC pour approuver les routes annoncées sur la console Tailscale.
5. VM active mais injoignable
Symptôme : la VM fonctionne et tailscaled est actif, mais OverSOC vous signale que l'OutPost est injoignable et les collectes n'aboutissent plus.
C'est la signature d'un control plane joignable sans chemin de données : le 443 vers controlplane.tailscale.com passe toujours, mais plus aucun trafic ne circule avec les autres appareils.
Diagnostic, depuis la VM :
tailscale netcheck
| Observation | Interprétation |
|---|---|
Aucune latence DERP, UDP: false | Ni relais ni chemin direct : le 443 vers derp*.tailscale.com et l'UDP sont bloqués |
Latences DERP affichées, UDP: true | N'en concluez pas que le relais fonctionne — voir ci-dessous |
Les latences de netcheck sont mesurées en STUN sur UDP 3478, alors que le relais lui-même est une connexion TLS sur TCP 443 vers derp*.tailscale.com. Un filtrage par nom de domaine (SNI) qui bloque le 443 vers les relais laisse le STUN intact : vous voyez des latences et UDP: true alors qu'aucune donnée ne circule.
Pour tester le relais lui-même plutôt que le STUN :
tailscale debug derp par
Attendu : au moins une ligne Successfully established a DERP connection. Des entrées dans Errors portant uniquement sur de l'IPv6 (no route to host) sont normales sur un site sans IPv6. En revanche, aucune connexion établie alors que netcheck affiche une latence pour Paris confirme que le canal de relais est coupé.
Cas particulier : certificate signed by unknown authority
Si tailscale debug derp par renvoie ceci :
Error upgrading connection to node "derp18d.tailscale.com" @ "176.58.90.104:443"
to TLS over IPv4: tls: failed to verify certificate:
x509: certificate signed by unknown authority
la connexion TCP aboutit — c'est la validation du certificat qui échoue. Un équipement en coupure (pare-feu applicatif, proxy) réalise une inspection TLS : il déchiffre la session et la re-signe avec son autorité interne, que la VM ne connaît pas.
Le certificat des relais Tailscale est émis par Let's Encrypt et se vérifie depuis n'importe quel réseau non filtré :
echo | openssl s_client -connect 176.58.90.104:443 \
-servername derp18d.tailscale.com 2>/dev/null | openssl x509 -noout -issuer
# issuer=C=US, O=Let's Encrypt, CN=YE1
Tailscale valide strictement la chaîne de certificats. L'inspection TLS est donc structurellement incompatible : il n'existe aucun contournement côté VM.
Fix : exemptez les domaines Tailscale de l'inspection TLS — ssl-exempt sur
FortiGate, « SSL bypass » ou « TLS inspection exclusion » selon l'équipement.
| Domaine | Rôle |
|---|---|
controlplane.tailscale.com | Enregistrement, authentification, configuration |
derp*.tailscale.com | Relais chiffrés |
log.tailscale.com | Télémétrie et audit |
Dans la même sortie, les erreurs over IPv6: ... network is unreachable sont
normales sur un site sans IPv6 : ce n'est pas la cause.
Fix : appliquez les vérifications de la section 2 en ciblant les destinations DERP, puis validez :
tailscale netcheck # attendu : Nearest DERP renseigné, UDP: true
tailscale debug derp par # attendu : au moins une connexion DERP établie
tailscale ping tailscale-tenant-operator # le peer OverView, visible dans tailscale status
FAQ
Q : Qui peut accéder à la VM ? R : Uniquement OverView. L'OutPost fait partie du réseau privé Tailscale d'OverView, isolé d'Internet et de tout autre accès.
Q : La VM peut-elle accéder à notre réseau interne ? R : Seulement ce que vous autorisez explicitement via vos règles firewall. Par défaut : zéro accès.
Q : Que se passe-t-il si la VM est compromise ? R : Le rayon d'impact est limité aux APIs explicitement autorisées par vos règles firewall. La VM ne peut pas pivoter vers d'autres ressources.
Q : Quel est l'impact sur les performances ? R : L'overhead WireGuard est < 5%. Le mode peer-to-peer performe comme une connexion directe.
Q : Que faire si la connexion VPN tombe ?
R : Connectez-vous à la VM et lancez sudo gateway-reconfig pour reconnecter. Si le problème persiste, contactez le support OverSOC.
Q : Comment révoquer un accès ? R : Contactez le support OverSOC. La révocation est instantanée (propagation < 30 secondes).
Q : Pourquoi Tailscale se connecte-t-il à des serveurs dans de nombreux pays différents ?
R : Comportement normal et attendu. Tailscale mesure périodiquement la latence vers l'ensemble de ses serveurs relais DERP, répartis dans le monde, pour choisir le plus proche — c'est ce que fait tailscale netcheck. Aucune donnée applicative n'est envoyée lors de ces sondes ; seul le relais le plus proche (ex : par pour Paris) sert de fallback si la connexion directe est impossible.