Корпоративный VPN на StrongSwan IKEv2: удалённый доступ без клиентов

Когда сотрудники не могут подключиться к корпоративной сети из-за отсутствия VPN-клиента на устройствах, работа останавливается. Мы настраиваем StrongSwan IKEv2 — решение, которое использует встроенные механизмы Windows, macOS, iOS и Android, поэтому дополнительное ПО не нужно. Наша команда реализует проект под ключ: от генерации сертификатов до интеграции с LDAP и последующей поддержки, обеспечивая надёжный удалённый доступ без срыва сроков.
Часто задаваемые вопросы

Мы не раз сталкивались с ситуацией, когда корпоративные пользователи не могли подключиться к VPN из-за отсутствия клиентского ПО на их ноутбуках. Однажды нам пришлось настраивать удалённый доступ для компании с 300 сотрудниками, где каждый третий работал с macOS. IKEv2 решает эту проблему: нативные клиенты Windows, macOS, iOS и Android поддерживают его из коробки — дополнительное ПО не нужно. Мы настраиваем StrongSwan — зрелую реализацию IKEv2 для Linux — с полной поддержкой EAP-аутентификации и интеграцией с корпоративным LDAP. Ниже разберём конфигурацию, типичные проблемы и процесс внедрения, который занимает от одного дня.

Почему IKEv2 StrongSwan выигрывает у OpenVPN и WireGuard?

Критерий StrongSwan (IKEv2) OpenVPN WireGuard
Нативные клиенты Windows, macOS, iOS, Android Только сторонние Встроен в Linux, iOS/Android через приложение
Производительность Высокая (аппаратное ускорение AES) Средняя Очень высокая
Аутентификация EAP-MSCHAPv2, сертификаты, RADIUS, LDAP Сертификаты, логин/пароль Предварительный ключ
Сложность настройки Средняя (требуется PKI) Высокая (OpenSSL) Низкая

Для корпоративного удалённого доступа с сотнями пользователей StrongSwan удобнее: не нужно устанавливать клиент, а аутентификацию можно централизовать через RADIUS и LDAP. Это снижает нагрузку на службу поддержки — пользователи подключаются сами, без привлечения администратора.

Пошаговая настройка StrongSwan: 4 шага

Шаг 1. Установка и создание сертификатов

Устанавливаем StrongSwan и утилиты PKI, затем создаём собственный CA и сертификат сервера. CN сертификата должен совпадать с публичным FQDN или IP сервера.

apt install strongswan strongswan-pki libcharon-extra-plugins
# CA
pki --gen --type rsa --size 4096 --outform pem > /etc/ipsec.d/private/ca.key
pki --self --ca --lifetime 3650 --in /etc/ipsec.d/private/ca.key \
    --dn "CN=VPN CA, O=Example Corp" \
    --outform pem > /etc/ipsec.d/cacerts/ca.crt
# Сертификат сервера (с флагами serverAuth и ikeIntermediate)
pki --gen --type rsa --size 2048 --outform pem > /etc/ipsec.d/private/server.key
pki --pub --in /etc/ipsec.d/private/server.key | \
    pki --issue --lifetime 730 \
    --cacert /etc/ipsec.d/cacerts/ca.crt \
    --cakey /etc/ipsec.d/private/ca.key \
    --dn "CN=vpn.example.com" \
    --san vpn.example.com \
    --flag serverAuth \
    --flag ikeIntermediate \
    --outform pem > /etc/ipsec.d/certs/server.crt

Шаг 2. Конфигурация через swanctl

С версии StrongSwan 5.7+ используем swanctl.conf. Пример с EAP-MSCHAPv2 и пулом адресов для 250 клиентов:

# /etc/swanctl/swanctl.conf
authorities {
  vpn-ca {
    cacert = ca.crt
  }
}
connections {
  ikev2-eap {
    version = 2
    proposals = aes256gcm16-sha256-ecp256,aes256-sha256-modp2048
    local_addrs = %any
    remote_addrs = %any
    local {
      auth = pubkey;
      certs = server.crt;
      id = vpn.example.com
    }
    remote {
      auth = eap-mschapv2;
      eap_id = %any
    }
    children {
      ikev2-eap {
        local_ts = 0.0.0.0/0
        remote_ts = dynamic
        dpd_action = clear
        esp_proposals = aes256gcm16-sha256,aes256-sha256
      }
    }
    pools = vpn-pool
    dpd_delay = 30s
    send_cert = always
  }
}
pools {
  vpn-pool {
    addrs = 10.20.0.0/24;
    dns = 10.0.0.1, 8.8.8.8
  }
}
secrets {
  eap-user1 {
    id = user1;
    secret = "UserPassword123"
  }
  eap-user2 {
    id = user2;
    secret = "AnotherPassword"
  }
}

Загружаем конфигурацию без перезапуска: swanctl --load-all.

Шаг 3. Настройка файрвола и IP forwarding

iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A FORWARD -s 10.20.0.0/24 -j ACCEPT
iptables -A FORWARD -d 10.20.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o ens3 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

Не забудьте сохранить правила: iptables-save > /etc/iptables/rules.v4. StrongSwan корректно обрабатывает NAT-T, что важно для клиентов за NAT.

Шаг 4. Аутентификация через LDAP/RADIUS

Для больших инфраструктур (500+ пользователей) подключаем FreeRADIUS с LDAP-бэкендом:

# /etc/strongswan.d/charon/eap-radius.conf
eap-radius {
  servers {
    primary {
      address = 10.0.0.5;
      secret = radius_shared_secret
    }
  }
}

В коннекшене меняем remote { auth = eap-radius }. Все пользователи аутентифицируются через центральный каталог — AD или OpenLDAP.

Как интегрировать StrongSwan с Active Directory?

Интеграция с Active Directory реализуется через RADIUS-прокси, как показано в шаге 4. FreeRADIUS обращается к LDAP (AD) и возвращает результат StrongSwan. Дополнительно можно настроить автоматическую выдачу сертификатов через Microsoft NDES или через собственный CA с групповыми политиками. Это позволяет подключать пользователей без ввода пароля — только по сертификату, выпущенному корпоративным ЦС.

Как настроить нативные клиенты?

Windows 10/11: Параметры → VPN → Добавить VPN-подключение → IKEv2. Тип входа: имя пользователя и пароль. Перед этим импортируйте ca.crt в хранилище «Доверенные корневые центры сертификации» (certmgr.msc).

macOS/iOS: Настройки → VPN → IKEv2. CA-сертификат установите через профиль (Apple Configurator или вручную).

Android: Нативный IKEv2 (Android 11+) или приложение StrongSwan.

Какие типичные ошибки возникают при настройке IKEv2?

Самая частая — Windows не соединяется. Детальный лог переговоров помогает быстро найти причину:

swanctl --log journalctl -u strongswan -f 

Почти всегда причина: сертификат сервера не содержит iKEIntermediate в Extended Key Usage, или корневой CA не добавлен в доверенные на клиенте. Проверьте chain и повторите импорт ca.crt. Вторая по частоте — несовпадение идентификатора сервера (CN или SAN) с адресом, который вводит клиент. Третья — блокировка портов UDP 500 и 4500 файрволом. Время диагностики — не более 30 минут.

Что входит в работу?

  • Настроенный сервер StrongSwan с сертификатами и пулом пользователей
  • Правила файрвола и скрипты автоматизации
  • Инструкции для подключения нативных клиентов (Windows, macOS, iOS, Android)
  • Интеграция с LDAP/RADIUS (опционально)
  • Тестирование и передача документации

Мониторинг активных подключений

Для контроля количества одновременных сессий можно использовать метрики Prometheus через StrongSwan IPsec pki. Экспортёр собирает данные о состоянии туннелей и загрузке CPU. Мы гарантируем, что после настройки вы будете видеть прозрачную картину соединений.

Сроки и стоимость

Этап Срок
Развёртывание сервера + PKI + тест с нативными клиентами от 1 дня
Интеграция LDAP/RADIUS +0.5–1 день
MDM-профили для корпоративных устройств +0.5 дня

Стоимость рассчитывается индивидуально после аудита инфраструктуры. Закажите настройку VPN — получите готовое решение за 1-2 дня. Получите консультацию инженера по настройке StrongSwan. Свяжитесь с нами: оценим проект за один день. Внедрение окупается за счёт снижения затрат на поддержку клиентских приложений и упрощения подключения новых сотрудников.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142