Я пытаюсь подключиться к 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 14, но SonicWall запрашивает modp1024, которая является группой DH 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. Я сейчас этим занимаюсь. Настройка сложна, но, разобравшись, легко сделать, и она работает. Если интересно, могу опубликовать свой метод.