Sto cercando di configurare una connessione VPN IPSec tra la nostra rete aziendale e il Virtual Private Cloud di Amazon, usando il loro sistema VPN e un server Linux. Sfortunatamente, l'unica guida che ho trovato discute su come impostare il tunnel usando una macchina Linux host e ottenere quella macchina linux per accedere alle istanze VPC, ma non c'è discussione che posso trovare online su come ottenere l'istanza per accedere alla rete aziendale (o il resto di Internet tramite quella rete).
Informazioni sulla rete
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
Ecco il mio /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;
Ecco il mio /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 funziona bene, quindi non pubblicherò queste configurazioni.
Ecco cosa funziona
- Dalla scatola di Linux, posso eseguire il ping degli endpoint locali (169.254.249.2/169.254.249.6) e dei loro equivalenti remoti (169.254.249.1/169.254.249.5).
- Posso anche eseguire il ping delle istanze in VPC, SSH, ecc.
- Dalle istanze remote in VPC, posso eseguire il ping anche degli endpoint locali e remoti
- Non riesco a eseguire il ping dei server locali sulla sottorete 10.3.0.0/25
Presumo che mi manchi qualcosa di semplice, ma ho provato ad aggiungere voci a ipsec-tools.conf per rispecchiare {endpoint locale} <-> {sottorete remota}, usando {sottorete locale} <-> {endpoint remoto}, ma non sembra funzionare.
Quando eseguo il ping da {istanza remota} a {server locale}, il timeout del ping. I pacchetti sono visibili sull'interfaccia eth0 (anche se la rete locale è su eth1).
Google è stato di scarso aiuto; mostra solo le persone che tentano di utilizzare OpenSwan o che hanno problemi simili ma con router hardware o utilizzando strumenti meno recenti.