Туннель Libreswan (только на основе IP-адресов) не подключается к удаленному сайту.

Вопрос или проблема

Существует организация, для которой мне нужно настроить IPsec туннель.

У этой организации есть внутренний фаервол.

У меня есть виртуальная машина, которая находится за пределами организации в Интернете.

На виртуальной машине установлена AlmaLinux 9.

Я выбрал “Libreswan” в качестве своего решения для IPsec. Самое простое. Не “strongSwan”, потому что оно, по всей видимости, более сложное и не так хорошо интегрировано в RHEL, как “Libreswan”.

Я хочу, чтобы моя виртуальная машина соединялась с фаерволом.

И мы хотим построить туннель между внутренней и внешней сетью через IPsec.

Мне лично нужно настроить виртуальную машину, которая будет обеспечивать вход в туннель.

С другой стороны, то есть в организации, туннель уже был построен.

Человек, который управляет внутренним фаерволом и построил туннель для внутренней сети, дал мне следующие данные для доступа:

IKEv2 с шифрованием AES256, аутентификация SHA265 и группа Диффи-Хеллмана 14.

IPSec с теми же параметрами.

Для IKE организация установила срок действия 28800 секунд, для IPSec – 3600 секунд.

Организация использует предварительно установленный ключ, который выглядит так:

……../…………………..

Я заменил реальные символы на точки.

Еще один момент: Виртуальная машина снаружи и фаервол внутри используют только IP-адреса для IPsec, а не имена хостов или доменные имена.

IP-адрес виртуальной машины – “a.a.a.a”.

IP-адрес фаервола – “b.b.b.b”.

Подсеть внутри организации – “c.c.c.0/24”.

Моя конфигурация Libreswan внутри виртуальной машины выглядит так…

/etc/ipsec.d/your-vpn.conf:

conn your-vpn
    authby=secret
    auto=start
    ikev2=insist
    keyexchange=ike
    ike=aes256-sha256;modp2048
    phase2alg=aes256-sha256
    salifetime=3600s
    ikelifetime=28800s
    pfs=yes
    left=a.a.a.a
    [email protected]
    leftsubnet=0.0.0.0/0
    right=b.b.b.b
    [email protected]
    rightsubnet=c.c.c.0/24

Эта конфигурация не работает.

Есть различные ошибки. И сначала мне нужно выяснить, какая из ошибок является наиболее важной.

В “ipsec.conf” я установил запись “plutodebug=all”, которая на самом деле дает мне более подробную отладочную информацию.

И ошибка, которую я определил как, вероятно, наиболее важную, следующая:

“your-vpn” #1: dropping unexpected IKE_SA_INIT message containing
NO_PROPOSAL_CHOSEN notification; message payloads: N; missing
payloads: SA,KE,Ni

Я думаю, что самый важный вопрос, который я мог бы задать здесь, был бы таков:

Если кто-то с опытом работы с “Libreswan” должен был бы настроить такой туннель, с какой конфигурации бы он начал?

Является ли показанная мной конфигурация хорошей идеей? Или в ней уже есть что-то ОЧЕВИДНО неверное?

Что насчет строки IKE?

Имеет ли значение, если я введу “ike=aes256-sha256;modp2048” или “ike=aes256-sha256;dh14”? Может ли это вообще иметь значение?

Я буду очень рад получить ответы на свои вопросы.

С наилучшими пожеланиями,
user1143436

Ответ или решение

Для настройки IPsec-туннеля с использованием Libreswan и устранения проблемы, связанной с сообщением об ошибке "NO_PROPOSAL_CHOSEN", вам нужно внимательно пересмотреть конфигурацию и учесть несколько важных моментов.

1. Анализ ошибки:

Ошибка "dropped unexpected IKE_SA_INIT message containing NO_PROPOSAL_CHOSEN notification" означает, что ваша конфигурация не соответствует предложенным параметрам конфигурации на стороне организации. Это может происходить по нескольким причинам:

  • Некорректные параметры шифрования: Проверьте, что параметры шифрования, хэширования и группы Диффи-Хеллмана совпадают с теми, что были предоставлены администратором внутреннего фаервола.
  • Некорректные значения для IKE и ESP: Убедитесь, что все криптографические алгоритмы и параметры для IKEv2 правильно указаны.

2. Оптимизация конфигурации:

Ваш файл конфигурации /etc/ipsec.d/your-vpn.conf требует некоторых изменений. Например, следует учесть следующие рекомендации:

conn your-vpn
    authby=secret
    auto=start
    ikev2=insist
    keyexchange=ike
    ike=aes256-sha256;modp2048
    phase2alg=aes256-sha256
    salifetime=3600s
    ikelifetime=28800s
    pfs=yes
    left=a.a.a.a
    leftid=a.a.a.a
    leftsubnet=0.0.0.0/0
    right=b.b.b.b
    rightid=b.b.b.b
    rightsubnet=c.c.c.0/24

3. Объяснение изменений:

  • leftid и rightid: Эти параметры устанавливают идентификаторы для обеих сторон туннеля. Убедитесь, что они совпадают с IP-адресами, которые Вы используете (то есть leftid — это ваш IP-адрес, а rightid — это IP-адрес фаервола).

  • modp2048: Убедитесь, что группа Диффи-Хеллмана правильно указана. Если администратор на стороне организации использует group14, то modp2048 является правильным выбором, и эти параметры работают правильно.

  • ike/aes256-sha256: Убедитесь, что все предложенные параметры совпадают с параметрами на стороне организации. Если необходимо использовать sha265, возможно, вам потребуется уточнить, правильно ли заданы алгоритмы на обеих сторонах.

4. Проверка подлинности:

  • PreShared Key: Убедитесь, что вы правильно указали предварительный общий ключ (pre-shared key) в отдельном файле (например, в /etc/ipsec.secrets). Формат должен быть таким:
    a.a.a.a : PSK "ваш_pre_shared_key"

5. Логи и диагностика:

  • Логи: Используйте plutodebug=all, чтобы диагностировать любые проблемы, используя команду ipsec verify для проверки состояния вашей конфигурации.
  • tcpdump: Используйте tcpdump для захвата пакетов и наблюдения, идет ли трафик между вашим IP и IP-файрвола.

Заключение:

Убедитесь, что все параметры вашего IPsec-туннеля совпадают с теми, которые предоставляет организация. После внесения изменений и проверки всех параметров, перезапустите сервис Libreswan и наблюдайте за логами для любого сообщения об ошибках. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...