Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

А чем принципиально отличается задача PSK через

 

crypto ike key

и

crypto ipsec profile \ preshared-key

?

 

Для статических туннелей "crypto ike key" работает, а задача PSK через "crypto ipsec profile \ preshared-key" нет. 

 

Во втором случае в ipsec.secrets записывается что то вида "cmap:test-tunnel : PSK "<..>" 

Про такой вариант селектора в документации стронгсвана не написано...

  • 2 недели спустя...
Опубликовано (изменено)

Разобрался где косяк (?)

Итак крипто профайл вида

crypto ipsec profile remote.domain.com
    dpd-interval 20
    identity-local fqdn local.domain.com
    match-identity-remote fqdn remote.domain.com
    authentication-local pre-share
    authentication-remote pre-share
    mode transport
    policy tun-ikev2-policy
    preshared-key ns3 <PSK>

 

Мы иницируем установку туннеля.

В момент IKE сессии передаем свое ID как local.domain.com но, начинаем вычислять на своей стороне MAC с использованием ID remote.domain.com

Mar 22 23:03:10ipsec11[IKE]   IKE_CERT_PRE task 
Mar 22 23:03:10ipsec11[IKE]   IKE_AUTH task 
Mar 22 23:03:10ipsec11[IKE] found linked key for crypto map 'test-tunnel' 
Mar 22 23:03:10ipsec11[IKE] IDx' => 22 bytes @ 0x75ef5ba0 
Mar 22 23:03:10ipsec11[IKE]    0: 02 00 00 00 XX XX XX XX XX XX XX XX XX XX XX XX  ....remote.domain 
Mar 22 23:03:10ipsec11[IKE]   16: 2E 63 6F 6D                                      .com 
Mar 22 23:03:10ipsec11[IKE] SK_p => 32 bytes @ 0x471ef8 
Mar 22 23:03:10ipsec11[IKE]    0: A2 DA A4 C6 E6 65 84 DD A6 CC CF 2E 5F 3D 36 DF  .....e......_=6. 
Mar 22 23:03:10ipsec11[IKE]   16: 89 D5 05 F3 94 A0 A9 20 36 C7 75 5F 98 F1 97 D9  ....... 6.u_.... 
Mar 22 23:03:10ipsec11[IKE] octets = message + nonce + prf(Sk_px, IDx') => 528 bytes @ 0x471418 
Mar 22 23:03:10ipsec11[IKE]    0: BD ED 37 4A 8B D9 5A 22 00 00 00 00 00 00 00 00  ..7J..Z"........ 

Что приводит к

 

Mar 22 23:03:12ipsec 15[IKE] received AUTHENTICATION_FAILED notify error

 
Если мы из профайла уберем preshared-key и опишем его как
 
crypto ike key test-key ns3 <PSK> fqdn remote.domain.com
 
То все хорошо. Мы передаем свое ID как local.domain.com и начинаем вычислять на своей стороне MAC с использованием ID local.domain.com
 
Mar 22 23:17:50ipsec03[IKE]   IKE_AUTH task 
Mar 22 23:17:50ipsec03[IKE] linked key for crypto map 'test-tunnel' is not found, still searching 
Mar 22 23:17:50ipsec03[IKE] authentication of 'local.domain.com' (myself) with pre-shared key 
Mar 22 23:17:50ipsec03[IKE] IDx' => 21 bytes @ 0x76becba0 
Mar 22 23:17:50ipsec03[IKE]    0: 02 00 00 00 XX XX XX XX XX XX XX XX XX XX XX XX  ....local.domain 
Mar 22 23:17:50ipsec03[IKE]   16: 2E 63 6F 6D                                      .com 
Mar 22 23:17:50ipsec03[IKE] SK_p => 32 bytes @ 0x8113c0 
Mar 22 23:17:50ipsec03[IKE]    0: 96 2E 4D 0C 3F D8 D8 FA 95 D8 22 7C 6C 80 73 98  ..M.?....."|l.s. 
Mar 22 23:17:50ipsec03[IKE]   16: AD E5 2B 56 F4 46 B0 22 D3 EE 1E 88 A8 11 E1 79  ..+V.F.".......y 
Mar 22 23:17:50ipsec03[IKE] octets = message + nonce + prf(Sk_px, IDx') => 528 bytes @ 0x813140 

 

В итоге

 

Mar 22 23:17:57ipsec 06[IKE] authentication of 'remote.domain.com' with pre-shared key successful

Изменено пользователем gaaronk
Опубликовано

Ну меня слишком много, но все же

psk_authenticator.c  строка 73

 

	if (key != NULL)
	{
		DBG1(DBG_IKE, "found linked key for crypto map '%s'", ike_sa_name);
	} else

 

Разве не надо перед выводом дебага сделать что то вроде

 

my_id = this->ike_sa->get_my_id(this->ike_sa);

 

Что бы потом использовать my_id при вызове (строка 91)

 

	if (!keymat->get_psk_sig(keymat, FALSE, this->ike_sa_init, this->nonce,
						key->get_key(key), my_id, this->reserved, &auth_data))

 

А то получается что если мы нашли linked key то my_id не определяется.

 

Если все это бред, то удалите топик пожалуйста.

Опубликовано

Не, все отлично, спасибо за дебаг :)

Прототип кода был написан сто лет назад (на версиях 5.3.x все работало даже вроде), но эта команда вообще никем не используется (похоже, что вы первый), потому так и не была до конца отлажена и проверена на совместимость с новыми версиями.

Дойдут руки - сделаю все нормально.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.