Клиент нашей компании по разработке предоставил доступ к своей IPSec VPN, предоставив необходимые учетные данные (анонимно):
Они также предоставили параметры, настроенные на их стороне:
Фаза 1
- Аутентификация: SHA1
- Шифрование: AES 256
- Срок службы SA: 1 час
- Группа ключей: Группа Диффи Хелмана 2
- Включены обход NAT и DPD
- Интервал сохранения активности: 20 секунд
Фаза 2
- Тип: ESP
- Аутентификация: SHA1
- Шифрование: AES 256
- Срок действия принудительного ключа: 1 час
Тип подключения - IKEv1, и они настроили доступ через VPN туннель только на зр ecific IP 1.2.3.4, потому что это единственная машина, с которой мы должны связаться.
Я пытаюсь понять, как настроить StrongSwan для подключения к их VPN. Мне нужно, чтобы это работало на VPS с Ubuntu Server 16.04.
Я пытался следовать нескольким руководствам, но некоторые были для более старых версий StrongSwan, поэтому они не работали. Наконец, я отредактировал /etc/ipsec.conf
со следующей попыткой настройки:
config setup
conn myconn
authby=xauthpsk
dpdaction=restart
esp=aes256-sha1
ike=aes256-sha1-dh2
ikelifetime=1h
keyexchange=ikev1
leftauth=psk
leftauth2=xauth
leftgroups=MYGROUP
leftid=@MYUSER
right=example.fake
rightsubnet=1.2.3.4/32
Я создал / etc / ipsec.секреты
:
: PSK "MYPSK"
MYUSER: XAUTH "MYPASSWORD"
Желаемое конечное состояние состоит в том, что наша машина подключается к VPN клиента, и мы можем достичь этого единственного IP 1.2.3.4. Остальной трафик должен быть разделен и не проходить через VPN.
Несмотря на то, что myconn
определен в /etc/ipsec.conf
, при попытке подключения появляется это сообщение об ошибке:
# ipsec restart
Stopping strongSwan IPsec...
Starting strongSwan 5.3.5 IPsec [starter]...
# ipsec up myconn
no config named 'myconn'
Эти строки добавляются в / var / log / syslog
после запуска ipsec restart
:
Jun 5 16:45:01 server charon: 00[DMN] signal of type SIGINT received. Shutting down
Jun 5 16:45:03 server charon: 00[DMN] Starting IKE charon daemon (strongSwan 5.3.5, Linux 4.8.0-53-generic, x86_64)
Jun 5 16:45:03 server charon: 00[CFG] disabling load-tester plugin, not configured
Jun 5 16:45:03 server charon: 00[LIB] plugin 'load-tester': failed to load - load_tester_plugin_create returned NULL
Jun 5 16:45:03 server charon: 00[CFG] dnscert plugin is disabled
Jun 5 16:45:03 server charon: 00[CFG] ipseckey plugin is disabled
Jun 5 16:45:03 server charon: 00[CFG] attr-sql plugin: database URI not set
Jun 5 16:45:03 server charon: 00[CFG] loading ca certificates from '/etc/ipsec.d/cacerts'
Jun 5 16:45:03 server charon: 00[CFG] loading aa certificates from '/etc/ipsec.d/aacerts'
Jun 5 16:45:03 server charon: 00[CFG] loading ocsp signer certificates from '/etc/ipsec.d/ocspcerts'
Jun 5 16:45:03 server charon: 00[CFG] loading attribute certificates from '/etc/ipsec.d/acerts'
Jun 5 16:45:03 server charon: 00[CFG] loading crls from '/etc/ipsec.d/crls'
Jun 5 16:45:03 server charon: 00[CFG] loading secrets from '/etc/ipsec.secrets'
Jun 5 16:45:03 server charon: 00[CFG] loaded RSA private key from '/etc/ipsec.d/private/myKey.der'
Jun 5 16:45:03 server charon: 00[CFG] sql plugin: database URI not set
Jun 5 16:45:03 server charon: 00[CFG] opening triplet file /etc/ipsec.d/triplets.dat failed: No such file or directory
Jun 5 16:45:03 server charon: 00[CFG] eap-simaka-sql database URI missing
Jun 5 16:45:03 server charon: 00[CFG] loaded 0 RADIUS server configurations
Jun 5 16:45:03 server charon: 00[CFG] no threshold configured for systime-fix, disabled
Jun 5 16:45:03 server charon: 00[CFG] coupling file path unspecified
Jun 5 16:45:03 server charon: 00[LIB] loaded plugins: charon test-vectors unbound ldap pkcs11 aes rc2 sha1 sha2 md4 md5 rdrand random nonce x509 revocation constraints acert pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey dnscert ipseckey pem openssl gcrypt af-alg fips-prf gmp agent chapoly xcbc cmac hmac ctr ccm gcm ntru bliss curl soup mysql sqlite attr kernel-netlink resolve socket-default connmark farp stroke updown eap-identity eap-sim eap-sim-pcsc eap-aka eap-aka-3gpp2 eap-simaka-pseudonym eap-simaka-reauth eap-md5 eap-gtc eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap eap-tnc xauth-generic xauth-eap xauth-pam xauth-noauth tnc-tnccs tnccs-20 tnccs-11 tnccs-dynamic dhcp whitelist lookip error-notify certexpire led radattr addrblock unity
Jun 5 16:45:03 server charon: 00[LIB] dropped capabilities, running as uid 0, gid 0
Jun 5 16:45:03 server charon: 00[JOB] spawning 16 worker threads
Они добавляются после запуска ipsec up myconn
:
Jun 5 16:45:21 server charon: 15[CFG] received stroke: initiate 'myconn'
Jun 5 16:45:21 server charon: 15[CFG] no config named 'myconn'
Они выглядят согласованными с вышеупомянутым сообщением об ошибке.
Почему ipsec up myconn
сообщает, что такой конфигурации нет? Я впервые пытаюсь разобраться с IPSec VPN ... имеет ли смысл конфигурация, которую я пытался написать?
Что мне нужно изменить, чтобы она заработала?
auto = add
Как было предложено в комментариях, я добавил auto = add
в свою конфигурацию. Теперь я получаю следующее:
# ipsec up myconn
initiating Main Mode IKE_SA myconn[1] to <IP of example.fake>
configuration uses unsupported authentication
tried to check-in and delete nonexisting IKE_SA
establishing connection 'myconn' failed
Эти строки добавляются в файл журнала:
Jun 5 17:07:19 server charon: 12[CFG] received stroke: initiate 'myconn'
Jun 5 17:07:19 server charon: 14[IKE] initiating Main Mode IKE_SA myconn[2] to <IP of example.fake>
Jun 5 17:07:19 server charon: 14[CFG] configuration uses unsupported authentication
Jun 5 17:07:19 server charon: 14[MGR] tried to check-in and delete nonexisting IKE_SA
esp =
, ike =
и keyexchange =
После удалив три упомянутые выше строки, попытка подключения будет повторяться трижды следующим образом (фрагмент показывает только первую строку, остальные идентичны):
Jun 5 17:18:44 server charon: 06[CFG] received stroke: initiate 'myconn'
Jun 5 17:18:45 server charon: 04[IKE] initiating IKE_SA myconn[1] to <IP of example.fake>
Jun 5 17:18:45 server charon: 04[ENC] generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(HASH_ALG) ]
Jun 5 17:18:45 server charon: 04[NET] sending packet: from <our server IP>[500] to <IP of example.fake>[500] (1500 bytes)
Jun 5 17:18:49 server charon: 03[IKE] retransmit 1 of request with message ID 0
Jun 5 17:18:49 server charon: 03[NET] sending packet: from <our server IP>[500] to <IP of example.fake>[500] (1500 bytes)
Jun 5 17:18:56 server charon: 15[IKE] retransmit 2 of request with message ID 0
Jun 5 17:18:56 server charon: 15[NET] sending packet: from <our server IP>[500] to <IP of example.fake>[500] (1500 bytes)
Jun 5 17:19:09 server charon: 01[IKE] retransmit 3 of request with message ID 0
Jun 5 17:19:09 server charon: 01[NET] sending packet: from <our server IP>[500] to <IP of example.fake>[500] (1500 bytes)
Jun 5 17:19:32 server charon: 16[IKE] retransmit 4 of request with message ID 0
Jun 5 17:19:32 server charon: 16[NET] sending packet: from <our server IP>[500] to <IP of example.fake>[500] (1500 bytes)
Jun 5 17:20:14 server charon: 05[IKE] retransmit 5 of request with message ID 0
Jun 5 17:20:14 server charon: 05[NET] sending packet: from <our server IP>[500] to <IP of example.fake>[500] (1500 bytes)
Jun 5 17:21:30 server charon: 13[IKE] giving up after 5 retransmits
Jun 5 17:21:30 server charon: 13[IKE] peer not responding, trying again (2/3)
Подключение к VPN клиента был протестирован на настольном компьютере в офисе с использованием ShrewSoft VPN, однако он не подходит для использования на разрабатываемом VPS.Указанная программа экспортировала следующую конфигурацию:
n:version:4
n:network-ike-port:500
n:network-mtu-size:1380
n:client-addr-auto:1
n:network-natt-port:4500
n:network-natt-rate:15
n:network-frag-size:540
n:network-dpd-enable:1
n:network-notify-enable:1
n:client-banner-enable:1
n:client-dns-used:1
n:client-dns-auto:1
n:client-dns-suffix-auto:1
b:auth-mutual-psk:****REMOVED****
n:phase1-dhgroup:2
n:phase1-keylen:0
n:phase1-life-secs:86400
n:phase1-life-kbytes:0
n:vendor-chkpt-enable:0
n:phase2-keylen:0
n:phase2-pfsgroup:-1
n:phase2-life-secs:3600
n:phase2-life-kbytes:0
n:policy-nailed:0
n:policy-list-auto:1
s:network-host:example.fake
s:client-auto-mode:pull
s:client-iface:virtual
s:network-natt-mode:enable
s:network-frag-mode:enable
s:auth-method:mutual-psk-xauth
s:ident-client-type:keyid
s:ident-client-data:MYGROUP
s:ident-server-type:any
s:phase1-exchange:aggressive
s:phase1-cipher:auto
s:phase1-hash:auto
s:phase2-transform:auto
s:phase2-hmac:auto
s:ipcomp-transform:disabled
s:policy-level:auto
Предлагает ли это какие-либо изменения, которые следует внести в файл ipsec.conf
, чтобы заставить его работать с StrongSwan?
Возможно, это запоздалый ответ,но вот несколько указателей на проблемы, которые я заметил (но не пробовал / не тестировал):
Еще несколько советов:
В любом случае, некоторая недостающая информация должна быть выведена косвенно на основе конфигураций и других журналов, которые вы можете ранее хотели предоставить, чтобы избежать повторения комментариев:
Я не совсем уверен, что использует ваш удаленный VPN-сервер , но выше сделано предположение, что он основан на радиусе, убедитесь, что правильно настроили ваши xauth-плагины на его основе.
Наконец, внимательно следуйте документации Strongswan 'ipsec.conf' о том, что поддерживается в IKEv1. Кроме того, если ваша конечная точка основана на NTLM, помните, что пароли NTLM закодированы в кодировке MD4 (просто найдите что-нибудь в смысле передачи строки UTF16 в openssl как MD4).