From 2479908c37d85fe21221b4daf76026f596d2ea27 Mon Sep 17 00:00:00 2001 From: jdubois Date: Thu, 14 May 2020 16:12:50 +0200 Subject: [PATCH] =?UTF-8?q?M=C3=A0J=20VPN=20ipsec.conf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoISAKMPD.md | 71 ++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/HowtoISAKMPD.md b/HowtoISAKMPD.md index e0cd102c..760da977 100644 --- a/HowtoISAKMPD.md +++ b/HowtoISAKMPD.md @@ -183,21 +183,19 @@ pass in on $ext_if proto udp from $addr_gw2 to ($ext_if) port {isakmp, ipsec-nat Dans /etc/ipsec.conf, positionner : ~~~ -local_ip="192.0.2.254" local_network="192.0.2.0/24" remote_ip="198.51.100.254" remote_network="198.51.100.0/24" -ike passive esp from $local_network to $remote_network peer $remote_ip -ike passive esp from $local_ip to $remote_network peer $remote_ip -ike passive esp from $local_ip to $remote_ip +ike dynamic esp from $local_network to $remote_network peer $remote_ip \ +main auth hmac-sha2-256 enc aes-256 group modp2048 lifetime 86400 \ +quick auth hmac-sha2-256 enc aes-256 group modp2048 lifetime 7200 \ +psk "PRE-SHARED KEY" ~~~ -Récupérer la clé pré-générée de l'autre passerelle : - -~~~ -# scp gw2:/etc/isakmpd/local.pub /etc/isakmpd/pubkeys/ipv4/198.51.100.254 -~~~ +Le mot-clef "dynamic" permet d'activer le Dead Peer Detection (DPD), utilisé pour détecter la perte du pair. Certains VPNs peuvent ne pas rester stable s'il n'est pas activé. +Le mot-clef "main" configure la phase 1, tandis que le mot-clef "quick" configure la phase 2. +Adapter ensuite les protocoles de sécurité, les durées de vies des 2 phases, ainsi que la psk, qui doivent correspondre entre gw1 et gw2. Tester la configuration : @@ -208,51 +206,62 @@ Tester la configuration : Démarrer le service : ~~~ -# isakmpd -K +# cat /etc/rc.conf.local +isakmpd_flags="-K" + +# rcctl start isakmpd # ipsecctl -f /etc/ipsec.conf ~~~ Puis effectuer les mêmes actions sur l'autre passerelle. -On doit alors pouvoir pinger chaque réseau à partir de l'autre passerelle ou de l'autre réseau. +Les deux réseaux doivent alors pouvoir se pinger entre eux. -Pour relancer un VPN il suffit de récupérer le nom des variables isakmpd générées par ipsectl via la commande suivante puis d'utiliser la même méthode qu'avec isakmpd. +Pour couper un VPN, il faut ajouter l'option '-d' : ~~~ -# ipsecctl -nvf /etc/ipsec.conf +# ipsecctl -d -f /etc/ipsec.conf ~~~ -### Cas avec plusieurs réseaux +### Monter des VPNs avec plusieurs pairs + +Lorsque plusieurs VPNs sont montés, une bonne pratique est d'avoir un fichier par pair. Ainsi, les VPNs montés avec *FAI1* et *FAI2* pourront être indépendamment redémarrés : + +~~~ +# cat /etc/ipsec.conf +include "/etc/ipsec/fai1.conf" +include "/etc/ipsec/fai2.conf" + +# ipsecctl -d -f /etc/ipsec/fai1.conf +# ipsecctl -f /etc/ipsec/fai1.conf + +# ipsecctl -d -f /etc/ipsec/fai2.conf +# ipsecctl -f /etc/ipsec/fai2.conf +~~~ + +### Monter un VPN avec plusieurs réseaux Dans le cas où plusieurs réseaux distants doivent être accessibles (plusieurs phases 2 doivent être montées), cette syntaxe peut être utilisée dans /etc/ipsec.conf : ~~~ -local_ip="192.0.2.254" local_network="192.0.2.0/24" remote_ip="198.51.100.254" remote_network="{198.51.100.0/24, 198.51.200.0/24}" -ike passive esp from $local_network to $remote_network peer $remote_ip -ike passive esp from $local_ip to $remote_network peer $remote_ip -ike passive esp from $local_ip to $remote_ip +ike dynamic esp from $local_network to $remote_network peer $remote_ip \ +main auth hmac-sha2-256 enc aes-256 group modp2048 lifetime 86400 \ +quick auth hmac-sha2-256 enc aes-256 group modp2048 lifetime 7200 \ +psk "PRE-SHARED KEY" ~~~ ### Debug IPsec -Eteindre isakmpd : - -~~~ -# /etc/rc.d/isakmpd stop ~~~ +# cat /etc/rc.conf.local +isakmpd_flags="-K -v -DA=90" -Dans une console : - -~~~ -# isakmpd -d -DA=90 -K -~~~ - -Dans une autre console : - -~~~ +# rcctl restart isakmpd # ipsecctl -f /etc/ipsec.conf ~~~ + +L'option `-DA=90` indique à isakmpd de logger tout ce qui se passe sur le VPN. Les logs seront alors très dense. \ No newline at end of file