Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Alt26.Alt16. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

IPsec

2018-07-06 · Posted in Tunnel, РЕГЛАМЕНТ

Pfsense → Firewall → Aliases → IP → Add IP of VPN sites
Pfsense → Firewall → Rules → WAN → Add sourse alias VPN sites, Destination “WAN adress” 500 port UDP

Шифрованный туннель:

Phase1

IKE – V2
Mode – main
P1 Encryption Algorithms – AES128
P1 Hash Algorithms – SHA256
P1 PFS key group – 19
Lifetime (Seconds) – 28800

Phase2

Mode – tunnel
P2 Protocol – ESP
P2 Encryption Algorithms – AES128
P2 Hash Algorithms – SHA256
P2 PFS key group – 19
Lifetime (Seconds) – 3600

Шифрованный туннель для старого оборудования:

Phase1

IKE – V1
Mode – main
P1 Encryption Algorithms – AES128
P1 Hash Algorithms – SHA1
P1 PFS key group – 2
Lifetime (Seconds) – 28800

Phase2

Mode – tunnel
P2 Protocol – ESP
P2 Encryption Algorithms – AES128
P2 Hash Algorithms – SHA1
P2 PFS key group – 2
Lifetime (Seconds) – 3600

Нешифрованный туннель:

Phase1

IKE – V1
Mode – main
P1 Encryption Algorithms – AES128
P1 Hash Algorithms – SHA1
P1 PFS key group – 2 (1024 bit)
Lifetime (Seconds) – 28800

Phase2

Mode – tunnel
P2 Protocol – AH
P2 Hash Algorithms – SHA1
Lifetime (Seconds) – 3600

Практические советы для лучшей совместимости:

1)Порядок предложений (proposals) и fallback

Ставь несколько наборов последовательно:

  • AES128/SHA256/DH19
  • AES128/SHA256/DH14
  • AES128/SHA1/DH2 (legacy, только если нужно)

2)IKEv2, если можно

Он лучше переживает роуминг/смену сетей и NAT, меньше разрывов у мобильных клиентов.

3)PFS группа = как в Phase1 (по возможности)

Так меньше несовместимостей. Если peer ругается — убери PFS или понизь до DH14.

4)Lifetimes

Практичный стандарт: P1 = 86400s, P2 = 3600s. Если слабый CPU и постоянные переустановки SA — можно поднять P2 до 8 000–14 400s.

5)NAT-T

Открой UDP 4500 и 500 на обоих концах. На CPE-роутерах иногда помогает отключить SIP-ALG/похожие ALG.

6)Аутентификация

Лучше сертификаты (RSA/ECDSA) вместо общего PSK.
Если PSK — только длинные и случайные.
Для мобильных — IKEv2 + EAP (EAP-TLS/EAP-MSCHAPv2).

7)Mikrotik старых версий

Часто нет ECC-групп → сразу ставь DH14, AES-128/256, SHA-256.

8)Windows L2TP/IPsec

Исторически любит IKEv1 Main Mode, иногда по умолчанию SHA-1/DH2. Задай руками SHA-256/DH14, если клиент поддерживает.

Что выбрать по скорости и совместимости:

  • Для максимальной совместимости (разные устройства, в т.ч. старые Cisco/Windows 2008/Android):
    Group 2 (1024-bit), но это устарело и небезопасно. Использовать только если иначе туннель не поднимается.
  • Оптимум сегодня (баланс скорость/безопасность):
    Group 14 (2048-bit MODP) — поддерживается почти всеми современными системами, безопасно для 2025 года.
  • Если все устройства новые (Cisco ASA 9.x+, pfSense 2.5+, Windows Server 2016+, современные клиенты):
    Group 19 (ECC 256-bit) — быстрее, чем 2048-bit, и безопаснее.
  • Group 20/21 — редко нужны, только для high-security (гос, финансы, спецпроекты).

Практические рекомендации

  • AES-256 vs AES-128 → разница по скорости на CPU без AES-NI ощутимая. Если у тебя есть аппаратное ускорение AES (Intel AES-NI, AMD, Cisco ASA с crypto-модулем) — бери AES-256.
  • SHA-256 → оптимум, SHA-512 иногда медленнее, SHA-1 небезопасен.
  • DH Group 19 (ECC-256) → быстрее и безопаснее, чем Group 14. Но старые клиенты могут не поддерживать.
  • IKEv2 предпочтительнее IKEv1, особенно для мобильных клиентов (iOS, Android, Windows 10/11).

IPsec (IP security):

набор протоколов для безопасной передачи трафика через IP сеть. Пожалуй, самый сложный и разветвленный стек протоколов из поддерживаемых системой VPNKI.
Включает в себя три основных протокола:

  • AH (Authentication Header). Обеспечивает управление целостностью передаваемых данных и аутентификацию.
  • ESP (Encapsulating Security Payload). Обеспечивает шифрование данных.
  • ISAKMP (Internet Security Association and Key Management Protocol). Управление установкой соединения, взаимную аутентификации конечными узлами друг друга и обмен секретными ключами.

Основные используемые порты и номера протоколов.

  • Протокол UDP, port 500 (IKE, управление ключами).
  • Протокол UDP, port 4500 (IPSEC NAT-Traversal mode).
  • Протокол ESP, значение 50 (for IPSEC).
  • Протокол AH, значение 51 (for IPSEC).

Вообще, набор протоколов IPsec непрост с точки зрения возможностей его использования, которые весьма многогранны. Однако, базовой особенностью всего взаимодействия по этому протоколу является понятие SA (Security Association). SA это набор параметров о том, как стороны будут в дальнейшем использовать те или иные свойства протоколов из состава IPsec. Если стороны договорились о чем-то, то будет считаться что SA установлена.
Стоит еще упомянуть про два основных режима работы  IPsec – туннельный и транспортный. Грубо говоря, в транспортном режиме шифруются только полезные данные IP пакета, а в туннельном режиме шифруются все данные, включая заголовки IP.

Аутентификация

Взаимодействие двух узлов начинается с установления SA. Точнее с двух ассоциаций – для протокола AH и ESP причем в одну и в другую стороны. SA начинается с аутентификации и затем стороны согласовывают будущие параметры сессии:

  • для протокола AH – используемый алгоритм аутентификации, ключи, время жизни ключей и другие параметры.
  • для протокола ESP – алгоритмы шифрования и аутентификации, ключи, параметры инициализации, время жизни ключей и другие параметры.

Здесь же стороны договариваются о туннельном или транспортном режиме работы IPsec.
К завершению процесса у вас должны быть установлены несколько SA, но … чуть подробнее как это на самом деле.

Фаза 1 и Фаза 2

В IPsec все происходит по Фазам.
На фазе 1 происходит установление SA первой фазы. В первой фазе стороны договариваются о методе идентификации, алгоритме шифрования, алгоритме хэшировнаия и группе Diffie Hellman. Эта фаза может пройти путем обмена тремя нешифрованными пакетами (агрессивный режим) или шестью нешифрованными пакетами – стандартный режим. Если все прошло успешно, то создается SA фазы 1 под названием IKE SA и осуществляется переход ко второй фазе.
На фазе 2 стороны договариваются о политике и создаются сами ключи. Эта фаза, в отличии от первой, полностью шифруется и она наступает только в случае успешного окончания первой фазы. В связи с тем, что трафик этой фазы полностью шифрован становится сложно осуществлять поиск неполадок. Однако если все прошло успешно, то создается SA фазы 2 под названием IPSec SA. В этот момент можно сказать, что VPN туннель установлен.

Компрессия данных

В составе IPsec нет собственного механизма компрессии данных, однако можно использовать механизм IPcomp. Он сжимает содержимое IP пакета до его передачи в процесс IPsec. Некоторые демоны IPsec поддерживают включение/отключение этого механизма из файлов настроек ipsec.conf (например пакет Strongswan).

Автоматическая проверка работоспособности VPN соединения

Внутри IPsec нет штатного средства для проверки работоспособности соединения (типа ping). Работу туннеля можно проверять внешними средствами.

Разрыв VPN соединения и смена ключей

Согласованные на двух фазах ключи должны работать оговоренное политикой время. Это означает, что сторонам возможно предстоит пережить процедуру смены ключей (rekeying), а иначе согласованные SA распадутся. Как было сказано выше, у сторон есть ключи в рамках процесса фазы 1 (IKE) и фазы 2 (IPsec). Процедуры их смены различны, как и таймеры, которые за это отвечают. Для того, чтобы не было перерыва связи в процессе смены ключей стороны сначала согласовывают параметры новой SA и лишь после этой успешной процедуры уничтожают старую SA.
В IPsec на каждой из фаз есть несколько способов смены ключей – с аутентификацией или без нее, но мы не будем сильно заострять на этом свое внимание. Просто для этой процедуры слишком существует много нюансов, которые зависят от версий ПО и соотношения таймеров – для IKE и IPsec.

Автоматическое установление разорванного VPN соединения

Важным аспектом является способность IPsec устанавливать соединение заново. Для этого существуют настройки в ispec.conf, однако детали этих настроек могут отличаться от версии ПО. Сверяйтесь с мануалом именно по вашей версии программного обеспечения.

Плюсы:
  • высокая криптоустойчивость.
  • возможность использования L2TP внутри IPsec для аутентификации по имени пользователя и паролю (вариант VPNKI).
Минусы:
  • сложен для настройки и поиска неисправностей.
  • большие накладные расходы на передачу трафика в канале за счет заголовков.

Leave a Reply