У меня StrongSwan работает на сервере ubuntu, и я пытаюсь создать VPN-туннель с шифрованием ipsec с маршрутизатором Cisco 2821. Соединение не работает, и я не могу понять почему. Кажется, что этап 1 завершен, но на этапе 2 не удается. Может ли кто-нибудь дать предложения? Я в тупике. Кстати, мой сервер находится в облаке Amazon.
Вот мой конфиг:
conn my-conn
type=tunnel
authby=secret
auth=esp
ikelifetime=86400s
keylife=3600s
esp=3des-sha1
ike=3des-sha1-modp1024
keyexchange=ike
pfs=no
forceencaps=yes
# Left security gateway, subnet behind it, nexthop toward right.
left=10.0.0.4
leftsubnet=10.0.0.4/32
leftnexthop=%defaultroute
# Right security gateway, subnet behind it, nexthop toward left.
right=1.2.3.4
rightsubnet=1.2.3.5/32
rightnexthop=%defaultroute
# To authorize this connection, but not actually start it,
# at startup, uncomment this.
auto=start
Вот результат логов:
Dec 28 18:02:19 myserver pluto[15753]: "my-conn" #330: initiating Main Mode
Dec 28 18:02:19 myserver pluto[15753]: "my-conn" #330: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-03]
Dec 28 18:02:19 myserver pluto[15753]: "my-conn" #330: enabling possible NAT-traversal with method RFC 3947
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: ignoring Vendor ID payload [Cisco-Unity]
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: received Vendor ID payload [Dead Peer Detection]
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: ignoring Vendor ID payload [883f3a4fb4782a3ae88bf05cdfe38ae0]
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: received Vendor ID payload [XAUTH]
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: NAT-Traversal: Result using draft-ietf-ipsec-nat-t-ike-02/03: i am NATed
Dec 28 18:02:20 myserver pluto[15753]: | protocol/port in Phase 1 ID Payload is 17/0. accepted with port_floating NAT-T
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: Peer ID is ID_IPV4_ADDR: '1.2.3.4'
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: ISAKMP SA established
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #331: initiating Quick Mode PSK+ENCRYPT+TUNNEL+UP {using isakmp#330}
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: ignoring informational payload, type NO_PROPOSAL_CHOSEN
Dec 28 18:02:20 myserver pluto[15753]: "my-conn" #330: ignoring informational payload, type IPSEC_RESPONDER_LIFETIME
Конфигурация, предоставленная мне для подключения к маршрутизатору cisco, была следующей:
Key Management: IKE
Diffie-Hellman Group: Group 2
Encryption Algorithm: 3DES (rec)
Hash Algorithm: SHA-1 (rec.)
Authentication Method: Preshared
Pre-Shared Secret Key: TBC
Life Time: 86400s (24h)
Encryption Phase 2 (IPSec):
Encapsulation: ESP
Encryption Algorithm used: 3DES (rec)
Hash Algorithm: SHA-1 (rec.)
Perfect Forward Secrecy: Groupe 2
Aggressive Mode: NO
Life Time: 3600s (1h)
Если я правильно помню, Amazon EC2 использует некоторый NAT, чтобы сделать ваш экземпляр доступным из Интернета.
Хотя совместимые с NAT приложения будут работать без проблем (например, http или ssh), некоторые протоколы были разработаны в то время, когда сквозная связь была правилом, и NAT нарушит эти протоколы.
FTP или SIP (на самом деле rtp) используют динамически выбираемые порты, но были разработаны помощники. Например, STUN для VoIP.
В случае IPSec этап 1 успешен. Это обнаружение NAT. Итак, ваш сервер говорит в журналах i am NATed
.
Однако этап 2, который представляет собой решение об обходе NAT, не выполняется. Возможно, вам придется включить то, что Cisco называет «прозрачностью IPSec NAT» с обеих сторон. Таким образом, полезная нагрузка ipsec находится не на уровне 3 (IP), а на уровне 4 в UDP.
Это несколько похоже на то, что делает openvpn, но с ssl вместо IPSec.
Посмотри на Сайт Cisco о прохождении NAT. Несмотря на то, что он ориентирован на Cisco, он поможет вам настроить туннель.
Я получил эту ошибку с StrongSwan 5.6.1
в Centos 7 при подключении к серверу Windows. Ошибка связана с удаленный сервер с использованием слабых шифров которые считаются устарело StrongSwan.
Включение следующих слабые шифры позволяет ipsec
подключение для завершения:
aes128-sha1-modp2048,3des-sha1-modp1536,3des-sha1-modp1024
aes128-sha1,3des-sha1
увидеть известные проблемы для network-manager-l2tp
Я нашел Arch Linux L2TP вики полезно и инструкции, хотя для OpenSwan также работаю на StrongSwan:
Бегать ipsec verify
сначала настроить вашу среду.
Бегать xl2tpd -D
(режим отладки) - чтобы убедиться, что ваши настройки вменяемы.
Дайте VPN то же имя в Аплет NetworkManager что вы даете conn
установка в /etc/ipsec.conf
В network-manager-l2tp
плагин, кажется, устанавливает соответствие L2TP
подключение через lns
IP-адрес в /etc/xl2tpd/xl2tpd.conf
. Имя, которое вы даете [lac vpn-name]
настройка не имеет значения для плагина.
Эти примечания также относятся к настройке L2TP с участием ipsec
под Arch Linux. Использовать Libreswan (Strongswan ipsec
не работает в Arch Linux) с network-manager-l2tp
плагин и разместите свой ipsec
детали подключения под /etc/ipsec.d/*.conf
. Имя файла может быть любым, поскольку плагин ищет conn
строка в файлах конфигурации, которая соответствует Имя VPN в Сетевой менеджер.