Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| linux_strongswan [2019/05/16 10:34] – [Résolution des pannes] nekan | linux_strongswan [2021/03/05 14:15] (Version actuelle) – nekan | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Installation d'un VPN site à site avec StrongSwan ====== | ====== Installation d'un VPN site à site avec StrongSwan ====== | ||
| + | <label type=" | ||
| Le recours à un VPN est très utile dans différents cas. Les plus importants sont : | Le recours à un VPN est très utile dans différents cas. Les plus importants sont : | ||
| Ligne 7: | Ligne 8: | ||
| Sous linux, il existe plusieurs possibilités pour établir un tunnel VPN. Les plus courantes seront OpenVPN, intéressant dans le cadre d'un poste itinérant, et StrongSwan, pour les tunnel IPSec site à site. | Sous linux, il existe plusieurs possibilités pour établir un tunnel VPN. Les plus courantes seront OpenVPN, intéressant dans le cadre d'un poste itinérant, et StrongSwan, pour les tunnel IPSec site à site. | ||
| - | <note important>Ce tutoriel a été réalisé sur deux debian stretch (version 9.4 et 9.7) et en tant que root. Les adresses IP choisies sont volontairement fausses.</ | + | <callout type=" |
| ===== Installation ===== | ===== Installation ===== | ||
| * On commence par mettre à jour notre base de paquets. | * On commence par mettre à jour notre base de paquets. | ||
| - | <code bash> | + | <sxh bash> |
| * On installe le paquet nécessaire. | * On installe le paquet nécessaire. | ||
| - | <code bash> | + | <sxh bash> |
| * La partie " | * La partie " | ||
| Ligne 36: | Ligne 37: | ||
| * La plage d' | * La plage d' | ||
| - | <note warning> | + | <callout type="warning" icon=" |
| Voici donc mon tableau récapitulatif : | Voici donc mon tableau récapitulatif : | ||
| Ligne 61: | Ligne 62: | ||
| * On commence par établir une carte réseau virtuelle qui correspond au routeur de la plage destinée aux postes distants : | * On commence par établir une carte réseau virtuelle qui correspond au routeur de la plage destinée aux postes distants : | ||
| - | <code bash> | + | <sxh bash> |
| * On ajoute notre interface : | * On ajoute notre interface : | ||
| - | <code bash># " | + | <sxh bash># " |
| # " | # " | ||
| auto eth1:0 | auto eth1:0 | ||
| # On déclare l' | # On déclare l' | ||
| iface eth1:0 inet static | iface eth1:0 inet static | ||
| - | address 10.0.1.1/ | + | address 10.0.1.1/ |
| - | * On édite le fichier de configuration. | + | * On active notre nouvelle interfacve : |
| - | <code bash> | + | <sxh bash> |
| + | * On édite le fichier de configuration | ||
| + | <sxh bash> | ||
| * On écris la configuration choisie dans le fichier : | * On écris la configuration choisie dans le fichier : | ||
| - | <code bash>## On commence par la configuration générale du deamon | + | <sxh bash>## On commence par la configuration générale du daemon |
| config setup | config setup | ||
| # Cette ligne sert à l' | # Cette ligne sert à l' | ||
| Ligne 127: | Ligne 130: | ||
| # On indique notre souhait de forcer l' | # On indique notre souhait de forcer l' | ||
| forceencaps=yes | forceencaps=yes | ||
| - | # Cette ligne permet d' | + | # Cette ligne permet d' |
| # pull pour attendre l' | # pull pour attendre l' | ||
| # push pour établir cette connexion | # push pour établir cette connexion | ||
| modeconfig=push | modeconfig=push | ||
| - | </code> | + | </sxh> |
| * Une fois ce fichier de configuration enregistrée, | * Une fois ce fichier de configuration enregistrée, | ||
| - | <code bash> | + | <sxh bash> |
| * Dans ce fichier, on indique notre PSK (J'ai choisi " | * Dans ce fichier, on indique notre PSK (J'ai choisi " | ||
| - | <code bash># PSK pour test-vpn | + | <sxh bash># PSK pour test-vpn |
| - | 78.79.1.2 89.90.3.4 : PSK " | + | 78.79.1.2 89.90.3.4 : PSK " |
| - | <note important>Il faut obligatoirement ouvrir les port UDP 500 et UDP 4500 sur votre solution de pare-feu et ce, pour chaque tête de pont.</note> | + | <callout type=" |
| Notre première tête de pont est paramétrée. Passons à la seconde. | Notre première tête de pont est paramétrée. Passons à la seconde. | ||
| Ligne 147: | Ligne 150: | ||
| * On commence par établir une carte réseau virtuelle qui correspond au routeur de la plage destinée aux postes distants : | * On commence par établir une carte réseau virtuelle qui correspond au routeur de la plage destinée aux postes distants : | ||
| - | <code bash> | + | <sxh bash> |
| * On ajoute notre interface : | * On ajoute notre interface : | ||
| - | <code bash># " | + | <sxh bash># " |
| # " | # " | ||
| auto eth1:0 | auto eth1:0 | ||
| # On déclare l' | # On déclare l' | ||
| iface eth1:0 inet static | iface eth1:0 inet static | ||
| - | address 10.0.2.1/ | + | address 10.0.2.1/ |
| - | * On édite le fichier de configuration. | + | * On active notre nouvelle interfacve : |
| - | <code bash> | + | <sxh bash> |
| + | * On édite le fichier de configuration | ||
| + | <sxh bash> | ||
| * On écris la configuration choisie dans le fichier : | * On écris la configuration choisie dans le fichier : | ||
| - | <code bash>## On commence par la configuration générale du deamon | + | <sxh bash>## On commence par la configuration générale du daemon |
| config setup | config setup | ||
| # Cette ligne sert à l' | # Cette ligne sert à l' | ||
| Ligne 213: | Ligne 218: | ||
| # On indique notre souhait de forcer l' | # On indique notre souhait de forcer l' | ||
| forceencaps=yes | forceencaps=yes | ||
| - | # Cette ligne permet d' | + | # Cette ligne permet d' |
| # pull pour attendre l' | # pull pour attendre l' | ||
| # push pour établir cette connexion | # push pour établir cette connexion | ||
| modeconfig=push | modeconfig=push | ||
| - | </code> | + | </sxh> |
| - | <note>On remarque bien que les parties " | + | <callout type=" |
| * Une fois ce fichier de configuration enregistrée, | * Une fois ce fichier de configuration enregistrée, | ||
| - | <code bash> | + | <sxh bash> |
| * Dans ce fichier, on indique notre PSK (J'ai choisi " | * Dans ce fichier, on indique notre PSK (J'ai choisi " | ||
| - | <code bash># PSK pour test-vpn | + | <sxh bash># PSK pour test-vpn |
| - | 89.90.3.4 78.79.1.2 : PSK " | + | 89.90.3.4 78.79.1.2 : PSK " |
| - | <note important>Il faut obligatoirement ouvrir les port UDP 500 et UDP 4500 sur votre solution de pare-feu et ce, pour chaque tête de pont.</note> | + | <callout type=" |
| La configuration des deux têtes de pont est maintenant terminée. Il ne reste plus qu'à lancer la connexion. | La configuration des deux têtes de pont est maintenant terminée. Il ne reste plus qu'à lancer la connexion. | ||
| Ligne 233: | Ligne 238: | ||
| ===== Prise en compte des paramétrages ===== | ===== Prise en compte des paramétrages ===== | ||
| - | Pour établir la connexion, il faut d' | + | Pour établir la connexion, il faut d' |
| - | <note warning> | + | <callout type="warning" icon=" |
| - | * Du coup, pour redémarrer le deamon | + | * Du coup, pour redémarrer le daemon |
| - | <code bash>/ | + | <sxh bash>/ |
| - | * Sinon, pour recharger la configuration, | + | * Sinon, pour recharger la configuration, |
| - | <code bash> | + | <sxh bash> |
| * On recharge la configuration : | * On recharge la configuration : | ||
| - | <code bash> | + | <sxh bash> |
| * On recharge tous les secrets et autres paramètres supplémentaires : | * On recharge tous les secrets et autres paramètres supplémentaires : | ||
| - | <code bash> | + | <sxh bash> |
| Ligne 252: | Ligne 257: | ||
| Il ne nous reste plus qu'à établir la connexion. Pour cela : | Il ne nous reste plus qu'à établir la connexion. Pour cela : | ||
| * On commence par vérifier si notre connexion n'est pas déjà établie (nous avons choisi un mode de démarrage automatique). | * On commence par vérifier si notre connexion n'est pas déjà établie (nous avons choisi un mode de démarrage automatique). | ||
| - | <code bash> | + | <sxh bash> |
| Si la connexion existe déjà, la console nous renvoie des informations de ce genre : | Si la connexion existe déjà, la console nous renvoie des informations de ce genre : | ||
| - | <code bash> | + | <sxh bash> |
| uptime: 17 hours, since May 15 18:06:34 2019 | uptime: 17 hours, since May 15 18:06:34 2019 | ||
| malloc: sbrk 1810432, mmap 0, used 1228912, free 581520 | malloc: sbrk 1810432, mmap 0, used 1228912, free 581520 | ||
| Ligne 277: | Ligne 282: | ||
| test-vpn{28}: | test-vpn{28}: | ||
| test-vpn{28}: | test-vpn{28}: | ||
| - | test-vpn{28}: | + | test-vpn{28}: |
| Si ce n'est pas le cas, il suffit d' | Si ce n'est pas le cas, il suffit d' | ||
| - | <code bash> | + | <sxh bash> |
| Nous aurons alors droit à un message de ce type : | Nous aurons alors droit à un message de ce type : | ||
| - | <code bash> | + | <sxh bash> |
| generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ] | generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ] | ||
| sending packet: from 78.79.1.2[500] to 89.90.3.4[500] (1172 bytes) | sending packet: from 78.79.1.2[500] to 89.90.3.4[500] (1172 bytes) | ||
| Ligne 289: | Ligne 294: | ||
| parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(MULT_AUTH) ] | parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(MULT_AUTH) ] | ||
| remote host is behind NAT | remote host is behind NAT | ||
| - | sending cert request for " | + | sending cert request for " |
| authentication of ' | authentication of ' | ||
| establishing CHILD_SA test-vpn | establishing CHILD_SA test-vpn | ||
| Ligne 300: | Ligne 305: | ||
| scheduling reauthentication in 27990s | scheduling reauthentication in 27990s | ||
| maximum IKE_SA lifetime 28530s | maximum IKE_SA lifetime 28530s | ||
| - | connection ' | + | connection ' |
| - | <note tip> | + | <callout type=" |
| ===== Résolution des pannes ===== | ===== Résolution des pannes ===== | ||
| - | Si le tunnel ne veux pas se monter, il est intéressant d' | + | <panel type=" |
| - | <code bash> | + | Si le tunnel ne veux pas se monter. |
| + | </ | ||
| + | <panel type=" | ||
| + | Il est intéressant d' | ||
| + | <sxh bash> | ||
| - | Une autre bonne source d' | + | Une autre bonne source d' |
| - | <code bash> | + | <sxh bash> |
| - | + | </panel> | |
| - | --- // | + | |
| ~~DISCUSSION~~ | ~~DISCUSSION~~ | ||