Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

COOKIE_REQUIRED Сетевое оборудование и VPN

IPsec Error COOKIE_REQUIRED: запрос защиты от DoS атак через IKEv2 Cookies

Обновлено: 24.08.2026 · Официальная документация ↗

При инициализации подключения к высоконагруженному шлюзу VPN наблюдаются задержки:

  • В логах клиента фиксируется сообщение: received COOKIE_REQUIRED notify error, repeating IKE_SA_INIT with cookie payload.
  • Увеличение времени установления туннеля (требуется 4 пакета вместо 2 в Фазе 1).
  • Некоторые клиенты со старыми реализациями IPsec не могут подключиться и падают с таймаутом.

1. Механизм защиты IKEv2 Cookie (RFC 7296 Section 2.6)

Для защиты от DoS-атак с подделкой IP-адреса отправителя (IP Spoofing) шлюз-ответчик при превышении порога полуоткрытых соединений отказывается выполнять ресурсоемкие операции вычисления ключей Диффи-Хеллмана. Вместо ответа IKE_SA_INIT он отправляет легкое уведомление COOKIE_REQUIRED (Notify 1), содержащее криптографический хеш (Cookie). Инициатор обязан повторить исходный запрос, включив полученную Cookie без изменений. Это гарантирует, что IP-адрес инициатора реален и доступен по маршруту.

2. Анализ логов обмена Cookie

# Лог strongSwan на стороне инициатора
[IKE] peer requested cookie exchange
[IKE] re-initiating IKE_SA_INIT with cookie: 7f8a9b...
[IKE] IKE_SA established successfully

3. Настройка порогов активации Cookie на сервере (strongSwan)

Отредактируйте /etc/strongswan.d/charon.conf:

charon {
    # Порог полуоткрытых сессий для активации механизма Cookie
    # Значение 0 = включен всегда, 10 = активировать при 10 сессиях в очереди
    cookie_threshold = 30
    
    # Секретный ключ для генерации хешей (ротируется автоматически)
    # dos_protection = yes
}

4. Настройка Cisco ASA / Firepower

# Настройка защиты от IKE DoS на Cisco ASA
crypto ikev2 limit max-half-open 100
crypto ikev2 cookie-challenge 50

5. Траблшутинг клиентов, не поддерживающих Cookie

Если устаревший клиент не умеет обрабатывать Cookie, временно увеличьте cookie_threshold на сервере, чтобы исключить генерацию запроса при нормальной нагрузке.

💡 Практика специалистов: Никогда не отключайте защиту dos_protection полностью на публичных серверах доступа (Remote Access). Без механизма IKEv2 Cookies сервер можно легко вывести из строя простой UDP-атакой с поддельных IP-адресов.

Частые вопросы (FAQ)

Является ли статус COOKIE_REQUIRED фатальной ошибкой?

Нет. Это штатная процедура подтверждения легитимности IP-адреса инициатора (Handshake challenge). Если клиент поддерживает RFC 7296, он автоматически отправляет повторный запрос и туннель поднимается.

Почему соединение падает, если ответ COOKIE_REQUIRED приходит на клиент?

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

Как рассчитывается Cookie шлюзом?

Cookie вычисляется как HMAC(Secret, Initiator_SPI | Initiator_IP), что позволяет шлюзу проверять входящие ответы абсолютно без сохранения состояния (Stateless) в памяти.

Может ли промежуточный файрвол блокировать обмен с Cookie?

Да, если файрвол проверяет строгое количество пакетов в транзакции IKE (Stateful Inspection) и не ожидает повторной инициализации пакета IKE_SA_INIT.

Полезные материалы
Рекомендуем