rss logo

Configurer un VPN IPsec multi-sites sur Debian 13 avec strongSwan 6

logo strongSwan

À chaque nouvelle version majeure, Debian intègre des paquets logiciels mis à jour. Debian 13 “Trixie” est désormais livré avec strongSwan 6, qui apporte des changements importants dans le format de configuration par rapport aux versions précédentes. Par conséquent, les fichiers de configuration des anciennes versions comme Debian 12 ne sont plus compatibles, car la syntaxe a été entièrement repensée.

Dans ce guide, je vais montrer comment configurer strongSwan 6 pour une architecture VPN IPsec multi-sites utilisant trois routeurs Debian 13. Cette configuration s’appuie sur mon tutoriel précédent pour Debian 12 “Bookworm”, que vous pouvez consulter ici : Configurer un VPN IPsec multi-sites avec strongSwan sur Debian 12.

💡 Note : il aurait été possible de configurer un tunnel IPsec direct entre la Succursale 1 et la Succursale 2. Cependant, comme le trafic entre les deux sites est minimal (principalement des appels téléphoniques IP), j’ai choisi de faire transiter cette communication via la passerelle VPN du siège. De plus, cette configuration introduit une complexité et des défis supplémentaires, ce qui la rend encore plus intéressante à mettre en place pas à pas. 🤓

Schéma de l’architecture réseau

Schéma réseau d’un VPN IPsec multi-sites sur Debian 13 avec StrongSwan 6, montrant le siège et deux succursales interconnectés, chacun avec des VLANs pour les utilisateurs, la VoIP, le WiFi et les serveurs.
Architecture d’un VPN IPsec multi-sites avec Debian 13 et StrongSwan 6, reliant le siège et deux succursales via des tunnels sécurisés, avec des VLANs dédiés aux utilisateurs, à la VoIP, au WiFi et aux serveurs.

Site 1 – Siège (Passerelle VPN)

Commençons par la configuration du site principal. Ce site centralise toutes les connexions VPN des autres emplacements et sert également d’autorité pour autoriser certains flux — dans ce cas, le réseau VoIP — entre la Succursale 1 et la Succursale 2.

Siège – Prérequis

  • Installer le paquet strongSwan :
root@HQ:~# apt update && apt install strongswan
  • Activer le démarrage automatique de nftables :
root@HQ:~# systemctl enable nftables.service

Siège – Configuration de nftables

La configuration de nftables est simplifiée ici, permettant aux réseaux d’accéder à Internet et de communiquer entre eux. En environnement de production, vous pouvez souhaiter configurer des règles de filtrage entre les VLANs.

  • Modifier le fichier /etc/nftables.conf :
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0; policy accept;
	}
        chain forward {
                type filter hook forward priority 0; policy accept ;
	}
	chain output {
                type filter hook output priority 0; policy accept;
        }
}

#NAT for outgoing traffic.
table ip my_nat {
        chain my_masquerade {
                type nat hook postrouting priority 100;
                ip daddr != { 10.1.0.1, 192.168.0.0/16 } oifname wan masquerade comment "output nat"
        }
}
  • Recharger la configuration de nftables :
root@HQ:~# nft -f /etc/nftables.conf

Siège – Configuration réseau

Configurer les interfaces réseau du siège

Ici, nous configurons nos deux interfaces réseau : lan et wan. Pour plus de détails sur la façon de renommer les interfaces réseau dans Debian, consultez ce guide : Renommer les interfaces réseau sur Debian. Nous allons configurer le système pour exécuter automatiquement le script /usr/local/sbin/ipconf.sh (que nous créerons plus tard) lorsque l’interface lan sera activée.

  • Modifier le fichier /etc/network/interfaces :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# This is an autoconfigured IPv6 interface
allow-hotplug wan
iface wan inet static
        address 10.1.0.1
        netmask 255.255.255.0
	gateway 10.1.0.254

allow-hotplug lan
iface lan inet static
        address 192.168.1.254
        netmask 255.255.255.0
        up /usr/local/sbin/ipconf.sh
  • Redémarrer le système ou relancer le service networking :
root@HQ:~# systemctl restart networking

Activer le routage IP pour le mode passerelle

Comme notre serveur Debian va agir en tant que routeur, nous devons activer le routage IP.

  • Créer un fichier /etc/sysctl.d/99-ipforward.conf et y ajouter la ligne suivante :
net.ipv4.ip_forward=1
  • Appliquer la modification avec la commande suivante :
root@HQ:~# sysctl -p /etc/sysctl.d/99-ipforward.conf

Script réseau

Le script /usr/local/sbin/ipconf.sh sera exécuté au démarrage. Il est utilisé pour configurer automatiquement les interfaces VLAN.

  • Créer un fichier /usr/local/sbin/ipconf.sh :
#!/bin/sh

# Script de configuration des VLANs pour l’interface lan
# Ce script crée les interfaces VLAN et attribue les adresses IP
# Exécuté au démarrage pour que les VLANs soient prêts avant le lancement des services

# --- CONFIGURATION DES VLANs SUR L’INTERFACE lan ---
modprobe 8021q
ip link add link lan name users type vlan id 2
ip link add link lan name voip type vlan id 3
ip link add link lan name wifi type vlan id 4
ip link add link lan name servers type vlan id 5

# Activation des interfaces VLAN
ip link set users up
ip link set voip up
ip link set wifi up
ip link set servers up

# --- ATTRIBUTION DES ADRESSES IP AUX INTERFACES VLAN ---
ip addr add 192.168.2.254/24 dev users
ip addr add 192.168.3.254/24 dev voip
ip addr add 192.168.4.254/22 dev wifi
ip addr add 192.168.5.254/24 dev servers
  • Modifier les permissions afin que le script /usr/local/sbin/ipconf.sh soit exécutable :
root@host:~# chmod +x /usr/local/sbin/ipconf.sh

Siège – Configuration de strongSwan

Fichier principal de configuration strongSwan : /etc/swanctl/swanctl.conf

  • Modifier le fichier /etc/swanctl/swanctl.conf afin de configurer les connexions site-à-site. L’objectif est de permettre aux réseaux VoIP de tous les sites de communiquer entre eux, et d’autoriser les utilisateurs de la Succursale 1 et de la Succursale 2 à accéder au réseau des serveurs du siège :
connections {

   ######################################################
   # Tunnel entre le Siège (HQ) et la Succursale 1 (B1) #
   ######################################################
   hq-b1 {
      version = 2            # Utiliser IKEv2
      mobike = no            # Désactiver MOBIKE (IPs statiques, pas de mobilité attendue)

      local_addrs  = 10.1.0.1            # IP publique (ou IP WAN) du siège
      remote_addrs = 10.10.0.1           # IP publique de la succursale 1

      proposals = aes128-sha256-x25519  # Propositions IKE
      reauth_time = 0            # Désactiver la réauthentification, utiliser seulement le rekey

      dpd_delay   = 20s          # Envoyer une sonde Dead Peer Detection toutes les 20s
      dpd_timeout = 60s          # Considérer le pair comme inactif après 60s

      local {
         auth = psk             # Authentification par clé pré-partagée
         id = 10.1.0.1          # Identifiant local (HQ)
      }
      remote {
         auth = psk
         id = 10.10.0.1         # Identifiant distant (B1)
      }
      children {
         net-net {
            # Sélecteurs de trafic (sous-réseaux autorisés dans ce tunnel)
            # Sous-réseaux du siège + VLAN VoIP de B2 (pour VoIP inter-sites via HQ)
            local_ts  = 192.168.1.0/24, 192.168.3.0/24, 192.168.5.0/24, 192.168.20.0/24, 192.168.23.0/24
            # Sous-réseaux de la Succursale 1
            remote_ts = 192.168.10.0/24, 192.168.12.0/24, 192.168.13.0/24

            start_action = start      # Démarrer automatiquement le tunnel au lancement
            rekey_time = 3600         # Renouvellement des clés toutes les 60 minutes
            dpd_action  = restart      # Redémarrer la connexion si le pair est inactif

            esp_proposals = aes128gcm128-x25519
         }
      }
   }

   ######################################################
   # Tunnel entre le Siège (HQ) et la Succursale 2 (B2) #
   ######################################################
   hq-b2 {
      version = 2            # Utiliser IKEv2
      mobike = no            # Désactiver MOBIKE (IPs statiques, pas de mobilité attendue)

      local_addrs  = 10.1.0.1            # IP publique (ou IP WAN) du siège
      remote_addrs = 10.20.0.1           # IP publique de la succursale 2

      proposals = aes128-sha256-x25519  # Propositions IKE
      reauth_time = 0            # Désactiver la réauthentification, utiliser seulement le rekey

      dpd_delay   = 20s          # Envoyer une sonde Dead Peer Detection toutes les 20s
      dpd_timeout = 60s          # Considérer le pair comme inactif après 60s

      local {
         auth = psk             # Authentification par clé pré-partagée
         id = 10.1.0.1          # Identifiant local (HQ)
      }
      remote {
         auth = psk
         id = 10.20.0.1         # Identifiant distant (B2)
      }
      children {
         net-net {
            # Sélecteurs de trafic (sous-réseaux autorisés dans ce tunnel)
            # Sous-réseaux du siège + VLAN VoIP de B1 (pour VoIP inter-sites via HQ)
            local_ts  = 192.168.1.0/24, 192.168.3.0/24, 192.168.5.0/24, 192.168.10.0/24, 192.168.13.0/24
            # Sous-réseaux de la Succursale 2
            remote_ts = 192.168.20.0/24, 192.168.22.0/24, 192.168.23.0/24

            start_action = start      # Démarrer automatiquement le tunnel au lancement
            rekey_time = 3600         # Renouvellement des clés toutes les 60 minutes
            dpd_action  = restart      # Redémarrer la connexion si le pair est inactif

            esp_proposals = aes128gcm128-x25519
         }
      }
   }
}

######################################
# Secrets partagés (Pre-Shared Keys) #
######################################
secrets {
   ike-hq-b1 {
      id = 10.1.0.1
      peer_id = 10.10.0.1
      secret = "JohnWeakPasswd:)"
   }
   ike-hq-b2 {
      id = 10.1.0.1
      peer_id = 10.20.0.1
      secret = "JohnWeakPasswd:)"
   }
}
  • Redémarrer le service strongswan pour appliquer les changements :
root@HQ:~# systemctl restart strongswan

Site 2 – Succursale 1 : Configuration du VPN

Passons maintenant à la configuration de la première succursale. La mise en place est similaire à celle du siège, car elle nécessite également la configuration des interfaces réseau ainsi que du service strongSwan.

Succursale 1 – Prérequis

  • Installer le paquet strongSwan :
root@B1:~# apt update && apt install strongswan
  • Activer le démarrage automatique de nftables :
root@B1:~# systemctl enable nftables.service

Succursale 1 – Configuration de nftables

Comme pour le siège, la configuration de nftables est simplifiée ici. Aucune règle de filtrage n’est appliquée dans cet exemple.

  • Modifier le fichier /etc/nftables.conf :
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0; policy accept;
	}
        chain forward {
                type filter hook forward priority 0; policy accept ;
	}
	chain output {
                type filter hook output priority 0; policy accept;
        }
}

#NAT for outgoing traffic.
table ip my_nat {
        chain my_masquerade {
                type nat hook postrouting priority 100;
                ip daddr != { 10.10.0.1, 192.168.0.0/16 } oifname wan masquerade comment "output nat"
        }
}
  • Recharger la configuration de nftables :
root@host:~# nft -f /etc/nftables.conf

Succursale 1 – Configuration réseau

Configurer les interfaces réseau de la succursale 1

Ici, nous configurons nos deux interfaces réseau : lan et wan.

  • Modifier le fichier /etc/network/interfaces :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# This is an autoconfigured IPv6 interface
allow-hotplug wan
iface wan inet static
        address 10.10.0.1
        netmask 255.255.255.0
	gateway 10.10.0.254

allow-hotplug lan
iface lan inet static
        address 192.168.10.254
        netmask 255.255.255.0
        up /usr/local/sbin/ipconf.sh

Activer le routage IP pour le mode passerelle

  • Créer un fichier /etc/sysctl.d/99-ipforward.conf et y ajouter la ligne suivante :
net.ipv4.ip_forward=1
  • Appliquer la modification avec la commande suivante :
root@B1:~# sysctl -p /etc/sysctl.d/99-ipforward.conf

Script réseau

Le script /usr/local/sbin/ipconf.sh sera exécuté au démarrage afin de configurer automatiquement les interfaces VLAN.

  • Créer un fichier /usr/local/sbin/ipconf.sh :
#!/bin/sh

# Script de configuration des VLANs pour l’interface lan
# Ce script crée les interfaces VLAN et attribue les adresses IP
# Exécuté au démarrage pour que les VLANs soient prêts avant le lancement des services

# --- CONFIGURATION DES VLANs SUR L’INTERFACE lan ---
modprobe 8021q
ip link add link lan name users type vlan id 2
ip link add link lan name voip type vlan id 3
ip link add link lan name wifi type vlan id 4

# Activation des interfaces VLAN
ip link set users up
ip link set voip up
ip link set wifi up

# --- ATTRIBUTION DES ADRESSES IP AUX INTERFACES VLAN ---
ip addr add 192.168.12.254/24 dev users
ip addr add 192.168.13.254/24 dev voip
ip addr add 192.168.14.254/22 dev wifi
  • Modifier les permissions afin que le script /usr/local/sbin/ipconf.sh soit exécutable :
root@B1:~# chmod +x /usr/local/sbin/ipconf.sh

Succursale 1 – Configuration de strongSwan

Fichier principal de configuration strongSwan : /etc/swanctl/swanctl.conf

  • Modifier le fichier /etc/swanctl/swanctl.conf :
connections {

   ######################################################
   # Tunnel entre la Succursale 1 (B1) et le Siège (HQ) #
   ######################################################
   b1-hq {
      version = 2            # Utiliser IKEv2
      mobike = no            # Désactiver MOBIKE (IPs statiques, pas de mobilité attendue)

      local_addrs  = 10.10.0.1           # IP publique de la succursale 1
      remote_addrs = 10.1.0.1            # IP publique (ou IP WAN) du siège

      proposals = aes128-sha256-x25519  # Propositions IKE
      reauth_time = 0            # Désactiver la réauthentification, utiliser seulement le rekey

      dpd_delay   = 20s          # Envoyer une sonde Dead Peer Detection toutes les 20s
      dpd_timeout = 60s          # Considérer le pair comme inactif après 60s

      local {
         auth = psk             # Authentification par clé pré-partagée
         id = 10.10.0.1         # Identifiant local (B1)
      }
      remote {
         auth = psk             # Authentification par clé pré-partagée
         id = 10.1.0.1          # Identifiant local (HQ)
      }
      children {
         net-net {
            # Sélecteurs de trafic (sous-réseaux autorisés dans ce tunnel)
            # Sous-réseaux B1
            local_ts  = 192.168.10.0/24, 192.168.12.0/24, 192.168.13.0/24
            # Sous-réseaux du siège + VLAN VoIP de B2 (pour VoIP inter-sites via HQ)
            remote_ts = 192.168.1.0/24, 192.168.3.0/24, 192.168.5.0/24, 192.168.20.0/24, 192.168.23.0/24

            start_action = start      # Démarrer automatiquement le tunnel au lancement
            rekey_time = 3600         # Renouvellement des clés toutes les 60 minutes
            dpd_action  = restart     # Redémarrer la connexion si le pair est inactif

            esp_proposals = aes128gcm128-x25519
         }
      }
   }
}

######################################
# Secrets partagés (Pre-Shared Keys) #
######################################
secrets {
   ike-b1-hq {
      id = 10.10.0.1
      peer_id = 10.1.0.1
      secret = "JohnWeakPasswd:)"
   }
}
  • Redémarrer le service strongswan pour appliquer les changements :
root@B1:~# systemctl restart strongswan

Site 3 – Succursale 2 : Configuration du VPN

Succursale 2 – Prérequis

  • Installer le paquet strongSwan :
root@B2:~# apt update && apt install strongswan
  • Activer le démarrage automatique de nftables :
root@B2:~# systemctl enable nftables.service

Succursale 2 – Configuration de nftables

Comme pour le siège, la configuration de nftables est simplifiée ici. Aucune règle de filtrage n’est appliquée dans cet exemple.

  • Modifier le fichier /etc/nftables.conf :
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0; policy accept;
	}
        chain forward {
                type filter hook forward priority 0; policy accept ;
	}
	chain output {
                type filter hook output priority 0; policy accept;
        }
}

#NAT for outgoing traffic.
table ip my_nat {
        chain my_masquerade {
                type nat hook postrouting priority 100;
                ip daddr != { 10.20.0.1, 192.168.0.0/16 } oifname wan masquerade comment "output nat"
        }
}
  • Recharger la configuration de nftables :
root@B2:~# nft -f /etc/nftables.conf

Succursale 2 - Configuration réseau

Configurer les interfaces réseau de la succursale 2

Ici, nous configurons nos deux interfaces réseau: lan et wan.

  • Modifier le fichier /etc/network/interfaces :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug wan
iface wan inet static
        address 10.20.0.1
        netmask 255.255.255.0

allow-hotplug lan
iface lan inet static
        address 192.168.21.254
        netmask 255.255.255.0
        up /usr/local/sbin/ipconf.sh

Activer le routage IP pour le mode passerelle

  • Créer un fichier /etc/sysctl.d/99-ipforward.conf et y ajouter la ligne suivante :
net.ipv4.ip_forward=1
  • Appliquer la modification avec la commande suivante :
root@B2:~# sysctl -p /etc/sysctl.d/99-ipforward.conf

Script réseau

Le script /usr/local/sbin/ipconf.sh sera exécuté au démarrage afin de configurer automatiquement les interfaces VLAN.

  • Créer un fichier /usr/local/sbin/ipconf.sh :
#!/bin/sh

# Script de configuration des VLANs pour l’interface lan
# Ce script crée les interfaces VLAN et attribue les adresses IP
# Exécuté au démarrage pour que les VLANs soient prêts avant le lancement des services

# --- CONFIGURATION DES VLANs SUR L’INTERFACE lan ---
modprobe 8021q
ip link add link lan name users type vlan id 2
ip link add link lan name voip type vlan id 3
ip link add link lan name wifi type vlan id 4

# Activation des interfaces VLAN
ip link set users up
ip link set voip up
ip link set wifi up

# --- ATTRIBUTION DES ADRESSES IP AUX INTERFACES VLAN ---
ip addr add 192.168.22.254/24 dev users
ip addr add 192.168.23.254/24 dev voip
ip addr add 192.168.24.254/22 dev wifi
  • Modifier les permissions afin que le script /usr/local/sbin/ipconf.sh soit exécutable :
root@host:~# chmod +x /usr/local/sbin/ipconf.sh

Succursale 2 – Configuration de strongSwan

Fichier principal de configuration strongSwan : /etc/swanctl/swanctl.conf

  • Modifier le fichier /etc/swanctl/swanctl.conf :
connections {

   ######################################################
   # Tunnel entre la Succursale 2 (B2) et le Siège (HQ) #
   ######################################################
   b2-hq {
      version = 2            # Utiliser IKEv2
      mobike = no            # Désactiver MOBIKE (IPs statiques, pas de mobilité attendue)

      local_addrs  = 10.20.0.1           # IP publique de la succursale 2
      remote_addrs = 10.1.0.1            # IP publique (ou IP WAN) du siège

      proposals = aes128-sha256-x25519  # Propositions IKE
      reauth_time = 0            # Désactiver la réauthentification, utiliser seulement le rekey

      dpd_delay   = 20s          # Envoyer une sonde Dead Peer Detection toutes les 20s
      dpd_timeout = 60s          # Considérer le pair comme inactif après 60s

      local {
         auth = psk             # Authentification par clé pré-partagée
         id = 10.20.0.1         # Identifiant local (B2)
      }
      remote {
         auth = psk             # Authentification par clé pré-partagée
         id = 10.1.0.1          # Identifiant local (HQ)
      }
      children {
         net-net {
            # Sélecteurs de trafic (sous-réseaux autorisés dans ce tunnel)
            # Sous-réseaux B2
            local_ts  = 192.168.20.0/24, 192.168.22.0/24, 192.168.23.0/24
            # Sous-réseaux du siège + VLAN VoIP de B1 (pour VoIP inter-sites via HQ)
            remote_ts = 192.168.1.0/24, 192.168.3.0/24, 192.168.5.0/24, 192.168.10.0/24, 192.168.13.0/24

            start_action = start      # Démarrer automatiquement le tunnel au lancement
            rekey_time = 3600         # Renouvellement des clés toutes les 60 minutes
            dpd_action  = restart     # Redémarrer la connexion si le pair est inactif

            esp_proposals = aes128gcm128-x25519
         }
      }
   }
}

######################################
# Secrets partagés (Pre-Shared Keys) #
######################################
secrets {
   ike-b2-hq {
      id = 10.20.0.1
      peer_id = 10.1.0.1
      secret = "JohnWeakPasswd:)"
   }
}
  • Redémarrer le service strongswan pour appliquer les changements :
root@B2:~# systemctl restart strongswan

Dépannage

  • Ping depuis le siège:
root@HQ:~# ping 192.168.20.254 -I 192.168.1.254
  • Ping depuis la succursale 1:
root@B1:~# ping 192.168.5.254 -I 192.168.12.254
  • Ping depuis la succursale 2:
root@B2:~# ping 192.168.13.254 -I 192.168.23.254
  • Vérifier les logs:
root@HQ:~# journalctl -u strongswan
  • Lister les configurations strongSwan chargées :
root@HQ:~# swanctl --list-conns
hq-b1: IKEv2, no reauthentication, no rekeying, dpd delay 20s
  local:  10.1.0.1
  remote: 10.10.0.1
  local pre-shared key authentication:
    id: 10.1.0.1
  remote pre-shared key authentication:
    id: 10.10.0.1
  net-net: TUNNEL, rekeying every 3600s, dpd action is start
    local:  192.168.1.0/24 192.168.3.0/24 192.168.5.0/24 192.168.20.0/24 192.168.23.0/24
    remote: 192.168.10.0/24 192.168.12.0/24 192.168.13.0/24
hq-b2: IKEv2, no reauthentication, no rekeying, dpd delay 20s
  local:  10.1.0.1
  remote: 10.20.0.1
  local pre-shared key authentication:
    id: 10.1.0.1
  remote pre-shared key authentication:
    id: 10.20.0.1
  net-net: TUNNEL, rekeying every 3600s, dpd action is none
    local:  192.168.1.0/24 192.168.3.0/24 192.168.5.0/24 192.168.10.0/24 192.168.13.0/24
    remote: 192.168.20.0/24 192.168.22.0/24 192.168.23.0/24
  • Lister les IKE_SAs actuellement actives de strongSwan :
root@HQ:~# swanctl --list-sas
hq-b2: #6, ESTABLISHED, IKEv2, d0f895ea384c5d55_i 3b76bf7604c051fd_r*
  local  '10.1.0.1' @ 10.1.0.1[500]
  remote '10.20.0.1' @ 10.20.0.1[500]
  AES_CBC-128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519
  established 433s ago
  net-net: #7, reqid 2, INSTALLED, TUNNEL, ESP:AES_GCM_16-128
    installed 433s ago, rekeying in 2974s, expires in 3527s
    in  c19f2fff,    672 bytes,     8 packets,   231s ago
    out ca67ea94,    672 bytes,     8 packets,   231s ago
    local  192.168.1.0/24 192.168.3.0/24 192.168.5.0/24 192.168.10.0/24 192.168.13.0/24
    remote 192.168.20.0/24 192.168.22.0/24 192.168.23.0/24
hq-b1: #5, ESTABLISHED, IKEv2, 7c785e920c3a199a_i fddac3562b3129fe_r*
  local  '10.1.0.1' @ 10.1.0.1[500]
  remote '10.10.0.1' @ 10.10.0.1[500]
  AES_CBC-128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519
  established 1274s ago
  net-net: #5, reqid 1, INSTALLED, TUNNEL, ESP:AES_GCM_16-128
    installed 1274s ago, rekeying in 2179s, expires in 2686s
    in  c8d03828,  56952 bytes,   678 packets,   236s ago
    out cc5e72e5,  56952 bytes,   678 packets,   236s ago
    local  192.168.1.0/24 192.168.3.0/24 192.168.5.0/24 192.168.20.0/24 192.168.23.0/24
    remote 192.168.10.0/24 192.168.12.0/24 192.168.13.0/24