Я намагаюся встановити IPSec VPN-з'єднання між нашою корпоративною мережею та віртуальною приватною хмарою Amazon, використовуючи їх VPN-систему та сервер Linux. На жаль, єдине знайдене в мене керівництво розповідає про те, як налаштувати тунель за допомогою хост-машини Linux та отримати цю машину Linux для доступу до екземплярів VPC, але в Інтернеті немає обговорення, як отримати інстанцію для доступу до корпоративної мережі (або інший Інтернет через цю мережу).
Інформація про мережу
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
Ось мій /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;
Ось мій /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 працює нормально, тому я не збираюся публікувати ці конфігурації.
Ось що працює
- З вікна Linux я можу записати локальні кінцеві точки (169.254.249.2/169.254.249.6) та їх віддалені еквіваленти (169.254.249.1/169.254.249.5).
- Я також можу пінг-екземпляри в VPC, SSH до них тощо.
- З віддалених екземплярів VPC я також можу пінг локальних та віддалених кінцевих точок
- Я не можу пінг локальних серверів у підмережі 10.3.0.0/25
Я припускаю, що мені не вистачає чогось простого, але я спробував додати записи до ipsec-tools.conf, щоб відобразити {local endpoint} <-> {віддалену підмережу}, використовуючи {local subnet} <-> {remote endpoint}, але це, здається, не спрацювало.
Коли я пінг з {віддаленого примірника} на {локальний сервер}, пінг-тайм-аут. Пакети видно на інтерфейсі eth0 (навіть якщо локальна мережа є на eth1).
Google мало допомагає; він показує лише людей, які намагаються використовувати OpenSwan або мають подібні проблеми, але з апаратними маршрутизаторами або з використанням старих інструментів.