J'essaie de mettre en place une connexion VPN IPSec entre notre réseau d'entreprise et le cloud privé virtuel d'Amazon, en utilisant leur système VPN et un serveur Linux. Malheureusement, le seul guide que j'ai trouvé explique comment configurer le tunnel à l'aide d'une machine Linux hôte et obtenir que cette machine Linux accède aux instances VPC, mais je ne trouve aucune discussion en ligne sur la façon d'obtenir l'instance pour accéder au réseau d'entreprise (ou le reste d'Internet via ce réseau).
Informations sur le réseau
Local subnet: 10.3.0.0/25
Remote subnet: 10.4.0.0/16
Tunnel 1:
Outside IP Addresses:
- Customer Gateway: : 199.167.xxx.xxx
- VPN Gateway : 205.251.233.121
Inside IP Addresses
- Customer Gateway : 169.254.249.2/30
- VPN Gateway : 169.254.249.1/30
Tunnel 2:
Outside IP Addresses:
- Customer Gateway: : 199.167.xxx.xxx
- VPN Gateway : 205.251.233.122
Inside IP Addresses
- Customer Gateway : 169.254.249.6/30
- VPN Gateway : 169.254.249.5/30
Voici mon /etc/ipsec-tools.conf:
flush;
spdflush;
spdadd 169.254.249.2/30 169.254.249.1/30 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;
spdadd 169.254.249.1/30 169.254.249.2/30 any -P in ipsec
esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 169.254.249.5/30 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;
spdadd 169.254.249.5/30 169.254.249.6/30 any -P in ipsec
esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
spdadd 169.254.249.2/30 10.4.0.0/16 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;
spdadd 10.4.0.0/16 169.254.249.2/30 any -P in ipsec
esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 10.4.0.0/16 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;
spdadd 10.4.0.0/16 169.254.249.6/30 any -P in ipsec
esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
Voici mon /etc/racoon/racoon.conf:
remote 205.251.233.122 {
exchange_mode main;
lifetime time 28800 seconds;
proposal {
encryption_algorithm aes128;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
remote 205.251.233.121 {
exchange_mode main;
lifetime time 28800 seconds;
proposal {
encryption_algorithm aes128;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
sainfo address 169.254.249.2/30 any address 169.254.249.1/30 any {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes128;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
sainfo address 169.254.249.6/30 any address 169.254.249.5/30 any {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes128;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
BGP fonctionne bien, donc je ne vais pas publier ces configurations.
Voici ce qui fonctionne
- Depuis la boîte Linux, je peux exécuter une commande ping sur les points de terminaison locaux (169.254.249.2/169.254.249.6) et leurs équivalents distants (169.254.249.1/169.254.249.5).
- Je peux également envoyer une requête ping aux instances VPC, SSH, etc.
- À partir des instances distantes dans VPC, je peux également envoyer une requête ping aux points de terminaison locaux et distants
- Je ne peux pas envoyer de requête ping aux serveurs locaux sur le sous-réseau 10.3.0.0/25
Je suppose qu'il me manque quelque chose de simple, mais j'ai essayé d'ajouter des entrées à ipsec-tools.conf pour mettre en miroir le {point de terminaison local} <-> {sous-réseau distant}, en utilisant {sous-réseau local} <-> {point de terminaison distant}, mais cela ne semblait pas fonctionner.
Lorsque j'exécute une commande ping depuis {instance distante} vers {serveur local}, le délai d'attente des pings. Les paquets sont visibles sur l'interface eth0 (même si le réseau local est sur eth1).
Google n'a pas été d'une grande aide; il montre uniquement les personnes essayant d'utiliser OpenSwan, ou ayant des problèmes similaires mais avec des routeurs matériels ou utilisant des outils plus anciens.
la source
Réponses:
Eh bien, j'ai triché :) J'ai installé la passerelle Astaro qui est officiellement prise en charge par Amazon, puis je l'ai utilisée pour modéliser la mienne. Vous pouvez simplement SSH dans l'unité Astaro et voir comment ils ont tout configuré. Bien sûr, vous pouvez rester avec l'unité Astaro si vous avez envie de payer pour cela.
la source
Deviner. J'ai dû changer mon ipsec-tools.conf en ceci:
Et changez mon racoon.conf en ceci:
Cependant, cette configuration, si je comprends bien, acheminera uniquement le trafic entre 10.3.0.0/25 et 10.4.0.0/16 sur le premier tunnel (via xxx121). Je mettrai à jour la réponse quand je le comprendrai.
la source
Connaissez-vous la raison d'utiliser "require" au lieu de "use" pour la configuration de setkey? Savez-vous également si cela importe dans quel ordre je place les déclarations dans les sections distantes et sainfo et que je reproduis par erreur certaines déclarations? Par exemple:
contre
Avez-vous également compris comment faire circuler le trafic sur les deux tunnels?
Merci pour tout conseil.
la source