Cloud & Infrastructure

VPN et exposition d'environnements de lab : 5 approches

Exposer un lab (pentest, dev, formation) : VPN classique, mesh Tailscale, Cloudflare Tunnel, bastion SSH, IAP. Matrice de choix 2025 + erreurs à éviter.

Naim Aouaichia
14 min de lecture
  • VPN
  • Lab
  • Accès distant
  • Tailscale
  • WireGuard
  • Cloudflare Tunnel
  • Zero Trust

Exposer un environnement de lab (home lab pentest, environnement de formation, dev environment partagé, staging cloud, infrastructure personnelle de démo) à un accès distant est un problème récurrent pour les ingénieurs cyber, développeurs, pentesters et formateurs. Les 5 approches disponibles en 2025 couvrent des besoins distincts : VPN traditionnel (OpenVPN, WireGuard pur, IPsec) pour souveraineté et performance brute, mesh VPN (Tailscale, ZeroTier, Netbird, Twingate) pour simplicité et NAT traversal automatique, reverse tunnel (Cloudflare Tunnel, Inlets, ngrok) pour exposition sans IP publique, SSH bastion / jumpbox pour legacy Unix avec audit, Identity-Aware Proxy (GCP IAP, AWS Verified Access, Cloudflare Access) pour accès zéro-trust enterprise. Jamais exposer directement un service administratif (SSH, RDP, Kubernetes API, base de données) sur Internet — les scanners Shodan/Censys indexent tout port ouvert en moins de 60 secondes. Cet article détaille les 5 approches avec exemples de configuration concrets, la matrice de décision par cas d'usage (home lab solo, lab formation 20 apprenants, lab entreprise 100+ users, lab pentest CTF public), les 7 erreurs classiques qui transforment un lab en point d'entrée attaquant, et un pattern de référence pour un lab pentest/formation sécurisé. Pour le deep-dive protocole WireGuard lui-même, voir WireGuard : pourquoi l'utiliser. Pour les considérations légales d'un lab pentest, Apprendre le pentest légalement.

1. Le problème : ce qu'un lab à exposer veut dire

Un environnement de lab dans ce contexte couvre cinq cas de figure distincts :

Type de labCibleExigences principales
Home lab pentest / CTF personnelToi seulSimplicité, coût ≈ 0, isolation du réseau domestique
Home lab dev avec collaborateurs occasionnels2-5 personnesPartage facile, pas d'admin réseau lourd
Lab de formation (bootcamp, école)10-50 apprenantsIsolation inter-apprenants, réinitialisation facile, audit
Lab entreprise dev/staging20-200 devsSSO entreprise, compliance, audit CloudTrail
Lab pentest public (CTF, wargame)Anonymes internetAuthentification queue, rate limiting, honeypot séparation

Les exigences divergent fortement selon le cas. Une solution unique n'existe pas — le choix se fait sur 5 critères : isolation (blast radius en cas de compromission), authentification (qui valide l'accès), NAT traversal (réseau domestique derrière CGNAT ISP ?), audit (traces de qui a fait quoi), coût (licence + complexité opérationnelle).

2. Option 1 — VPN traditionnel (OpenVPN, WireGuard pur, IPsec)

2.1 Principe

Un serveur VPN avec IP publique accepte des connexions authentifiées par certificat ou clé publique, crée un tunnel chiffré, et les clients accèdent aux ressources du lab via ce tunnel.

SolutionProtocoleComplexité setupPerformanceNAT traversal
OpenVPNTLS + UDP/TCPMoyenneMoyenneBon
WireGuard purUDP customFaibleExcellenteNécessite port forward
IPsec (strongSwan)IKEv2 + ESPÉlevéeExcellenteBon

2.2 Exemple WireGuard pur côté serveur

# /etc/wireguard/wg0.conf — serveur WireGuard minimal
[Interface]
PrivateKey = <SERVER_PRIVATE_KEY>
Address = 10.100.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
 
[Peer]
# Client laptop perso
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.100.0.2/32
 
[Peer]
# Autre client
PublicKey = <CLIENT2_PUBLIC_KEY>
AllowedIPs = 10.100.0.3/32
# Activation
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
 
# Vérification status
sudo wg show

2.3 Forces et limites

Forces : souveraineté complète (pas de cloud tiers), performance maximale (WireGuard surpasse OpenVPN de 3-5x en débit sur même hardware), compatibilité hardware (routeurs pfSense / OPNsense).

Limites : NAT traversal complexe (nécessite port forwarding sur box ISP, impossible derrière CGNAT sans relais), ajout d'un peer = édition manuelle du config sur serveur et client (pas de self-service), pas de MFA natif simple, pas d'ACL applicative.

Quand choisir : souveraineté stricte imposée, architecture hub-spoke stable 2-10 peers, apprentissage pédagogique du protocole, contrainte pfSense/OPNsense du FAI.

3. Option 2 — Mesh VPN (Tailscale, ZeroTier, Netbird, Twingate)

3.1 Principe

Un control plane cloud coordonne les clés publiques entre les nœuds, le traffic de données reste peer-to-peer (E2E encrypted via WireGuard ou protocole propriétaire). Les nœuds s'authentifient via identity provider (Google, GitHub, Microsoft, Okta, OIDC générique).

3.2 Comparaison mesh VPN 2025

ProduitProtocole dataFree tierSSOSouveraineté
TailscaleWireGuard3 users + 100 devicesGoogle, Microsoft, GitHub, OIDCControl plane Tailscale Inc
ZeroTierProtocole custom25 devices/networkGoogle, Microsoft SSOControl plane ZeroTier Inc
NetbirdWireGuardUnlimited (self-hosted OSS)OIDCSelf-hostable ✓
TwingateWireGuard-like2 users maxGoogle, Microsoft, OktaControl plane Twingate Inc
Nebula (Slack)CustomSelf-hosted gratuit-Self-hostable ✓

3.3 Exemple Tailscale — setup lab en 10 minutes

# Sur chaque machine du lab (serveur + clients)
curl -fsSL https://tailscale.com/install.sh | sh
 
# Serveur lab : enregistrement avec tags
sudo tailscale up --advertise-tags=tag:lab-server --ssh
 
# Client dev : accès sans SSO
tailscale up --authkey=tskey-auth-abcdef123456
 
# Vérification de la mesh
tailscale status
# 100.101.102.103  lab-server       user@    linux   -
# 100.101.102.104  macbook-pro      user@    macOS   active; direct ...
 
# Accès SSH sans clé (Tailscale SSH)
ssh user@lab-server  # pas de config ~/.ssh/config nécessaire

3.4 ACL Tailscale (exemple)

// tailscale.acl — contrôle d'accès centralisé
{
  "tagOwners": {
    "tag:lab-server": ["admin@example.com"],
    "tag:student":    ["admin@example.com"]
  },
  "acls": [
    // Admin : accès total au lab
    {"action": "accept", "src": ["admin@example.com"], "dst": ["tag:lab-server:*"]},
 
    // Étudiants : SSH + HTTP uniquement vers serveur lab
    {
      "action": "accept",
      "src":    ["tag:student"],
      "dst":    ["tag:lab-server:22", "tag:lab-server:80", "tag:lab-server:443"]
    },
 
    // Pas de peer-to-peer entre étudiants (isolation)
    {"action": "accept", "src": ["tag:student"], "dst": ["tag:student:*"], "proto": "deny"}
  ],
  "ssh": [
    {"action": "accept", "src": ["tag:student"], "dst": ["tag:lab-server"], "users": ["lab-user"]}
  ]
}

3.5 Forces et limites

Forces : NAT traversal automatique (fonctionne derrière CGNAT), SSO natif, ACL centralisé en YAML/JSON, session recording (Tailscale SSH), setup < 10 minutes. Standard de facto 2024-2025 pour mesh VPN lab et petite équipe.

Limites : dépendance cloud Tailscale / ZeroTier (control plane), free tier limité (3 users / 100 devices pour Tailscale), pas de souveraineté complète (sauf Netbird ou Nebula self-hosted).

Quand choisir : 80 % des cas d'usage lab modernes. Par défaut en 2025 pour home lab et équipe < 50 personnes.

4. Option 3 — Reverse tunnel (Cloudflare Tunnel, Inlets, ngrok)

4.1 Principe

Un daemon sortant depuis le lab établit une connexion vers un relais cloud ; les clients atteignent le lab en passant par le relais. Aucun port ouvert côté lab, aucune IP publique requise.

4.2 Comparaison

SolutionModèle tarifaireCas d'usage fortLimite
Cloudflare TunnelFree unlimited + Access premiumHome lab, services HTTP(S)Traffic transite par Cloudflare
InletsOSS + Pro commercialSelf-hosted tunnelSetup plus complexe
ngrokFree 1 tunnel / payantDémos, webhooks développementPayant au-delà du dev
Tailscale FunnelFree TailscaleExposition HTTPS via meshLimité à HTTPS

4.3 Cloudflare Tunnel — exemple home lab

# Installation cloudflared sur le lab
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
 
# Authentification avec compte Cloudflare
cloudflared tunnel login
 
# Création d'un tunnel nommé
cloudflared tunnel create mon-lab
 
# Config config.yml
cat > ~/.cloudflared/config.yml <<'EOF'
tunnel: <TUNNEL_ID>
credentials-file: /root/.cloudflared/<TUNNEL_ID>.json
 
ingress:
  - hostname: lab.example.com
    service: http://localhost:8080
  - hostname: ssh.lab.example.com
    service: ssh://localhost:22
  - service: http_status:404
EOF
 
# DNS record pointant vers le tunnel
cloudflared tunnel route dns mon-lab lab.example.com
cloudflared tunnel route dns mon-lab ssh.lab.example.com
 
# Run en service
sudo cloudflared service install
sudo systemctl start cloudflared

Ajout de Cloudflare Access en amont pour authentification (Google SSO, GitHub, email OTP) :

Cloudflare Zero Trust Dashboard → Access → Applications → Add application
  Application type: Self-hosted
  Application domain: lab.example.com
  Policies: Allow if email ends with @example.com
           + Require MFA

4.4 Forces et limites

Forces Cloudflare Tunnel : pas d'IP publique requise, pas de port forward, protection DDoS Cloudflare native, Cloudflare Access en zéro-trust natif, free tier très généreux.

Limites : dépendance Cloudflare forte (single point of failure), tout le trafic transite par leur infrastructure, performance limitée en Free Tier pour gros volumes, restriction sur protocoles (HTTP/HTTPS/TCP specific seulement).

Quand choisir : home lab derrière CGNAT ou IP dynamique, démo d'app web exposée temporairement, labs formation avec DNS personnalisé, exposition HTTPS zéro-trust avec SSO rapide.

5. Option 4 — SSH bastion / jumpbox (pattern classique)

5.1 Principe

Un serveur SSH dédié expose uniquement le port 22 sur Internet, avec authentification forte (clé + MFA). Les clients se connectent au bastion puis rebondissent sur les cibles internes via ProxyJump.

5.2 Config client ~/.ssh/config

Host bastion
    HostName bastion.example.com
    User admin
    Port 22
    IdentityFile ~/.ssh/id_ed25519_bastion
    # 2FA via libpam-google-authenticator côté serveur
 
Host lab-vm-01
    HostName 10.0.1.42
    User labuser
    ProxyJump bastion
    IdentityFile ~/.ssh/id_ed25519_lab
 
Host lab-vm-*
    User labuser
    ProxyJump bastion
    IdentityFile ~/.ssh/id_ed25519_lab

5.3 Hardening minimum bastion

# /etc/ssh/sshd_config — config durcie
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication yes  # pour MFA Google Authenticator
UsePAM yes
KbdInteractiveAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
AllowUsers admin labuser
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowTcpForwarding yes  # requis pour ProxyJump
AllowAgentForwarding no  # eviter forward des clés hors bastion
PermitTunnel no
Banner /etc/ssh/banner.txt

5.4 Alternatives modernes au bastion pur

  • AWS Systems Manager Session Manager (pas d'IP publique, auth IAM, audit CloudTrail, session recording dans S3).
  • Teleport (OSS + commercial) — bastion moderne multi-protocole (SSH, K8s, DB, RDP) avec audit natif.
  • HashiCorp Boundary — SSO-based, gestion de credentials dynamique.
  • Cloud Azure Bastion (équivalent Microsoft).

5.5 Quand choisir le bastion pur

Quand choisir : legacy Unix sans modernisation possible, environnements air-gapped régulés (défense, santé), labs pentest où le bastion fait partie de la cible, apprentissage pédagogique admin sys, < 20 utilisateurs actifs simultanés.

Quand éviter : > 50 utilisateurs (passer à Teleport ou SSM Session Manager), exigence SSO entreprise, besoin d'accès multi-protocole (DB, K8s, RDP).

6. Option 5 — Identity-Aware Proxy (GCP IAP, AWS Verified Access, Cloudflare Access)

6.1 Principe

Un proxy à chaque requête vérifie l'identité utilisateur + contexte (device posture, géoloc, risk signals) via un identity provider SSO, puis autorise ou refuse. Modèle zéro-trust applicatif.

6.2 Comparatif 2025

ProduitIntégrationSSO supportésTarification
GCP Identity-Aware ProxyRessources GCP (LB, GCE, GKE)Google Workspace natif + OIDCInclus GCP, pas de surcoût
AWS Verified AccessALB, EC2, ECSAWS IAM Identity Center + OIDC0,40 $/h/endpoint + data
Cloudflare AccessTout (avec Cloudflare Tunnel)Google, GitHub, Microsoft, Okta, OIDC, SAMLFree ≤ 50 users, 3 $/user au-delà
PomeriumSelf-hostableOIDC génériqueOSS + commercial
Okta Access GatewayRessources on-premOktaCommercial enterprise

6.3 Cloudflare Access — exemple policy

# Équivalent configuration dashboard Cloudflare Zero Trust
Application: lab.example.com
Session duration: 8 hours
Policies:
  - name: "Devs ok en heures ouvrées"
    action: allow
    rules:
      - email_domain: example.com
      - country: [FR, BE, CH, LU, DE]
      - time_of_day: 08:00-20:00
  - name: "Admin override"
    action: allow
    rules:
      - email: admin@example.com
      - require: mfa
  - name: "Default deny"
    action: block

6.4 Forces et limites

Forces : auth par requête (jamais d'accès long-lived), intégration identity provider native, policies contextuelles (device posture, géoloc, time-of-day), audit granulaire par requête HTTP.

Limites : complexité setup plus élevée, dépendance identity provider externe, coût potentiellement élevé pour grandes équipes (AWS Verified Access 0,40 $/h/endpoint = 2 900 $/an pour 1 endpoint 24/7).

Quand choisir : équipe > 50 personnes, compliance enterprise, contextes régulés, besoin device posture (Windows Hello, certificats device-bound).

7. Matrice de décision par cas d'usage

Cas d'usage → solution recommandée 2025
─────────────────────────────────────────────────────────────────
Home lab solo pentest                → Tailscale OR Cloudflare Tunnel free
Home lab avec 2-5 collaborateurs     → Tailscale free tier
Lab formation 10-50 apprenants       → Tailscale + ACL tags + VM éphémères
Lab dev entreprise 20-200 devs       → Tailscale Business OR Twingate
Lab entreprise régulé 50-500 users   → AWS Verified Access OR GCP IAP + SSO
Legacy Unix 5-20 admins              → SSH bastion + MFA OR AWS SSM Session Manager
Démo web exposée temporairement      → Cloudflare Tunnel + Cloudflare Access
Souveraineté stricte (défense)       → WireGuard pur self-hosted OR Netbird self-hosted
Lab CTF public Internet              → WAF + Cloudflare Access + isolation aggressive

8. Les 7 erreurs classiques à éviter

8.1 Exposition directe de services administratifs

SSH, RDP, VNC, Kubernetes API, bases de données — jamais directement sur Internet. Shodan et Censys scannent systématiquement ces ports.

8.2 Pas de MFA sur l'accès VPN / bastion

Une clé privée compromise sans MFA = accès full au lab. MFA obligatoire (Google Authenticator, Yubikey, WebAuthn) sur tout point d'accès unique.

8.3 Pas de segmentation réseau

Un lab qui partage VLAN / VPC avec tes réseaux perso ou pro = un exploit du lab compromet tout. Règle : réseau dédié avec firewall entre lab et reste.

8.4 Pas d'expiration / rotation d'accès

Donner un accès permanent à un étudiant / collaborateur temporaire. Toujours définir une durée (Tailscale auth key avec --expiry 7d, Cloudflare Access session avec durée fixe).

8.5 Logs désactivés ou non-centralisés

En cas d'incident, l'audit est impossible sans logs. Centraliser SSH audit logs + Tailscale flow logs + Cloudflare Access logs dans un endpoint de stockage dédié (S3, CloudWatch, Loki self-hosted).

8.6 Réutilisation de credentials personnels

Ne jamais ajouter sa clé SSH perso sur un lab exposé à d'autres. Clés dédiées par contexte (clé lab, clé prod, clé perso) avec ~/.ssh/config qui matche sur Host.

8.7 Pas de plan de compromission

Si le lab est compromis (apprenant qui escalade trop, attaquant qui trouve une chaîne) : quel est le plan ? Isolation automatique possible ? Rebuild en 10 minutes via Terraform / Ansible ? Sans ce plan, la compromission devient permanente.

9. Pattern de référence lab pentest / formation sécurisé

Architecture recommandée 2025 pour un lab formation/pentest avec 10-50 apprenants :

Architecture lab formation sécurisée
──────────────────────────────────────────
 
Apprenants (Internet)

        │  HTTPS + SSO via GitHub / Google

┌─────────────────────────┐
│  Cloudflare Access      │  policies: @formation.edu + MFA
│  (zéro-trust front)     │
└─────────────────────────┘

        │  Tunnel cloudflared sortant (pas d'IP publique)

┌─────────────────────────┐
│  Routeur lab            │
│  VLAN isolé du réseau   │
│  personnel              │
└─────────────────────────┘

        │  Provisionnement Terraform par apprenant

┌─────────────────────────┐
│  Cluster VMs / Pods     │
│  Par apprenant :        │
│   - 1 kali VM           │
│   - 1 cible vulnérable  │
│   - Scope réseau /28    │
└─────────────────────────┘

        │  Audit SSH + commandes via ttyrec

┌─────────────────────────┐
│  Logs centralisés       │
│  Loki + Grafana         │
│  Retention 30 jours     │
└─────────────────────────┘

Pour le contexte légal d'un lab pentest exposé, voir Apprendre le pentest légalement. Pour la méthodologie pentest interne équivalente en environnement cible, Qu'est-ce qu'un pentest interne.

Points clés à retenir

  • 5 approches pour exposer un lab : VPN classique, mesh VPN (Tailscale/ZeroTier/Netbird), reverse tunnel (Cloudflare Tunnel), SSH bastion, Identity-Aware Proxy.
  • Jamais d'exposition directe d'un service administratif sur Internet — Shodan/Censys scannent en < 60s.
  • Tailscale = standard de facto 2024-2025 pour 80 % des cas d'usage lab (< 50 personnes, SSO, setup 10 min).
  • Cloudflare Tunnel + Access = meilleure option free pour home lab derrière CGNAT avec zéro-trust natif.
  • AWS SSM Session Manager remplace avantageusement le bastion SSH classique sur AWS (pas d'IP publique, auth IAM, audit CloudTrail).
  • Identity-Aware Proxy (GCP IAP, AWS Verified Access, Cloudflare Access) pour > 50 users ou exigence compliance enterprise.
  • 7 erreurs à éviter : expo directe, absence MFA, pas de segmentation, pas d'expiration, logs off, credentials perso partagés, pas de plan compromission.
  • Pattern formation : Cloudflare Access + tunnel + VMs éphémères par apprenant + logging centralisé.

Pour le protocole WireGuard sous-jacent, voir WireGuard : pourquoi l'utiliser. Pour la sécurisation des secrets dans ces architectures, Secrets management dans le cloud.

Questions fréquentes

  • Tailscale est-il vraiment plus simple que WireGuard nu ?
    Oui, pour 90 % des cas d'usage lab. Tailscale utilise WireGuard comme protocole de transport, mais gère en plus : le NAT traversal automatique (pas de port forwarding à configurer), l'authentification via identity provider (Google, GitHub, Microsoft SSO), la distribution automatique des clés publiques entre nœuds (pas de fichier config peer par peer à maintenir), l'ACL en YAML centralisé, le DNS magique (tailscale0.example se résout côté client). Un lab 2-5 machines est opérationnel en 10 minutes avec Tailscale vs 1-2 heures avec WireGuard pur. WireGuard nu reste pertinent pour : contraintes de souveraineté (pas de cloud tiers), performance brute maximale, topologie hub-spoke simple avec peu de peers, et apprentissage pédagogique du protocole lui-même.
  • Faut-il exposer son lab directement sur Internet avec un port forward ?
    Non, jamais en 2025 sauf cas très spécifique et ciblé. Un service exposé directement sur Internet (SSH sur 22, RDP sur 3389, Kubernetes API sur 6443, base de données sur 3306/5432) est scanné automatiquement par Shodan et Censys dans les 60 secondes suivant l'ouverture du port. Les bots tentent des credentials par défaut, exploitent les CVE connues du service, et mesurent le fingerprint du service pour ciblage futur. Les approches correctes 2025 : toutes celles décrites dans cet article (VPN, mesh, tunnel reverse, bastion, IAP) qui placent une couche d'authentification forte avant l'exposition du service. Exception tolérable : HTTPS sur 443 derrière un CDN/WAF + auth applicative, jamais un service administratif brut.
  • Cloudflare Tunnel est-il vraiment gratuit pour un lab personnel ?
    Oui, Cloudflare Tunnel (anciennement Argo Tunnel) est inclus dans l'offre Free de Cloudflare sans limite de tunnels ou de trafic en 2024-2025, pour usage personnel et petites équipes. Limites pratiques : pas de Cloudflare Access sur l'offre Free au-delà de 50 utilisateurs (offre payante à partir de 3 $/user/mois), support réduit, pas de SLA. Cloudflare Tunnel est la solution **zéro-trust la plus accessible** pour exposer un home lab : pas d'IP publique requise, pas de port forward, tunnel sortant depuis le lab vers Cloudflare edge, authentification via Cloudflare Access (Google/GitHub/email OTP). Trade-off : dépendance Cloudflare, traffic chiffré mais transitant chez eux, pas de souveraineté complète.
  • Un bastion SSH est-il encore pertinent en 2025 ?
    Oui, mais dans des contextes spécifiques. Le bastion SSH classique (jumphost unique avec auth MFA, ProxyJump depuis clients) reste pertinent pour : accès VM Linux traditionnelles sans modernisation possible (legacy), environnements air-gapped régulés (défense, santé, banque souveraine), apprentissage pédagogique admin sys, labs pentest offensifs où le bastion fait lui-même partie de la cible. Limites : pas scalable au-delà de 20-50 utilisateurs actifs (AWS SSM Session Manager ou Teleport prennent le relais), audit plus complexe que les solutions modernes (session recording nécessite ttyrec ou similaire), MFA natif limité (souvent PAM libpam-google-authenticator). En 2025, bastion pur se fait remplacer par AWS Systems Manager Session Manager (pas d'IP publique, pas de clé SSH, audit CloudTrail natif) dans les environnements AWS.
  • Faut-il utiliser IAP (Identity-Aware Proxy) GCP ou AWS Verified Access pour un lab ?
    Non pour un lab personnel, oui pour un lab d'entreprise / équipe. Google Cloud IAP et AWS Verified Access sont des services d'accès zéro-trust managés par hyperscaler : authentification à chaque requête via identity provider de l'organisation (Google Workspace, AWS IAM Identity Center, Okta), policies par utilisateur + ressource + contexte (device posture, géoloc, risk signals). Coût : IAP inclus dans GCP, Verified Access facturé 0,40 $/heure/endpoint chez AWS. Adaptés aux équipes 10-500 personnes avec un SSO déjà en place. Pour un lab personnel ou petite équipe < 10 personnes, Cloudflare Access (free tier) ou Tailscale SSH offrent une expérience équivalente avec setup de 15 minutes.
  • Comment protéger un lab pentest exposé à des apprenants externes ?
    Quatre couches cumulatives. 1) Isolation réseau — le lab tourne dans une VPC / VLAN isolé sans route vers tes réseaux personnels ou professionnels. 2) Accès via VPN mesh (Tailscale avec tags / ACL par apprenant) ou Cloudflare Tunnel avec Cloudflare Access + GitHub / Google SSO. 3) Containers / VMs éphémères par apprenant, détruits après usage (Terraform + Packer, ou K8s namespaces scoped). 4) Logging centralisé de toutes les actions (SSH audit logs, commandes exécutées via ttyrec, métriques CloudWatch) pour troubleshooting et audit post-formation. Jamais : même accès partagé pour plusieurs apprenants, pas de temps d'expiration, pas de session recording. Voir Apprendre le pentest légalement pour le contexte légal labs.

Écrit par

Naim Aouaichia

Expert cybersécurité et fondateur de Zeroday Cyber Academy

Expert cybersécurité avec un master spécialisé et un parcours hybride : développement, DevOps, DevSecOps, SOC, GRC. Fondateur de Hash24Security et Zeroday Cyber Academy. Formateur et créateur de contenu technique sur la cybersécurité appliquée, la sécurité des LLM et le DevSecOps.