Жил был один сильный и независимый Strongswan VPN сервер в облаках. Подключал на себя клиентов по Let's Encrypt сертификату и аутентификации, дружил с другими Strongswan... И тут как гром ⚡ среди ясного неба появился клиент с требованиями ????: "Хочу впн! У меня, мол, пало альто и стронгсван ваш в глаза не видывал..."

Поскольку strongSwan полностью реализует протокол IKEv2, определенный в RFC 7296, то всё должно получиться! Из тех данных, что передали по Palo Alto есть интересный номер группы Diffie-Hellman, которого нет в конфигурации Strongswan. Но при штурме документации RFC были найдены соответствия групп тут (rfc5114#section-3.2) и тут (rfc5114#section-4), а также есть соответствия к настройке Strongswan тут, ну и стоит упомянуть саму документацию IANA. Собрал основные в таблицу:

Имя группы

Номер группы

Symmetric

RSA

Строка в Strongswan

1024-bit MODP Group with 160-bit Prime Order Subgroup

22

80

1024

modp1024s160

2048-bit MODP Group with 224-bit Prime Order Subgroup

23

112

2048

modp2048s224

2048-bit MODP Group with 256-bit Prime Order Subgroup

24

112

2048

modp2048s256

192-bit Random ECP Group

25

80

1024

ecp192

224-bit Random ECP Group

26

112

2048

ecp224

256-bit Random ECP Group

19

128

3072

ecp256

384-bit Random ECP Group

20

192

7680

ecp382

521-bit Random ECP Group

21

256

15360

ecp521

С группами разобрались, соотнесли к настройке. Запустились ????, но не тут то было, получаем:

parsed IKE_AUTH response 1 [ N(NO_PROP) ]
generating INFORMATIONAL request 2 [ N(AUTH_FAILED) ]

parsed IKE_AUTH response 1 [ N(AUTH_FAILED) ]
received AUTHENTICATION_FAILED notify error

С той стороны, что-то такое:

IKEv2 IKE SA negotiation is succeeded as initiator, non-rekey. Established SA: 10.10.10.10[4500]-1x.1x.1x.1x[4500] SPI:e1c24d39e8fbe6a9:cab51c19f27f54ce lifetime 28800 Sec

IKEv2 child SA negotiation is failed as initiator, non-rekey. Failed SA: 10.10.10.10[4500]-1x.1x.1x.1x[4500] message id:0x0000000D. Error code 19

IKEv2 child SA negotiation failed when processing SA payload. no suitable proposal found in peer's SA payload

Значит клиент точно за NAT ????, прописываем:

rightid=10.10.10.10

И видим с нашей стороны при инициализации со стороны Palo Alto:

charon: 08[IKE] authentication of '10.10.10.10' with pre-shared key successful

О-о-о, можно бежать за чаем.... и опять ????:

charon: 08[IKE] no acceptable proposal found
charon: 08[IKE] failed to establish CHILD_SA, keeping IKE_SA
charon: 08[ENC] generating IKE_AUTH response 1 [ IDr AUTH N(AUTH_LFT) N(NO_PROP) ]

Что ж... достаём из закромов свой повидавший виды, старый, потёртый, слегка в пыли - бубен! И начинаем...

внимательнее смотреть наши логи. Бубен помог!

charon: 08[CFG] received proposals: ESP:AES_GCM_16_256/NO_EXT_SEQ
charon: 08[CFG] configured proposals: ESP:AES_CBC_256/HMAC_SHA2_256128/NO_EXT_SEQ, ESP:AES_CBC_128/AES_CBC_192/AES_CBC_256/HMAC_SHA2_256_128/HMAC_SHA2_384_192/HMAC_SHA2_512_256/HMAC_SHA1_96/AES_XCBC_96/NO_EXT_SEQ

GCM против CBC - неравная схватка. Меняем в конфигурации:

esp=aes256gcm16

Теперь всё работает! Победа за нами! ????

По итогу, иформация от клиента (не считая внешнего IP)

IKE Version: 2 
Phase 1
 IKEv2 encryption: AES‑CBC-256
 Integrity hash: SHA256
 PRF hash: SHA256
 Diffie‑Hellman group: group=20
 Life‑time: 86 400 seconds
Phase 2
 IKEv2 encryption: AES-256
 Integrity hash: SHA256
 PFS: Yes, group=20
 Life‑time: 28 800 seconds

Что получилось в ipsec.conf

conn strongswan-to-paloalto
type=tunnel
authby=psk
left=%defaultroute
leftid=1x.1x.1x.1x
leftsubnet=10.1.1.1/24
right=2x.2x.2x.2x
rightid=10.10.10.10
rightsubnet=10.2.2.2/24
rightsendcert=never
keyexchange=ikev2
ike=aes256-sha256-ecp384
esp=aes256gcm16
ikelifetime=86400s
lifetime=28800s
dpdaction=restart
auto=start

Комментарии (2)


  1. gx2
    13.11.2023 10:27

    VTI не стали делать?


    1. lioncub Автор
      13.11.2023 10:27

      Нет, смысла не вижу в данной конфигурации.