IPsec (Internet Protocol Security) — это не один протокол, а целый набор стандартов, определяющих, как защитить IP-трафик. Он включает десятки RFC-документов, охватывающих шифрование, аутентификацию, обмен ключами и управление Security Association. IPsec — основа корпоративных VPN, Site-to-Site соединений между офисами и протокола IKEv2 для мобильных устройств. При этом IPsec считается одним из самых сложных VPN-протоколов: его спецификации занимают тысячи страниц, а реализации содержат сотни тысяч строк кода. В этом справочнике — полный разбор IPsec: от фундаментальных концепций до практических аспектов настройки.
IPSec VPN: принцип работы и настройка
История 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-GCM | AEAD | 128/192/256 бит | Рекомендуется |
| AES-CBC + HMAC-SHA-256 | Шифр + MAC | 128/256 бит | Допустим |
| ChaCha20-Poly1305 | AEAD | 256 бит | Рекомендуется |
| 3DES-CBC + HMAC-SHA-1 | Шифр + MAC | 168 бит | Устарел |
| 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=addIPsec в контексте 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 бит)
Рекомендации
- IKEv2 вместо IKEv1
- AES-256-GCM или ChaCha20-Poly1305
- DH Group 14 (2048 бит) минимум, Group 19 (ECP-256) рекомендуется
- SHA-256 или SHA-384 вместо SHA-1
- Сертификаты вместо PSK
- Регулярное обновление ключей
IPsec vs. современные протоколы
IPsec по-прежнему является основой корпоративных VPN и Site-to-Site соединений. Для личного использования WireGuard и OpenVPN проще в настройке и быстрее. IKEv2/IPsec — отличный выбор для мобильных устройств благодаря MOBIKE.
Наш VPN поддерживает IKEv2/IPsec для мобильных устройств с автоматическим подключением и быстрым роумингом — идеальное решение для пользователей, которые постоянно переключаются между сетями.