LINUX.ORG.RU

strongswan ipsec

 , , ,


1

1

есть debian 9, на нем надо поднять strongswan, поставил пакеты

ii  libcharon-extra-plugins         5.5.1-4+deb9u2                 amd64        strongSwan charon library (extra plugins)
ii  libstrongswan                   5.5.1-4+deb9u2                 amd64        strongSwan utility and crypto library
ii  libstrongswan-standard-plugins  5.5.1-4+deb9u2                 amd64        strongSwan utility and crypto library (standard plugins)
ii  strongswan                      5.5.1-4+deb9u2                 all          IPsec VPN solution metapackage
ii  strongswan-charon               5.5.1-4+deb9u2                 amd64        strongSwan Internet Key Exchange daemon
ii  strongswan-ike                  5.5.1-4+deb9u2                 all          strongSwan Internet Key Exchange daemon (transitional package)
ii  strongswan-ikev1                5.5.1-4+deb9u2                 all          strongSwan IKEv1 daemon, transitional package
ii  strongswan-ikev2                5.5.1-4+deb9u2                 all          strongSwan IKEv2 daemon, transitional package
ii  strongswan-libcharon            5.5.1-4+deb9u2                 amd64        strongSwan charon library
ii  strongswan-pki                  5.5.1-4+deb9u2                 amd64        strongSwan IPsec client, pki command
ii  strongswan-starter              5.5.1-4+deb9u2                 amd64        strongSwan daemon starter and configuration file parse

взял конфиг ipsec.conf с рабочего сервера (тестировался для iphone, macOS и windows)

conn %default
        ike = aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024
        esp = aes128gcm16-ecp256,aes256gcm16-ecp384,aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024,aes128gcm16,aes256gcm16,aes128-sha256,aes128-sha1,aes256-sha384,aes256-sha256,aes256-sha1

        dpdaction = clear
#       dpddelay = 35s
#       dpdtimeout = 2000s
        dpdtimeout = 5s
        dpddelay = 5s
        fragmentation = yes
#       rekey = no

        left = %any
        leftfirewall = yes
        leftsubnet = 0.0.0.0/0
        leftcert = certificate.pem
        leftsendcert = always

        right = %any
        rightsourceip = 192.168.252.0/24
        rightdns = 8.8.8.8,8.8.4.4

        eap_identity = %identity

# IKEv2
conn IPSec-IKEv2
        keyexchange = ikev2
        auto = add

# BlackBerry, Windows, Android
conn IPSec-IKEv2-EAP
        also = "IPSec-IKEv2"
        rightauth = eap-mschapv2

# macOS, iOS
conn IKEv2-MSCHAPv2-Apple
        also = "IPSec-IKEv2"
        ike = aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024
        esp = aes128gcm16-ecp256,aes256gcm16-ecp384,aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024,aes128gcm16,aes256gcm16,aes128-sha256,aes128-sha1,aes256-sha384,aes256-sha256,aes256-sha1
        rightauth = eap-mschapv2
        leftid = vpn server
        leftcert = certificate.pem

# Android IPsec Hybrid RSA
conn IKEv1-Xauth
        keyexchange=ikev1
        rightauth=xauth
        auto=add

выпустил сертификат для vpn сервера через letsencrypt и сделал

cp /etc/letsencrypt/live/vpn/chain.pem /etc/ipsec.d/cacerts/ca.pem 
cp /etc/letsencrypt/live/vpn/cert.pem /etc/ipsec.d/certs/certificate.pem 
cp /etc/letsencrypt/live/vpn/privkey.pem /etc/ipsec.d/private/key.pem

в /etc/ipsec.secrets добавил

: RSA key.pem

user1 : EAP "pass"

сделал ipsec restart и пробую подключаться с телефона на android, выбираю ipsec hybrid rsa и вбиваю vpn сервер, логин и пароль, подключаюсь, смотрю на сервере

ipsec status                                                                                                                    
Security Associations (1 up, 0 connecting):                                                                                                  
 IKEv1-Xauth[2]: ESTABLISHED 2 seconds ago, 1.2.3.4[CN=vpn_server]...5.6.7.8[192.168.0.100]                             
 IKEv1-Xauth{2}:  INSTALLED, TUNNEL, reqid 2, ESP in UDP SPIs: cb2a123b_i 04384e97_o                                                         
 IKEv1-Xauth{2}:   0.0.0.0/0 === 192.168.252.1/32

вроде бы все хорошо, но через 2-3 сек рвется соединение, в чем может быть проблема?


Соединение не установилось, вернее, установился IKE SA, но не Child SA. Смотрите журнал подключения.

Рекомендую не пользоваться встроенным IPsec в Android, он очень плохой. Используйте приложение strongSwan.

ValdikSS ★★★★★ ()
Ответ на: комментарий от ValdikSS

спасибо за ответ, попробовал установить приложение strongSwan VPN Clien, вбил настройки, подключился, смотрю пакеты отправляются, но не получаю, в чем может быть проблема?

Garcia ()
Ответ на: комментарий от Garcia

Смотрите, что происходит на сервере в это время.

ValdikSS ★★★★★ ()
Ответ на: комментарий от Garcia

В журнале все в порядке, соединение устанавливается. Что именно вы делали, чтобы проверить соединение? Компьютеры пингуются по адресам на внешних интерфейсах?

ValdikSS ★★★★★ ()
Ответ на: комментарий от ValdikSS

c android получилось разобраться, все работает как надо, но на ubuntu 18.04 что-то не заводится

поставил пакет network-manager-strongswan, создал подключение, вбил настройки авторизации EAP и в логах у меня

Jul  6 10:22:07 my_comp NetworkManager[832]: <info>  [1530861727.1008] audit: op="connection-activate" uuid="9aa91bc1-aa20-4ad7-9a39-38a4ab005970" name="vpnconnect" pid=6328 uid=1000 result="success"
Jul  6 10:22:07 my_comp NetworkManager[832]: <info>  [1530861727.1039] vpn-connection[0x557899f8e5e0,9aa91bc1-aa20-4ad7-9a39-38a4ab005970,"vpnconnect",0]: Saw the service appear; activating connection
Jul  6 10:22:07 my_comp gnome-shell[1252]: Invalid VPN service type (cannot find authentication binary)
Jul  6 10:22:07 my_comp gnome-shell[1252]: Invalid VPN service type (cannot find authentication binary)
Jul  6 10:22:07 my_comp NetworkManager[832]: <error> [1530861727.1536] vpn-connection[0x557899f8e5e0,9aa91bc1-aa20-4ad7-9a39-38a4ab005970,"vpnconnect",0]: Failed to request VPN secrets #3: No agents were available for this request.

это я поставил в подключение впн - запоминать пароль для этого пользователя, когда меняю на - запрашивать пароль каждый раз, то в логах ошибка

Jul  6 10:29:16 my_comp charon-nm: 11[CFG] checking certificate status of "C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3"
Jul  6 10:29:16 my_comp charon-nm: 11[CFG]   requesting ocsp status from 'http://isrg.trustid.ocsp.identrust.com' ...
Jul  6 10:29:16 my_comp charon-nm: 11[LIB] unable to fetch from http://isrg.trustid.ocsp.identrust.com, no capable fetcher found
Jul  6 10:29:16 my_comp charon-nm: 11[CFG] ocsp request to http://isrg.trustid.ocsp.identrust.com failed
Jul  6 10:29:16 my_comp charon-nm: 11[CFG] ocsp check failed, fallback to crl
Jul  6 10:29:16 my_comp charon-nm: 11[CFG]   fetching crl from 'http://crl.identrust.com/DSTROOTCAX3CRL.crl' ...
Jul  6 10:29:16 my_comp charon-nm: 11[LIB] unable to fetch from http://crl.identrust.com/DSTROOTCAX3CRL.crl, no capable fetcher found
Jul  6 10:29:16 my_comp charon-nm: 11[CFG] crl fetching failed
Jul  6 10:29:16 my_comp charon-nm: 11[CFG] certificate status is not available
Jul  6 10:29:16 my_comp charon-nm: 11[CFG] certificate policy 2.23.140.1.2.1 for 'CN=vpn_server' not allowed by trustchain, ignored
Jul  6 10:29:16 my_comp charon-nm: 11[CFG] certificate policy 1.3.6.1.4.1.44947.1.1.1 for 'CN=vpn_server' not allowed by trustchain, ignored
Jul  6 10:29:16 my_comp charon-nm: 11[CFG]   reached self-signed root ca with a path length of 1
Jul  6 10:29:16 my_comp charon-nm: 11[IKE] authentication of 'CN=vpn_server' with RSA_EMSA_PKCS1_SHA2_256 successful
Jul  6 10:29:16 my_comp charon-nm: 11[IKE] server requested EAP_IDENTITY (id 0x00), sending 'user1'
Jul  6 10:29:16 my_comp charon-nm: 11[IKE] EAP_IDENTITY not supported, sending EAP_NAK
Jul  6 10:29:16 my_comp charon-nm: 11[ENC] generating IKE_AUTH request 2 [ EAP/RES/NAK ]
Jul  6 10:29:16 my_comp charon-nm: 11[NET] sending packet: from 192.168.0.101[55797] to IP_VPN[4500] (80 bytes)
Jul  6 10:29:16 my_comp charon-nm: 16[NET] received packet: from IP_VPN[4500] to 192.168.0.101[55797] (80 bytes)
Jul  6 10:29:16 my_comp charon-nm: 16[ENC] parsed IKE_AUTH response 2 [ EAP/FAIL ]
Jul  6 10:29:16 my_comp charon-nm: 16[IKE] received EAP_FAILURE, EAP authentication failed
Jul  6 10:29:16 my_comp charon-nm: 16[ENC] generating INFORMATIONAL request 3 [ N(AUTH_FAILED) ]
Jul  6 10:29:16 my_comp charon-nm: 16[NET] sending packet: from 192.168.0.101[55797] to IP_VPN[4500] (80 bytes)
Jul  6 10:29:16 my_comp NetworkManager[832]: <warn>  [1530862156.8633] vpn-connection[0x557899f8e1e0,9aa91bc1-aa20-4ad7-9a39-38a4ab005970,"vpnconnect",0]: VPN plugin: failed: connect-failed (1)
Jul  6 10:29:16 my_comp NetworkManager[832]: <warn>  [1530862156.8634] vpn-connection[0x557899f8e1e0,9aa91bc1-aa20-4ad7-9a39-38a4ab005970,"vpnconnect",0]: VPN plugin: failed: connect-failed (1)
Jul  6 10:29:16 my_comp NetworkManager[832]: <info>  [1530862156.8636] vpn-connection[0x557899f8e1e0,9aa91bc1-aa20-4ad7-9a39-38a4ab005970,"vpnconnect",0]: VPN plugin: state changed: stopping (5)
Jul  6 10:29:16 my_comp NetworkManager[832]: <info>  [1530862156.8639] vpn-connection[0x557899f8e1e0,9aa91bc1-aa20-4ad7-9a39-38a4ab005970,"vpnconnect",0]: VPN plugin: state changed: stopped (6)

если попробовать авторизацию по сертификатам, то коннект проходит и все работает, а что не так с EAP?

Garcia ()
Ответ на: комментарий от Garcia

EAP_IDENTITY not supported, sending EAP_NAK

У вас на сервере есть плагин для EAP_IDENTITY и MSCHAPv2?

ValdikSS ★★★★★ ()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от Garcia

Если игнорируете certificate policy, зачем вам вообще тут let's encrypt?
Любой самоподписанный сертификат поведет себя не хуже.

anonymous ()
Ответ на: комментарий от ValdikSS

На сервере-то как раз есть. На клиенте нет.

Garcia, см. последнюю строчку в вике: Depending on the used authentication methods, you can use gateway configurations very similar to Windows 7 (Certificate/MSCHAPv2), or use EAP-GTC and the PAM XAuth backend to authenticate against PAM.

Или отказывайся от NM и рули подключением вручную.

thesis ★★★★★ ()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

на впн сервере все установлено

dpkg -l | grep strongswan
ii  libstrongswan                   5.5.1-4+deb9u2                 amd64        strongSwan utility and crypto library
ii  libstrongswan-standard-plugins  5.5.1-4+deb9u2                 amd64        strongSwan utility and crypto library (standard plugins)
ii  strongswan                      5.5.1-4+deb9u2                 all          IPsec VPN solution metapackage
ii  strongswan-charon               5.5.1-4+deb9u2                 amd64        strongSwan Internet Key Exchange daemon
ii  strongswan-ike                  5.5.1-4+deb9u2                 all          strongSwan Internet Key Exchange daemon (transitional packag)
ii  strongswan-ikev1                5.5.1-4+deb9u2                 all          strongSwan IKEv1 daemon, transitional package
ii  strongswan-ikev2                5.5.1-4+deb9u2                 all          strongSwan IKEv2 daemon, transitional package
ii  strongswan-libcharon            5.5.1-4+deb9u2                 amd64        strongSwan charon library
ii  strongswan-pki                  5.5.1-4+deb9u2                 amd64        strongSwan IPsec client, pki command
ii  strongswan-starter              5.5.1-4+deb9u2                 amd64        strongSwan daemon starter and configuration file parser
dpkg -l | grep charon
ii  libcharon-extra-plugins         5.5.1-4+deb9u2                 amd64        strongSwan charon library (extra plugins)
ii  strongswan-charon               5.5.1-4+deb9u2                 amd64        strongSwan Internet Key Exchange daemon
ii  strongswan-libcharon            5.5.1-4+deb9u2                 amd64        strongSwan charon library

а это на ubuntu

dpkg -l | grep strongswan
ii  libstrongswan                              5.6.2-1ubuntu2                                                              amd64        strongSwan utility and crypto library
ii  libstrongswan-extra-plugins                5.6.2-1ubuntu2                                                              amd64        strongSwan utility and crypto library (extra plugins)
ii  libstrongswan-standard-plugins             5.6.2-1ubuntu2                                                              amd64        strongSwan utility and crypto library (standard plugins)
ii  network-manager-strongswan                 1.4.2-2                                                                     amd64        network management framework (strongSwan plugin)
ii  strongswan                                 5.6.2-1ubuntu2                                                              all          IPsec VPN solution metapackage
ii  strongswan-charon                          5.6.2-1ubuntu2                                                              amd64        strongSwan Internet Key Exchange daemon
ii  strongswan-libcharon                       5.6.2-1ubuntu2                                                              amd64        strongSwan charon library
ii  strongswan-nm                              5.6.2-1ubuntu2                                                              amd64        strongSwan plugin to interact with NetworkManager
ii  strongswan-pki                             5.6.2-1ubuntu2                                                              amd64        strongSwan IPsec client, pki command
ii  strongswan-starter                         5.6.2-1ubuntu2                                                              amd64        strongSwan daemon starter and configuration file parser
ii  strongswan-tnc-base                        5.6.2-1ubuntu2                                                              amd64        strongSwan Trusted Network Connect's (TNC) - base files
dpkg -l | grep charon
ii  libcharon-extra-plugins                    5.6.2-1ubuntu2                                                              amd64        strongSwan charon library (extra plugins)
ii  libcharon-standard-plugins                 5.6.2-1ubuntu2                                                              amd64        strongSwan charon library (standard plugins)
ii  strongswan-charon                          5.6.2-1ubuntu2                                                              amd64        strongSwan Internet Key Exchange daemon
ii  strongswan-libcharon                       5.6.2-1ubuntu2                                                              amd64        strongSwan charon library

Garcia ()
Ответ на: комментарий от thesis

у меня есть выбор в подключении впн - Certificate/private key - Certificate/ssh-agent - Smartcard - EAP - Pre-shared key

вот сейчас у меня стоит EAP, протестировал на Certificate/private key коннект есть, но это ж letsencrypt, каждые 3 месяца не оч хочется обновлять сертификаты, хочу через логин/пароль

Garcia ()
Ответ на: комментарий от Garcia

Не знаю, в чем у вас проблема, но вы можете использовать самоподписной сертификат в качестве клиентского, и Let's Encrypt в качестве серверного. При этом вам не нужно будет импортировать CA от самоподписного на клиентский компьютер.

ValdikSS ★★★★★ ()
Ответ на: комментарий от Garcia

Никто (как уже было сказано) не заставляет юзать сторонний сертификат. «Для себя» всегда лучше использовать самодельные.
А еще есть PSK.
А еще можно ВНЕЗАПНО КУПИТЬ СЕРТИФИКАТ ЗА БАБЛО ОГО-ГО КАК БЫВАЕТ НИЧЕГО СЕБЕ!

thesis ★★★★★ ()
Последнее исправление: thesis (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.