IT-Admin.tech

Architecture d'accès à distance sécurisée : WireGuard, VPN-HA, conception de bastion SSH et journalisation des accès en pratique

Netzwerkdiagramm mit VPN-Gateway, Bastion und segmentierten Zugriffspfaden für Remote-Administration
Architektur sichtbar machen: segmentierte VPN-Pfade, zentraler Bastion-Einstieg und klarer Kontrollpunkt für Logging.

L’accès à distance n’est dans de nombreux environnements pas un « nice-to-have », mais une réalité opérationnelle : astreinte, prestataires externes, sites distribués, fonctionnement mixte Cloud et On-Prem. En même temps, l’accès à distance est l’une des portes d’entrée les plus fréquentes, car il franchit des frontières qui, en interne, sont normalement assurées par la segmentation, des zones de pare-feu et des contrôles d’identité. Une architecture d’accès à distance sécurisée est donc moins un outil unique qu’une interaction robuste entre chemin réseau, identité, contrôle et traçabilité.

Ce texte décrit une architecture de référence pragmatique composée de WireGuard (VPN léger avec primitives cryptographiques modernes), VPN-HA (High Availability, c’est‑à‑dire exploitation redondante avec basculement), conception de bastion SSH (Jump Host comme point d’entrée contrôlé) et journalisation d’accès (audit et enregistrement de sécurité). L’accent est mis sur l’exploitation, les pièges, les étapes de vérification, la stratégie de repli et sur le « pourquoi » des mesures – afin que l’architecture, au quotidien, ne se contente pas de fonctionner mais reste auditabile et apte à la gestion d’incidents.

architecture d’accès à distance sécurisée : profil de menace et idées reçues typiques

L’accès à distance échoue rarement à cause du chiffrement, mais plutôt à cause de conditions périphériques : réseaux trop larges, clés trop durables, trop de cibles directes et absence de protocoles. Causes typiques d’incidents de sécurité et de constats d’audit :

  • Réseaux VPN plats : dès qu’un client est « dans le LAN », il atteint trop de ressources. Les déplacements latéraux deviennent faciles.
  • Accès administratifs directs aux serveurs (SSH/RDP) sans point de contrôle central : difficiles à durcir, difficiles à journaliser, difficiles à bloquer.
  • Identité floue : absence d’association appareil/utilisateur, clés partagées, comptes administrateurs locaux en parallèle.
  • HA sans réflexion sécurité : le basculement via IP flottantes ou Anycast est mis en place, mais la journalisation, l’état et la gestion des clés se rompent lors du changement.
  • Journalisation uniquement « pour plus tard » : sans corrélation (temps, source, destination, utilisateur), les logs sont pratiquement inutiles en cas d’incident.

Un principe important : « VPN = interne » est un anti‑pattern. Un VPN n’est qu’un canal de transport sécurisé. La politique d’accès effective doit néanmoins reposer sur la segmentation, des règles de pare‑feu et des contrôles d’identité.

Vision cible : blocs constitutifs d’une architecture d’accès à distance sécurisée

Une vision cible robuste comporte quatre couches clairement séparées :

  • Transport : tunnels WireGuard entre le client et la passerelle (chiffrement, authentification des pairs).
  • Contrôle d’accès : firewall/politiques à la passerelle et dans les réseaux cibles (Least Privilege, c’est‑à‑dire droits strictement nécessaires).
  • Point d’entrée admin : bastion SSH / Jump Host comme chemin contrôlé vers les cibles administratives.
  • Traçabilité : journalisation d’accès centralisée, résistante à la manipulation, corrélable ; enregistrement des sessions en option.

En complément : MFA (authentification multifacteur) pour l’accès initial, un cycle de vie clair des clés/appareils (Onboarding/Offboarding), ainsi qu’un plan de basculement et de repli testé.

WireGuard en pratique : segmenter proprement plutôt que « tout router »

Textfreie Grafik mit segmentierten Zugriffspfaden über VPN-Gateway und getrennte Zonen
Segmentation comme principe central : accès uniquement le long de chemins définis plutôt qu’un « VPN vers le LAN » plat.

WireGuard est un protocole VPN et une implémentation reposant sur un ensemble RESTreint de primitives cryptographiques modernes, fonctionnant comme un module noyau ou proche du système. Important administrativement : WireGuard est caractérisé par une faible gestion d’état (pas de « sessions » lourdes comme les VPN SSL classiques) et se configure via des peers fixes. C’est stable — mais cela incite à router les réseaux trop largement.

Adressage et AllowedIPs : le levier de risque le plus fréquent

Dans WireGuard, AllowedIPs est à la fois une définition de routage et une sorte d’« ACL light » : quels réseaux de destination sont routés via le tunnel (côté client) et quelles plages d’IP source un peer « peut avoir » (côté serveur). Scénarios d’erreur :

  • 0.0.0.0/0 (tunnel complet) par commodité : peut être acceptable, mais augmente la dépendance au VPN et complique le dépannage.
  • Des réseaux internes trop larges dans AllowedIPs : permettent l’accès à des systèmes non destinés à l’accès à distance.
  • Chevauchement d’adresses IP (IP-Overlap) avec des réseaux domestiques ou partenaires : entraîne des problèmes de routage intermittents.

Il est recommandé d’utiliser un sous-réseau VPN dédié par groupe d’utilisateurs ou par usage (p. ex. Admins, Service-Accounts, Drittanbieter). Cela permet de séparer proprement les politiques et le logging.

Modèle de configuration : serveur WireGuard avec périmètre de peer RESTrictif

Exemple d’interface serveur WireGuard (Linux). L’important ici n’est pas la syntaxe mais le modèle : réseau VPN dédié, hooks de logging/firewall, pas de « catch-all ».

Ini
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.60.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>

# Optional: beim Up/Down Firewall-Regeln setzen
PostUp = nft add rule inet filter forward iifname "wg0" oifname "lan0" ip daddr { 10.10.20.0/24 } tcp dport { 22, 3389 } accept
PostUp = nft add rule inet filter forward iifname "wg0" drop
PostDown = nft flush chain inet filter forward

[Peer]
# Admin-Laptop 01
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.60.0.10/32
PersistentKeepalive = 25

Important : AllowedIPs côté serveur par peer uniquement en /32 (une IP de tunnel). Les réseaux de destination accessibles se décident mieux via le pare-feu/politiques au niveau de la passerelle et dans les segments cibles — pas via des routes « bienveillantes ».

MTU, NAT et roaming : pièges d’exploitation typiques

  • Problèmes de MTU : lorsqu’on travaille sur DSL/PPPoE, LTE ou via d’autres tunnels, la fragmentation peut entraîner une perte « silencieuse » de paquets. Symptôme : SSH se connecte mais SFTP bloque ; RDP est lent. Approche : réduire la MTU sur l’interface WireGuard (souvent 1380 ou 1420, selon le chemin) et tester avec ping/DF.
  • NAT et réseaux changeants : les clients mobiles bénéficient de PersistentKeepalive, sinon les mappings NAT « s’endorment ».
  • DNS-Leaks / Split DNS: Si des noms internes ne sont résolus qu’en interne, vous avez besoin d’un chemin de résolveur propre. Un VPN sans résolution de noms cohérente engendre des contournements fantômes (fichiers hosts, adresses IP directes) qui déprécient ensuite le logging.
  • VPN-HA: Augmenter la disponibilité sans perdre le contrôle

    Deux passerelles VPN redondantes en rack avec redondance câblée du réseau
    La HA devient tangible : des passerelles redondantes et un câblage soigné constituent la base d’un basculement planifiable.

    VPN High Availability signifie : la défaillance d’une passerelle ne doit pas interrompre l’exploitation à distance. En pratique, il existe trois approches courantes, qui ont des effets différents sur le logging, le matériel de clés et le dépannage.

    Option A: Floating IP / VRRP (classique, bien compréhensible)

    Avec VRRP (Virtual Router Redundancy Protocol, souvent via keepalived), une Floating IP prend le relais lors d’un basculement. Avantage : les clients conservent un endpoint stable (DNS/IP). Inconvénients : vous avez besoin d’une synchronisation propre des états/configurations et devez tenir compte du fait que, même si WireGuard est relativement dépourvu d’état, les pairs et clés doivent être configurés de manière identique.

    Exemple minimal keepalived (Attention : adapter selon la distribution/le plan réseau) :

    Ini
    # /etc/keepalived/keepalived.conf
    vrrp_instance VPN {
      state BACKUP
      interface eth0
      virtual_router_id 60
      priority 100
      advert_int 1
      authentication {
        auth_type PASS
        auth_pass <STRONG_RANDOM>
      }
      virtual_ipaddress {
        203.0.113.10/32
      }
    }

    Pièges dans les configurations à Floating IP :

    • Caches ARP/NDP : en IPv4/IPv6, il peut s’écouler plusieurs minutes avant que tous les réseaux ne voient le nouveau master. Prévoyez des GARP/Gratuitous Neighbor Advertisements.
    • État dans les pare-feux : les pare-feux stateful/NAT peuvent perdre les flux existants. Cela peut être acceptable pour un accès admin, mais doit être documenté dans les runbooks.
    • Identité de logging : si les deux nœuds sont visibles sous la même VIP, vous devez consigner proprement les identifiants de nœud dans les logs (noms d’hôte, tags d’agent).

    Option B: DNS-Failover (simple, mais critique en temps)

    Le DNS-failover avec une TTL courte peut fonctionner, mais il est peu fiable en cas d’incident et face aux caches des fournisseurs. Pour l’accès admin, le DNS-failover est souvent un second choix — sauf si vous disposez d’une pile client contrôlée (p. ex. les ordinateurs portables de l’entreprise avec un résolveur défini).

    Option C: Anycast / Load Balancer (puissant, mais plus exigeant sur le plan conceptuel)

    L’anycast ou un load balancer en amont peut résoudre élégamment la HA, mais introduit de nouvelles questions : le load balancing UDP (WireGuard utilise UDP) doit fonctionner proprement, l’observabilité devient plus complexe, et pour une répartition L4 vous devez planifier correctement le traitement des IP sources pour le logging et les politiques.

    Checklist HA : ce que vous devez tester avant le go-live

    • Basculement sous charge : sessions SSH actives, connexions simultanées, résolution DNS.
    • Rejoin/Failback : le retour sur le nœud primaire ne doit pas „flapper“ (basculements fréquents).
    • Drift de configuration : Peers/Policies/Firewall-Regeln doivent être versionnés de manière identique (p. ex. via Git et CI pour les déploiements de configuration).
    • Continuité des logs : les deux nœuds envoient leurs logs de façon centralisée ; l’heure/NTP est synchronisée.

    Conception d’une bastion SSH : point d’entrée contrôlé plutôt que « SSH partout »

    Textfreie Grafik: Bastion als zentraler Einstiegspunkt mit kontrollierten Verbindungen zu Zielsystemen
    Principe de la bastion : un point d’entrée contrôlé plutôt que de nombreux ports d’administration directement exposés.

    Un hôte bastion SSH (également Jump Host) est un serveur durci qui sert d’unique point d’entrée SSH dans un segment d’administration. L’intérêt est opérationnel : vous durcissez un nœud de manière approfondie, imposez l’identité, centralisez les règles et conservez des logs cohérents. En parallèle, vous réduisez la surface d’attaque exposée : les systèmes cibles n’ont pas besoin d’être directement accessibles depuis le VPN.

    Modèle réseau et zones : comment la bastion devient efficace

    La bastion appartient typiquement à une zone dédiée (p. ex. „Admin-Access“ ou „Management“). Règles qui ont fait leurs preuves :

    • Les clients VPN ne doivent se connecter que à la bastion (TCP/22) et éventuellement à un proxy d’identité/MFA.
    • Depuis la bastion, les cibles sont accessibles uniquement sur des ports de gestion (SSH, WinRM, RDP via gateway, Out-of-Band uniquement en cas d’urgence).
    • L’accès VPN direct aux workloads de production est évité ; les exceptions sont documentées et strictement encadrées.

    Renforcement de la bastion : leviers essentiels

    Sur une bastion, quelques mesures suffisent souvent à faire la différence entre un état réellement auditable et un simple « on espère que oui ». Éléments clés :

    • Pas d’authentification SSH par mot de passe : uniquement clé publique, idéalement avec clés matérielles (FIDO2/PKCS#11) ou certificats à courte durée de vie.
    • MFA avant SSH : p. ex. via intégration SSO/IdP ou modules PAM ; important : une clé volée sur un portable ne doit pas suffire.
    • Pas de comptes partagés : chaque administrateur utilise une identité personnelle ; sudo est audité.
    • Règles de sortie RESTrictives (egress) : la bastion ne doit pas avoir un accès sortant libre vers Internet, sinon en cas de compromission elle devient un tremplin.
    • Discipline de patch et de redémarrage : la bastion est Tier-0 pour l’accès admin, elle doit donc être mise à jour de manière prioritaire et des fenêtres de redémarrage planifiées.

    Configuration SSH : paramètres par défaut clairs, peu de surprises

    Exemple d’une configuration sshd conservatrice (extrait). Objectif : interdictions claires, contrôle explicite du forwarding, logs significatifs. Selon l’environnement, cela peut être plus strict ou plus souple.

    Ini
    # /etc/ssh/sshd_config (Auszug)
    Port 22
    Protocol 2
    PermitRootLogin no
    PasswordAuthentication no
    KbdInteractiveAuthentication no
    ChallengeResponseAuthentication no
    PubkeyAuthentication yes
    AuthenticationMethods publickey
    
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no
    PermitTunnel no
    GatewayPorts no
    
    ClientAliveInterval 300
    ClientAliveCountMax 2
    LogLevel VERBOSE
    
    # Optional: nur definierte Gruppen
    AllowGroups it-admins it-ops

    Pourquoi «LogLevel VERBOSE» ? Ainsi, sshd écrit davantage de contexte (p. ex. empreinte de clé), ce qui aide la forensique en cas de clés compromises. Parallèlement, gardez à l’esprit le volume des logs et les exigences de protection des données (données personnelles).

    Piège : SSH-Agent-Forwarding et Port-Forwarding

    De nombreux administrateurs utilisent Agent-Forwarding comme fonction de confort. Risque : si la bastion est compromise, un attaquant peut abuser de l’agent transmis. Le TCP-Forwarding (local/remote/dynamique) est tout aussi critique, car il contourne les politiques et crée des tunnels inattendus. Un design standard sécurisé est : Forwarding désactivé par défaut, et les exceptions sont autorisées de manière ciblée par groupe ou par hôte – incluant journalisation et date d’expiration.

    Access-Logging : du «VPN activé/désactivé» à des pistes d’audit fiables

    Par Access-Logging, beaucoup n’entendent que «qui s’est connecté». Pour l’exploitation et la réponse aux incidents, il vous faut davantage : qui (identité), d’où (appareil/pair, réseau source), quand (heure, fuseau horaire, corrélation), (système/port cible), et idéalement quoi (métadonnées de session ou enregistrement).

    Quelles sources de logs vous faut-il au minimum

    • WireGuard-Gateway : handshake du pair, paquets autorisés/refusés (pare-feu), événements d’interface.
    • Bastion : SSH-Auth, sudo, début/fin de session ; en option enregistrement de session (TTY-Recording).
    • Systèmes cibles : connexions réussies et échouées, actions privilégiées, le cas échéant logs RDP/WinRM.
    • Identity Provider : événements MFA, émission de tokens, modifications de rôles/groupes.

    Sur le plan technique, il est crucial que tous les systèmes soient temporalement synchronisés (NTP/chrony). Sans horodatages cohérents, la corrélation dans un SIEM/outil de recherche de logs est coûteuse et peu fiable.

    Redirection centrale des logs : robuste face au Backpressure

    En exploitation, le logging échoue souvent à cause du «Backpressure» (le destinataire des logs est lent ou hors service). Des événements sont alors perdus ou les systèmes se bloquent. Des agents/forwarders avec file d’attente (p. ex. rsyslog avec Disk-Queue) se sont montrés efficaces. Exemple : rsyslog avec mise en queue persistante pour une transmission sûre vers un collecteur central (détails TLS omis, car la PKI varie selon l’environnement).

    Ini
    # /etc/rsyslog.d/60-remote-access.conf
    module(load="imjournal")
    
    # Persistente Queue für Ausfälle des Collectors
    action(type="omfwd"
           target="log-collector.intern"
           port="6514"
           protocol="tcp"
           StreamDriver="gtls"
           StreamDriverMode="1"
           StreamDriverAuthMode="anon"
           action.resumeRetryCount="-1"
           queue.type="LinkedList"
           queue.filename="q_remote_access"
           queue.maxdiskspace="2g"
           queue.saveonshutdown="on")

    Remarque : StreamDriverAuthMode=“anon“ est montré ici uniquement comme espace réservé. En production, vous devez utiliser la vérification du certificat serveur et idéalement le mTLS (authentification TLS mutuelle), afin que les logs ne tombent pas entre de mauvaises mains ou n’aillent pas vers des destinations incorrectes.

    Ce qui devrait pouvoir être corrélé au minimum dans le SIEM/système de recherche

    • IP du pair VPN ↔ appareil/utilisateur (cartographie asset et identité)
    • Connexion bastion ↔ connexion hôte cible (relation de saut)
    • sudo/actions privilégiées ↔ tickets de changement/tickets d’incident (processuel)
    • Échecs et anomalies (p. ex. nouveaux pays, horaires inhabituels, nouvelles cibles)

    Étapes de mise en œuvre : un plan de déploiement pragmatique

    Une erreur fréquente est le « Big Bang » : changer VPN, bastion et logging en même temps. Un déploiement itératif, avec des options de repli, est plus stable.

    Phase 1 : poser les bases réseau et politiques

    • Définir des sous-réseaux VPN (par persona/partenaire/cas d’usage).
    • Identifier les segments cibles (réseau de management vs réseau applicatif vs réseau base de données).
    • Concevoir des règles de pare‑feu : depuis le VPN uniquement vers le bastion ; depuis le bastion uniquement vers les ports de management.
    • Planifier la résolution de noms (DNS interne via tunnel, documenter proprement le split DNS).

    Phase 2 : rendre la passerelle WireGuard apte à la production

    • Versionner la config (Git), rendre le déploiement reproductible.
    • Supervision : interface up/down, accessibilité du port UDP, pertes de paquets, CPU/mémoire.
    • Tester et définir le MTU ; vérifier le roaming avec les réseaux mobiles.

    Phase 3 : déployer le bastion et supprimer l’accès direct

    • Configurer un bastion renforcé, accès uniquement depuis les sous‑réseaux VPN.
    • Reconfigurer les systèmes cibles pour que SSH ne soit autorisé qu’à partir du bastion/du réseau de management.
    • Tester les workflows admin (scp/rsync/ansible), sans autoriser de contournement du forwarding.

    Phase 4 : centraliser le logging d’accès et répondre aux questions d’audit

    • Activer le forwarder de logs avec file d’attente.
    • Tableaux de bord/requêtes : « Qui a accédé à quel hôte et quand ? »
    • Clarifier la rétention et le contrôle d’accès sur les logs (les logs sont sensibles).

    Étapes de vérification et dépannage : lorsque cela ne fonctionne pas comme dans le diagramme

    Pour l’accès à distance, ayez un runbook court qui fonctionne même sous stress pendant un incident. Séquences de vérification pratiques :

    1) Disponibilité et handshake (passerelle)

    Shell
    # WireGuard-Status
    sudo wg show
    
    # Interface-Details
    ip -brief address show wg0
    ip route show table main | grep -E "10.60.0.0/24|wg0"

    Si les handshakes sont absents : vérifier le port UDP/pare‑feu, NAT/keepalive, clés incorrectes, dérive temporelle (pour les systèmes qui couplent des mécanismes d’authentification supplémentaires).

    2) Chemin et politiques (pare‑feu/segmentation)

    Shell
    # Paketfilter prüfen (nftables Beispiel)
    sudo nft list ruleset
    
    # Drops im Kernel (je nach Setup)
    sudo journalctl -k --since "15 min ago" | tail -n 200

    Le symptôme « VPN connecté, mais cible inaccessible » est presque toujours lié aux politiques / au routage / au MTU. Utilisez des traces (tcpdump) à deux points : sur wg0 et sur l’interface de destination.

    3) Connexion au bastion et saut vers la cible

    Shell
    # SSH-Auth-Events auf der Bastion
    sudo journalctl -u ssh --since "30 min ago"
    
    # sudo-Audit (Distribution abhängig)
    sudo journalctl --since "30 min ago" | grep -i sudo | tail -n 50

    Si la connexion au bastion réussit mais que le saut vers la cible échoue : pare‑feu cible (seule l’IP du bastion est‑elle autorisée ?), DNS (nom cible en interne ?), hostkeys/known_hosts (après des rebuilds), et politiques utilisateur/clé différentes.

    Stratégie de repli : revenir en sécurité, sans perte de contrôle

    Une bonne stratégie de repli ne signifie pas « tout remettre comme avant », mais plutôt un retrait contrôlé en cas de perturbation :

    • Accès Break-Glass (accès d’urgence) : identifiants séparés, journalisation stricte, tests réguliers, sauvegarde hors ligne. L’objectif est la disponibilité pendant l’incident, pas le confort.
    • Rollback par étapes : d’abord désactiver la HA (mode single‑node plus stable), puis assouplir les politiques (limité dans le temps), et enfin contourner le bastion en dernier recours.
    • Change-Flags : concevoir les règles de pare‑feu de façon à pouvoir activer des exceptions temporaires de manière ciblée et traçable (avec date d’expiration et référence de ticket).

    Important : les chemins de repli doivent être connus de l’équipe au préalable. Sinon, en cas d’incident, des contournements ad hoc apparaissent et subsistent pendant des mois.

    Décisions de conception typiques et leurs effets secondaires

    Split Tunneling vs. Full Tunneling

    Split Tunneling signifie : seuls les réseaux internes passent par le VPN, l’accès Internet reste local. Avantage : moins de charge, moins de dépendance. Inconvénient : il est plus difficile d’appliquer de manière cohérente le DNS et les contrôles de sécurité. Full Tunneling simplifie les politiques de sécurité centralisées (proxy Web, filtres DNS), mais augmente l’impact d’une panne du VPN. Décidez-le de manière délibérée par groupe d’utilisateurs, pas globalement.

    Association d’appareil et cycle de vie des clés

    WireGuard fonctionne avec des paires de clés. Opérationnellement, vous devez clarifier : comment les clés sont-elles délivrées, rotées et révoquées ? Sans cycle de vie, il se crée des « peers oubliés ». Exigences minimales pragmatiques :

    • Association du peer à un asset (ordinateur portable / ID de l’appareil) et à une personne.
    • Processus d’offboarding : supprimer le peer, marquer les logs, le cas échéant bloquer les clés du bastion.
    • Rotation : au minimum en cas de perte d’appareil ou de changement de rôle, idéalement périodiquement.

    Journalisation des accès et protection des données

    Les logs d’accès contiennent des données à caractère personnel (utilisateurs, adresses IP, horodatages) et parfois des données de contenu (enregistrement de session). Documentez : finalité, rétention, accès, exploitation. Pour les équipes d’administration, il est important que les règles ne soient pas « floues » : des politiques claires évitent les discussions ultérieures lors d’un incident.

    Positionnement par rapport au Zero Trust et au PAM

    De nombreuses organisations vont vers le Zero Trust Network Access (ZTNA), c’est‑à‑dire « ne jamais faire confiance implicitement, toujours vérifier explicitement ». WireGuard peut en faire partie, mais ne remplace pas une couche d’identité et de politiques. Un bastion est, lui aussi, un élément du Privileged Access Management (PAM), c’est‑à‑dire la gestion des accès privilégiés avec traçabilité. Si vous déployez ensuite des suites PAM ou des gateways ZTNA, vous bénéficierez du travail préparatoire : segmentation, points d’entrée clairs et logs propres.

    Conclusion : l’accès à distance est un système, pas un produit isolé

    Une architecture d’accès à distance sûre naît lorsque transport (WireGuard), disponibilité (VPN-HA), contrôle (bastion SSH) et traçabilité (journalisation des accès) sont planifiés conjointement. Le gain opérationnel est tangible : surface d’attaque réduite, autorisations plus claires, procédures de dépannage reproductibles et pistes d’audit solides.

    Si vous souhaitez un démarrage pragmatique, commencez par trois étapes : séparer les sous-réseaux VPN, établir une bastion comme unique point d’entrée pour les administrateurs et rendre les logs corrélables de manière centralisée. Ensuite, le design peut monter en charge – aussi vers le ZTNA ou des programmes PAM plus larges.

    Pour ce sujet, WireGuard VPN et les bastions SSH sont également importants. Cet article situe ces aspects de manière claire et montre ce qui compte au quotidien.