IPSec VPN: принцип работы и настройка

IPsec (Internet Protocol Security) — это не один протокол, а целый набор стандартов, определяющих, как защитить IP-трафик. Он включает десятки RFC-документов, охватывающих шифрование, аутентификацию, обмен ключами и управление Security Association. IPsec — основа корпоративных VPN, Site-to-Site соединений между офисами и протокола IKEv2 для мобильных устройств. При этом IPsec считается одним из самых сложных VPN-протоколов: его спецификации занимают тысячи страниц, а реализации содержат сотни тысяч строк кода. В этом справочнике — полный разбор IPsec: от фундаментальных концепций до практических аспектов настройки.

История IPsec

Зарождение (1992–1995)

IPsec начался как попытка добавить защиту на сетевой уровень (Layer 3) модели OSI. В 1992 году IETF создала рабочую группу IP Security Protocol (IPSEC) для разработки стандартов защиты IP-трафика. К 1995 году были опубликованы первые RFC:

  • RFC 1825 (1995) — Security Architecture for IP
  • RFC 1826 (1995) — IP Authentication Header
  • RFC 1827 (1995) — IP Encapsulating Security Payload

Стандартизация (1998–2005)

  • RFC 2401 (1998) — обновлённая архитектура IPsec
  • RFC 2402 (1998) — Authentication Header (AH)
  • RFC 2406 (1998) — Encapsulating Security Payload (ESP)
  • RFC 2409 (1998) — IKEv1 (Internet Key Exchange version 1)
  • RFC 4301 (2005) — обновлённая архитектура IPsec
  • RFC 4306 (2005) — IKEv2 (Internet Key Exchange version 2)

Современность (2010–2026)

IPsec продолжает развиваться. IKEv2 стал основным протоколом обмена ключами в современных VPN. Поддержка AES-GCM, ECDH, Curve25519. IPsec встроен в iOS, macOS, Windows, Android и все enterprise VPN-решения.

Архитектура IPsec

Компоненты

1. Security Association (SA)

SA — это набор параметров, определяющих, как обрабатывается защищённый трафик: - Алгоритм шифрования (AES-256-GCM) - Ключи шифрования - Время жизни SA - Режим (транспортный или туннельный) - IP-адреса пиров

SA однонаправленна: для двустороннего соединения нужны две SA — одна для исходящего трафика, другая для входящего.

2. IKE (Internet Key Exchange)

Протокол обмена ключами и управления SA: - IKEv1 (устаревший, но всё ещё используется) - IKEv2 (современный, рекомендуемый)

3. ESP (Encapsulating Security Payload)

Протокол, обеспечивающий: - Шифрование данных (конфиденциальность) - Аутентификацию данных (целостность и подлинность) - Защиту от replay-атак

4. AH (Authentication Header)

Протокол, обеспечивающий только аутентификацию (без шифрования): - Целостность данных - Подлинность источника - Защита от replay-атак

AH практически не используется в современных VPN, потому что ESP обеспечивает и шифрование, и аутентификацию.

Режимы работы

Транспортный режим (Transport Mode)

Шифруется только полезная нагрузка IP-пакета (payload), заголовок IP остаётся открытым:

[IP заголовок][ESP заголовок][Зашифрованные данные][ESP trailer][ESP аутентификация]

Используется для: - Host-to-Host соединений (компьютер → компьютер) - L2TP/IPsec (L2TP-туннель поверх IPsec транспорта)

Туннельный режим (Tunnel Mode)

Шифруется весь оригинальный IP-пакет, включая заголовок. Создаётся новый IP-заголовок:

[Новый IP заголовок][ESP заголовок][Зашифрованный оригинальный IP пакет][ESP trailer][ESP аутентификация]

Используется для: - Site-to-Site VPN (соединение офисов) - Remote Access VPN (удалённый доступ) - IKEv2 VPN (мобильные устройства)

ESP (Encapsulating Security Payload)

Структура ESP-пакета

[ESP Header][Payload (зашифрованный)][ESP Trailer][ESP Auth]
  • ESP Header: SPI (Security Parameters Index) + Sequence Number
  • Payload: зашифрованные данные
  • ESP Trailer: Padding, Pad Length, Next Header
  • ESP Auth: аутентификационная метка (ICV — Integrity Check Value)

Алгоритмы шифрования ESP

АлгоритмТипДлина ключаСтатус
AES-GCMAEAD128/192/256 битРекомендуется
AES-CBC + HMAC-SHA-256Шифр + MAC128/256 битДопустим
ChaCha20-Poly1305AEAD256 битРекомендуется
3DES-CBC + HMAC-SHA-1Шифр + MAC168 битУстарел
NULLНет шифрования—Только для AH-замены

AEAD vs. Шифр + MAC

AEAD (Authenticated Encryption with Associated Data): - Одна операция: и шифрование, и аутентификация - Быстрее: один проход данных - Пример: AES-256-GCM, ChaCha20-Poly1305

Шифр + MAC (Encrypt-then-MAC): - Две операции: сначала шифрование, потом аутентификация - Медленнее: два прохода данных - Пример: AES-256-CBC + HMAC-SHA-256

IKE (Internet Key Exchange)

IKEv1

IKEv1 (RFC 2409, 1998) — первый протокол обмена ключами для IPsec.

Phase 1 (Main Mode или Aggressive Mode): - Установление ISAKMP SA - Обмен ключами DH - Аутентификация (сертификаты или PSK)

Phase 2 (Quick Mode): - Установление IPsec SA - Согласование алгоритмов ESP - Обмен ключами для шифрования данных

Проблемы IKEv1: - Aggressive Mode уязвим для offline brute-force - Сложная спецификация с множеством опций - Нет встроенной поддержки MOBIKE (мобильность) - Известные уязвимости (CVE-2002-1119, CVE-2005-3733)

IKEv2

IKEv2 (RFC 7296, 2014) — современный протокол обмена ключами.

Преимущества над IKEv1: - Встроенная поддержка MOBIKE (мобильность и multihoming) - Встроенная поддержка EAP (Extensible Authentication Protocol) - Встроенная фрагментация - Устойчивость к DoS-атакам - Упрощённая спецификация - Более быстрое восстановление соединения

Фазы IKEv2: 1. IKE_SA_INIT: обмен DH, согласование алгоритмов 2. IKE_AUTH: аутентификация, установление Child SA

Всего 4 сообщения для установления полного VPN-соединения (vs. 6+ для IKEv1 Main Mode).

EAP в IKEv2

IKEv2 поддерживает EAP (Extensible Authentication Protocol), что позволяет использовать: - EAP-MSCHAPv2 (логин/пароль) - EAP-TLS (сертификаты) - EAP-TTLS (сертификат + логин/пароль) - EAP-PEAP (Protected EAP)

Это делает IKEv2 гибким для корпоративных VPN с различными методами аутентификации.

Настройка IPsec VPN

Site-to-Site VPN (StrongSwan)

# Установка
sudo apt install strongswan

# Конфигурация /etc/ipsec.conf
config setup
    charondebug="ike 2, knl 2, cfg 2"

conn site-to-site
    type=tunnel
    left=192.168.1.1          # Локальный IP
    leftsubnet=192.168.1.0/24 # Локальная подсеть
    right=203.0.113.1          # Удалённый IP
    rightsubnet=192.168.2.0/24 # Удалённая подсеть
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256!
    authby=secret
    keyexchange=ikev2
    auto=start

# Секрет /etc/ipsec.secrets
192.168.1.1 203.0.113.1 : PSK "ваш-общий-ключ"

Remote Access VPN (IKEv2, StrongSwan)

# Конфигурация /etc/ipsec.conf
conn ikev2-vpn
    type=tunnel
    left=%defaultroute
    leftcert=server.crt
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightauth=eap-mschapv2
    rightsourceip=10.10.10.0/24
    rightdns=1.1.1.1
    rightsendcert=never
    eap_identity=%identity
    keyexchange=ikev2
    auto=add

IPsec в контексте VPN

IPsec + L2TP

L2TP/IPsec — классическая комбинация для удалённого доступа: - IPsec обеспечивает шифрование и аутентификацию - L2TP обеспечивает туннелирование PPP - Работает на всех устройствах без установки ПО

IKEv2/IPsec (standalone)

IKEv2 без L2TP — современный подход: - IKEv2 обеспечивает обмен ключами и аутентификацию - ESP обеспечивает шифрование данных - Нет лишней инкапсуляции L2TP → быстрее - MOBIKE обеспечивает роуминг

IPsec в WireGuard контексте

WireGuard не использует IPsec. Это отдельный протокол с собственной криптографией (Noise framework). WireGuard был создан как альтернатива IPsec — проще, быстрее, безопаснее.

Безопасность IPsec

Известные уязвимости

CVE-2002-1119 — атака на IKEv1 Aggressive Mode с PSK CVE-2005-3733 — уязвимость в IKEv1, позволяющая DoS CVE-2016-5361 — уязвимость в StrongSwan Heartbleed (CVE-2014-0160) — затрагивала OpenSSL, используемый в некоторых IPsec реализациях

NSA и IPsec

Документы Сноудена (2013) показали, что NSA тратит значительные ресурсы на взлом IPsec-соединений. Рекомендации: - Используйте IKEv2 вместо IKEv1 - Используйте AES-256-GCM вместо AES-CBC - Используйте PFS (DH Groups 14+) - Избегайте DH Group 1 (768 бит) и Group 2 (1024 бит)

Рекомендации

  1. IKEv2 вместо IKEv1
  2. AES-256-GCM или ChaCha20-Poly1305
  3. DH Group 14 (2048 бит) минимум, Group 19 (ECP-256) рекомендуется
  4. SHA-256 или SHA-384 вместо SHA-1
  5. Сертификаты вместо PSK
  6. Регулярное обновление ключей

IPsec vs. современные протоколы

IPsec по-прежнему является основой корпоративных VPN и Site-to-Site соединений. Для личного использования WireGuard и OpenVPN проще в настройке и быстрее. IKEv2/IPsec — отличный выбор для мобильных устройств благодаря MOBIKE.

Наш VPN поддерживает IKEv2/IPsec для мобильных устройств с автоматическим подключением и быстрым роумингом — идеальное решение для пользователей, которые постоянно переключаются между сетями.