Я пытаюсь подключиться к SonicWall VPN с помощью StrongSwan из Linux (Ubuntu). Я могу подключиться с компьютера с Windows с помощью клиента SonicWall Global VPN, который использует общий секрет. Ниже приведены инструкции по подключению с помощью этого клиента:mc21-colombia
В Linux я бы использовал StrongSwan:
local> ipsec --version
Linux strongSwan U5.3.5/K4.4.0-72-generic
Institute for Internet Technologies and Applications
University of Applied Sciences Rapperswil, Switzerland
Мой /etc/ipsec.conf
как следует
conn name-for-connection
right=201.xxx.yyy.zzz,201.aaa.bbb.ccc
rightsubnet=172.16.0.0/12
rightid=@place_id
left=%any
xauth_identity=myuser
keyexchange=ikev2
authby=psk
ike=aes256-sha1-modp2048
esp=aes256-sha1-modp2048
auto=start
И /etc/ipsec.secret
имеет записи:
@place_id : PSK "Sh4r3d53cr37"
myuser : XAUTH "mYp455w0rd"
При запуске команды sudo ipsec up name-for-connection
Получаю следующий результат:
initiating IKE_SA name-for-connection[3] to 201.xxx.yyy.zzz
generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(HASH_ALG) ]
sending packet: from 192.168.0.eee[500] to 201.xxx.yyy.zzz[500] (1460 bytes)
received packet: from 201.xxx.yyy.zzz[500] to 192.168.0.eee[500] (38 bytes)
parsed IKE_SA_INIT response 0 [ N(INVAL_KE) ]
peer didn't accept DH group MODP_2048, it requested MODP_1024
initiating IKE_SA name-for-connection[3] to 201.xxx.yyy.zzz
generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(HASH_ALG) ]
sending packet: from 192.168.0.eee[500] to 201.xxx.yyy.zzz[500] (1332 bytes)
received packet: from 201.xxx.yyy.zzz[500] to 192.168.0.eee[500] (317 bytes)
parsed IKE_SA_INIT response 0 [ SA KE No CERTREQ N(NATD_S_IP) N(NATD_D_IP) V ]
local host is behind NAT, sending keep alives
sending cert request for "C=NL, O=Example Company, CN=strongSwan Root CA"
no IDi configured, fall back on IP address
authentication of '192.168.0.eee' (myself) with pre-shared key
establishing CHILD_SA name-for-connection
generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) CERTREQ IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) N(EAP_ONLY) ]
sending packet: from 192.168.0.eee[4500] to 201.xxx.yyy.zzz[4500] (372 bytes)
retransmit 1 of request with message ID 1
sending packet: from 192.168.0.eee[4500] to 201.xxx.yyy.zzz[4500] (372 bytes)
retransmit 2 of request with message ID 1
sending packet: from 192.168.0.eee[4500] to 201.xxx.yyy.zzz[4500] (372 bytes)
retransmit 3 of request with message ID 1
sending packet: from 192.168.0.eee[4500] to 201.xxx.yyy.zzz[4500] (372 bytes)
sending keep alive to 201.xxx.yyy.zzz[4500]
retransmit 4 of request with message ID 1
sending packet: from 192.168.0.eee[4500] to 201.xxx.yyy.zzz[4500] (372 bytes)
sending keep alive to 201.xxx.yyy.zzz[4500]
sending keep alive to 201.xxx.yyy.zzz[4500]
retransmit 5 of request with message ID 1
sending packet: from 192.168.0.eee[4500] to 201.xxx.yyy.zzz[4500] (372 bytes)
sending keep alive to 201.xxx.yyy.zzz[4500]
sending keep alive to 201.xxx.yyy.zzz[4500]
sending keep alive to 201.xxx.yyy.zzz[4500]
giving up after 5 retransmits
peer not responding, trying again (2/3)
establishing connection 'name-to-connection' failed
Итак, как я могу отладить это соединение или как установить его?
Во-первых, есть несоответствие в ваших настройках IKE. Вы запрашиваете modp2048, который является DH Group 14, но SonicWall запрашивает modp1024, который является DH Group 2.
Вы также можете столкнуться со следующей ошибкой. StrongSwan 5.3.5 не работает с межсетевыми экранами SonicWall IKEv1 / XAuth:
https://wiki.strongswan.org/issues/1434
https://bugs.launchpad.net/ubuntu/+source/strongswan/+bug/1608302
Хотя ошибка относится к IKEv1, поскольку вы используете XAUTH, она также может повлиять на вас. Проблема связана с сообщением, отправленным брандмауэром после запроса имени пользователя, но до запроса пароля. Эта ошибка исправлена в StrongSwan 5.5.0. К сожалению, если вы используете Ubuntu 16.04 LTS, мне не известно о версии 5.5.0, созданной для Ubuntu 16.04. Есть отчет, который вы можете найти с помощью поиска Google, где кто-то сообщил, что им удалось локально создать 5.5.x для Ubuntu 16.04.
Другой подход - использовать VirtualBox, настроить гостевую систему Windows, установить клиент SonicWall GVPN в гостевой системе и поделиться подключением адаптера SonicWall VPN к вашему хосту Ubuntu. Я сейчас этим занимаюсь. Настройка сложна, но, разобравшись, легко сделать, и она работает. Если интересно, могу выложить свой метод.