RSA Keys - RSA ключи для аутентификации VPN

Обзор RSA-аутентификации для VPN

RSA-аутентификация представляет собой криптографический метод проверки подлинности для IPsec VPN туннелей в VyOS. В отличие от Pre-Shared Key (PSK) аутентификации, RSA использует асимметричную криптографию с парой публичного и приватного ключей, что обеспечивает повышенную безопасность и гибкость при настройке VPN-соединений.

Основные преимущества RSA-аутентификации

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

  • Приватный ключ никогда не передается по сети
  • Исключается риск компрометации единого общего ключа (PSK)
  • Невозможность подбора ключа методом перебора
  • Поддержка криптостойких ключей длиной 2048-4096 бит

Масштабируемость:

  • Упрощенное управление ключами в больших сетях
  • Не требуется изменение конфигурации при добавлении новых узлов (Hub-and-Spoke)
  • Централизованное управление публичными ключами
  • Легкая ротация ключей без изменения всей инфраструктуры

Гибкость:

  • Поддержка динамических IP-адресов (Dynamic IP)
  • Возможность использования доменных имен для идентификации
  • Совместимость с различными топологиями (Site-to-Site, Hub-and-Spoke, Full-Mesh)
  • Интеграция с PKI инфраструктурой

Принцип работы RSA-аутентификации

RSA-аутентификация в IPsec VPN основана на следующих принципах:

  1. Генерация ключевой пары: Каждый VPN-узел генерирует уникальную пару ключей (публичный и приватный)
  2. Обмен публичными ключами: Публичные ключи безопасно обмениваются между узлами
  3. IKE Phase 1: При установлении туннеля происходит взаимная аутентификация с использованием RSA-подписей
  4. Проверка подлинности: Каждая сторона проверяет подлинность удаленного узла с помощью его публичного ключа
  5. Установление туннеля: После успешной аутентификации устанавливается защищенный IPsec туннель

Архитектурные сценарии использования

Site-to-Site VPN:

  • Соединение двух офисов или дата-центров
  • Статические или динамические IP-адреса
  • Взаимная аутентификация обоих концов туннеля

Hub-and-Spoke VPN:

  • Центральный офис (Hub) с несколькими филиалами (Spokes)
  • Hub имеет статический IP, Spokes могут иметь динамические IP
  • Централизованное управление ключами на Hub

Full-Mesh VPN:

  • Множественные узлы, каждый соединен с каждым
  • Требуется обмен публичными ключами между всеми узлами
  • Оптимальная маршрутизация трафика без транзитных узлов

Генерация ключевой пары RSA

Базовая генерация ключей

VyOS использует встроенную PKI (Public Key Infrastructure) подсистему для управления ключами. Генерация RSA ключевой пары выполняется командой:

generate pki key-pair install <key-pair-name>

Параметры генерации:

  • <key-pair-name> — уникальное имя ключевой пары для идентификации в конфигурации
  • По умолчанию генерируется RSA ключ длиной 2048 бит
  • Система предложит установить пароль для шифрования приватного ключа (опционально)

Пример генерации ключа:

vyos@router1:~$ generate pki key-pair install router1-key
Enter private key passphrase:
Retype private key passphrase:
Private key stored as 'router1-key'

Генерация ключей с расширенными параметрами

Выбор длины ключа:

VyOS поддерживает различную длину RSA ключей. Для генерации ключа определенной длины используйте команду:

generate pki key-pair type rsa length <bit-length> install <key-pair-name>

Рекомендуемые длины ключей:

  • 2048 бит: Базовый уровень безопасности, быстрая обработка
  • 3072 бита: Повышенная безопасность для корпоративных сетей
  • 4096 бит: Максимальная безопасность для критичных систем

Пример генерации ключа 4096 бит:

vyos@router1:~$ generate pki key-pair type rsa length 4096 install router1-key-4096
Enter private key passphrase:
Retype private key passphrase:
Private key stored as 'router1-key-4096'

Генерация без шифрования приватного ключа

Для автоматизированных систем или тестовых окружений можно сгенерировать ключ без пароля:

generate pki key-pair install <key-pair-name> no-password

Важно: Незашифрованные приватные ключи представляют угрозу безопасности. Используйте этот вариант только в изолированных тестовых средах.

Просмотр сгенерированных ключей

Просмотр публичного ключа:

show pki key-pair <key-pair-name> public

Пример вывода:

vyos@router1:~$ show pki key-pair router1-key public
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw1qHLMXLMbz0Z0X+YoXr
+vRkZJmBYRf3UqL6QgPPExRsG5gN7j8FqXqVLxFZZQ9PVnQ4/BgL1JGsZWx2OcDr
... (остальная часть ключа) ...
-----END PUBLIC KEY-----

Просмотр приватного ключа:

show pki key-pair <key-pair-name> private

Внимание: Приватный ключ должен храниться в секрете. Никогда не передавайте приватный ключ третьим лицам.

Сохранение ключей в файлы

Для обмена публичными ключами или резервного копирования можно экспортировать ключи в файлы:

show pki key-pair router1-key public | save /config/router1-public.key
show pki key-pair router1-key private | save /config/router1-private.key

Обмен публичными ключами между маршрутизаторами

Процесс обмена ключами

Для установления RSA-аутентифицированного VPN туннеля необходимо обменяться публичными ключами между маршрутизаторами:

  1. Экспорт публичного ключа с Router1:
vyos@router1:~$ show pki key-pair router1-key public
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw1qHLMXLMbz0Z0X+YoXr
+vRkZJmBYRf3UqL6QgPPExRsG5gN7j8FqXqVLxFZZQ9PVnQ4/BgL1JGsZWx2OcDr
K4Hd8XYzLmH5cN3vQ4FGBfQWx2yL8oPxRnE9K5vFmZqL8rN4TpWx6Q8vL2nR5F7K
... (полный публичный ключ) ...
-----END PUBLIC KEY-----
  1. Импорт публичного ключа на Router2:

Скопируйте весь текст публичного ключа и импортируйте его на второй маршрутизатор:

vyos@router2# set pki key-pair router1-remote public key '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw1qHLMXLMbz0Z0X+YoXr
... (весь публичный ключ одной строкой или построчно) ...
-----END PUBLIC KEY-----'
  1. Повторите процесс для Router2:

Аналогично экспортируйте публичный ключ Router2 и импортируйте на Router1.

Альтернативный метод: Импорт через файл

На Router1 (экспорт):

vyos@router1:~$ show pki key-pair router1-key public | save /config/router1-public.key

Передача файла:

Скопируйте файл /config/router1-public.key на Router2 любым безопасным способом (SCP, USB, безопасный канал).

На Router2 (импорт):

vyos@router2# loadkey pki key-pair router1-remote public /tmp/router1-public.key

Или вручную через конфигурацию:

vyos@router2# set pki key-pair router1-remote
vyos@router2# loadkey pki key-pair router1-remote public /tmp/router1-public.key
vyos@router2# commit

Проверка импортированных ключей

Просмотр всех ключевых пар:

show pki key-pair

Вывод:

Key Pair Name    Type    Comment
---------------  ------  ---------
router1-key      rsa     Local key
router2-remote   rsa     Remote peer key

Просмотр конкретного публичного ключа:

show pki key-pair router2-remote public

Управление публичными и приватными ключами

Структура хранения ключей в VyOS

Ключи в VyOS хранятся в конфигурации под узлом pki:

pki {
    key-pair router1-key {
        private {
            key "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K..."
        }
        public {
            key "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5C..."
        }
    }
    key-pair router2-remote {
        public {
            key "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5C..."
        }
    }
}

Важно:

  • Локальные ключевые пары содержат и public, и private части
  • Удаленные ключи содержат только public часть
  • Ключи хранятся в Base64 кодировке

Добавление публичного ключа удаленного узла

Через командную строку:

configure
set pki key-pair <remote-key-name> public key '<публичный ключ>'
commit
save

Пример:

vyos@router1# set pki key-pair yc-datacenter-remote public key '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2pL5Hx7vN4Zm...
-----END PUBLIC KEY-----'
vyos@router1# commit
vyos@router1# save

Удаление ключевой пары

Удаление всей ключевой пары:

configure
delete pki key-pair <key-pair-name>
commit
save

Удаление только публичного ключа:

configure
delete pki key-pair <key-pair-name> public
commit
save

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

Ротация ключей

Регулярная ротация ключей повышает безопасность. Процесс ротации:

  1. Генерация новой ключевой пары:
generate pki key-pair install router1-key-new
  1. Обмен новыми публичными ключами:

Экспортируйте и импортируйте новые публичные ключи на удаленные узлы.

  1. Обновление конфигурации VPN:
configure
set vpn ipsec authentication pki local-key router1-key-new
set vpn ipsec authentication pki rsa remote-key router2-key-new
commit
save
  1. Удаление старых ключей:

После проверки работоспособности удалите старые ключи:

configure
delete pki key-pair router1-key
commit
save

Резервное копирование ключей

Экспорт конфигурации с ключами:

show configuration commands | grep pki | save /config/pki-backup.txt

Полное резервное копирование:

save /config/config.boot.backup

Восстановление:

load /config/config.boot.backup
commit

Конфигурация IPsec VPN с RSA-аутентификацией

Базовая структура конфигурации

IPsec VPN с RSA-аутентификацией в VyOS настраивается в следующих основных разделах:

  1. IKE Group — параметры IKE Phase 1 (аутентификация и обмен ключами)
  2. ESP Group — параметры IPsec Phase 2 (шифрование данных)
  3. VPN Interface — определение VPN интерфейса и параметров туннеля
  4. Authentication — настройка RSA-аутентификации
  5. Connection — параметры соединения и режимы работы

Создание IKE Group

IKE Group определяет параметры для IKE Phase 1 (ISAKMP):

configure

set vpn ipsec ike-group IKE-RSA proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-RSA proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-RSA proposal 1 hash 'sha256'
set vpn ipsec ike-group IKE-RSA lifetime '28800'
set vpn ipsec ike-group IKE-RSA dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-RSA dead-peer-detection interval '30'
set vpn ipsec ike-group IKE-RSA dead-peer-detection timeout '120'

commit

Параметры:

  • dh-group: Diffie-Hellman группа (2, 5, 14, 15, 16, 19, 20)

    • Группа 14: 2048-bit MODP (рекомендуется минимум)
    • Группа 19: 256-bit ECP (современный стандарт)
    • Группа 20: 384-bit ECP (повышенная безопасность)
  • encryption: Алгоритм шифрования (aes128, aes192, aes256, aes128gcm16, aes256gcm16)

  • hash: Алгоритм хеширования (sha1, sha256, sha384, sha512)

  • lifetime: Время жизни IKE SA в секундах (по умолчанию 28800 = 8 часов)

  • dead-peer-detection: Обнаружение недоступного узла

Создание ESP Group

ESP Group определяет параметры для IPsec Phase 2:

set vpn ipsec esp-group ESP-RSA proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-RSA proposal 1 hash 'sha256'
set vpn ipsec esp-group ESP-RSA lifetime '3600'
set vpn ipsec esp-group ESP-RSA pfs 'dh-group14'

commit

Параметры:

  • encryption: Алгоритм шифрования данных
  • hash: Алгоритм HMAC для целостности данных
  • lifetime: Время жизни IPsec SA (по умолчанию 3600 = 1 час)
  • pfs (Perfect Forward Secrecy): Генерация новых ключей при каждом переключении SA

Конфигурация Site-to-Site VPN с RSA

Сценарий: Два офиса с статическими IP-адресами

Топология:

  • Router1 (Офис А): 203.0.113.10, LAN 10.10.1.0/24
  • Router2 (Офис Б): 198.51.100.20, LAN 10.10.2.0/24

Конфигурация Router1:

configure

# IKE и ESP группы (как описано выше)
set vpn ipsec ike-group IKE-RSA proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-RSA proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-RSA proposal 1 hash 'sha256'

set vpn ipsec esp-group ESP-RSA proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-RSA proposal 1 hash 'sha256'

# Настройка site-to-site соединения
set vpn ipsec site-to-site peer office-b authentication mode 'rsa'
set vpn ipsec site-to-site peer office-b authentication rsa local-key 'router1-key'
set vpn ipsec site-to-site peer office-b authentication rsa remote-key 'router2-remote'
set vpn ipsec site-to-site peer office-b authentication local-id '203.0.113.10'
set vpn ipsec site-to-site peer office-b authentication remote-id '198.51.100.20'

set vpn ipsec site-to-site peer office-b connection-type 'initiate'
set vpn ipsec site-to-site peer office-b ike-group 'IKE-RSA'
set vpn ipsec site-to-site peer office-b local-address '203.0.113.10'
set vpn ipsec site-to-site peer office-b remote-address '198.51.100.20'

set vpn ipsec site-to-site peer office-b tunnel 1 esp-group 'ESP-RSA'
set vpn ipsec site-to-site peer office-b tunnel 1 local prefix '10.10.1.0/24'
set vpn ipsec site-to-site peer office-b tunnel 1 remote prefix '10.10.2.0/24'

commit
save

Конфигурация Router2:

configure

# IKE и ESP группы (идентичны Router1)
set vpn ipsec ike-group IKE-RSA proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-RSA proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-RSA proposal 1 hash 'sha256'

set vpn ipsec esp-group ESP-RSA proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-RSA proposal 1 hash 'sha256'

# Настройка site-to-site соединения
set vpn ipsec site-to-site peer office-a authentication mode 'rsa'
set vpn ipsec site-to-site peer office-a authentication rsa local-key 'router2-key'
set vpn ipsec site-to-site peer office-a authentication rsa remote-key 'router1-remote'
set vpn ipsec site-to-site peer office-a authentication local-id '198.51.100.20'
set vpn ipsec site-to-site peer office-a authentication remote-id '203.0.113.10'

set vpn ipsec site-to-site peer office-a connection-type 'respond'
set vpn ipsec site-to-site peer office-a ike-group 'IKE-RSA'
set vpn ipsec site-to-site peer office-a local-address '198.51.100.20'
set vpn ipsec site-to-site peer office-a remote-address '203.0.113.10'

set vpn ipsec site-to-site peer office-a tunnel 1 esp-group 'ESP-RSA'
set vpn ipsec site-to-site peer office-a tunnel 1 local prefix '10.10.2.0/24'
set vpn ipsec site-to-site peer office-a tunnel 1 remote prefix '10.10.1.0/24'

commit
save

Ключевые параметры:

  • authentication mode 'rsa' — использование RSA-аутентификации
  • local-key — имя локальной ключевой пары
  • remote-key — имя публичного ключа удаленного узла
  • local-id и remote-id — идентификаторы для IKE (IP-адреса или FQDN)
  • connection-type — ‘initiate’ (инициатор) или ‘respond’ (ответчик)

Поддержка динамических IP-адресов

Конфигурация с local-address “any”

VyOS поддерживает динамические IP-адреса для VPN туннелей, что особенно полезно для подключений из офисов с динамическими IP от провайдера.

Сценарий: Router1 имеет динамический IP, Router2 имеет статический IP

Конфигурация Router1 (динамический IP):

configure

set vpn ipsec ike-group IKE-DYNAMIC proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-DYNAMIC proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-DYNAMIC proposal 1 hash 'sha256'

set vpn ipsec esp-group ESP-DYNAMIC proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-DYNAMIC proposal 1 hash 'sha256'

set vpn ipsec site-to-site peer central-office authentication mode 'rsa'
set vpn ipsec site-to-site peer central-office authentication rsa local-key 'branch-key'
set vpn ipsec site-to-site peer central-office authentication rsa remote-key 'central-remote'
set vpn ipsec site-to-site peer central-office authentication local-id 'branch-office@company.local'
set vpn ipsec site-to-site peer central-office authentication remote-id '203.0.113.100'

set vpn ipsec site-to-site peer central-office connection-type 'initiate'
set vpn ipsec site-to-site peer central-office ike-group 'IKE-DYNAMIC'
set vpn ipsec site-to-site peer central-office local-address 'any'
set vpn ipsec site-to-site peer central-office remote-address '203.0.113.100'

set vpn ipsec site-to-site peer central-office tunnel 1 esp-group 'ESP-DYNAMIC'
set vpn ipsec site-to-site peer central-office tunnel 1 local prefix '10.20.1.0/24'
set vpn ipsec site-to-site peer central-office tunnel 1 remote prefix '10.10.0.0/16'

commit
save

Конфигурация Router2 (статический IP - центральный офис):

configure

set vpn ipsec ike-group IKE-DYNAMIC proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-DYNAMIC proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-DYNAMIC proposal 1 hash 'sha256'

set vpn ipsec esp-group ESP-DYNAMIC proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-DYNAMIC proposal 1 hash 'sha256'

set vpn ipsec site-to-site peer branch-office authentication mode 'rsa'
set vpn ipsec site-to-site peer branch-office authentication rsa local-key 'central-key'
set vpn ipsec site-to-site peer branch-office authentication rsa remote-key 'branch-remote'
set vpn ipsec site-to-site peer branch-office authentication local-id '203.0.113.100'
set vpn ipsec site-to-site peer branch-office authentication remote-id 'branch-office@company.local'

set vpn ipsec site-to-site peer branch-office connection-type 'respond'
set vpn ipsec site-to-site peer branch-office ike-group 'IKE-DYNAMIC'
set vpn ipsec site-to-site peer branch-office local-address '203.0.113.100'
set vpn ipsec site-to-site peer branch-office remote-address 'any'

set vpn ipsec site-to-site peer branch-office tunnel 1 esp-group 'ESP-DYNAMIC'
set vpn ipsec site-to-site peer branch-office tunnel 1 local prefix '10.10.0.0/16'
set vpn ipsec site-to-site peer branch-office tunnel 1 remote prefix '10.20.1.0/24'

commit
save

Ключевые особенности:

  • local-address 'any' — использовать любой доступный IP-адрес
  • remote-address 'any' — принимать подключения с любого IP-адреса
  • local-id и remote-id используют FQDN или email-like идентификаторы для динамических IP
  • connection-type 'initiate' на стороне с динамическим IP
  • connection-type 'respond' на стороне со статическим IP

Использование FQDN в качестве remote-id

Для динамических IP-адресов рекомендуется использовать FQDN или email-like идентификаторы:

set vpn ipsec site-to-site peer remote-office authentication local-id 'vyos.headquarters.example.com'
set vpn ipsec site-to-site peer remote-office authentication remote-id 'vyos.branch.example.com'

Преимущества FQDN:

  • Идентификация не зависит от IP-адреса
  • Поддержка DynDNS для динамических IP
  • Упрощенное управление в больших сетях
  • Человекочитаемые идентификаторы в логах

Сценарий с обоими динамическими IP

Если оба узла имеют динамические IP-адреса, требуется третий узел с статическим IP для инициации соединения или использование DynDNS:

# На обоих узлах
set vpn ipsec site-to-site peer remote-site local-address 'any'
set vpn ipsec site-to-site peer remote-site remote-address '<dyndns-hostname>'
set vpn ipsec site-to-site peer remote-site authentication local-id '<local-fqdn>'
set vpn ipsec site-to-site peer remote-site authentication remote-id '<remote-fqdn>'

Конфигурация remote-id и local-id

Назначение идентификаторов IKE

IKE идентификаторы (local-id и remote-id) используются для:

  1. Идентификация узлов при установлении IPsec туннеля
  2. Сопоставление публичных ключей с удаленными узлами
  3. Валидация подключений от правильных источников
  4. Поддержка динамических IP через неизменяемые идентификаторы

Типы идентификаторов

IP-адрес:

set vpn ipsec site-to-site peer remote-site authentication local-id '203.0.113.10'
set vpn ipsec site-to-site peer remote-site authentication remote-id '198.51.100.20'

Используется для статических IP-адресов, простая идентификация.

FQDN (Fully Qualified Domain Name):

set vpn ipsec site-to-site peer remote-site authentication local-id 'router1.example.com'
set vpn ipsec site-to-site peer remote-site authentication remote-id 'router2.example.com'

Рекомендуется для динамических IP, поддержка DNS.

Email-like идентификатор:

set vpn ipsec site-to-site peer remote-site authentication local-id 'office-a@company.local'
set vpn ipsec site-to-site peer remote-site authentication remote-id 'office-b@company.local'

Удобно для управления в больших сетях, не требует DNS.

Distinguished Name (DN):

set vpn ipsec site-to-site peer remote-site authentication local-id 'C=RU, O=Company, CN=router1'
set vpn ipsec site-to-site peer remote-site authentication remote-id 'C=RU, O=Company, CN=router2'

Используется при интеграции с PKI/CA инфраструктурой.

Правила сопоставления идентификаторов

Важно:

  • local-id на Router1 должен совпадать с remote-id на Router2
  • remote-id на Router1 должен совпадать с local-id на Router2

Пример правильной конфигурации:

# Router1
set vpn ipsec site-to-site peer peer2 authentication local-id 'router1.company.com'
set vpn ipsec site-to-site peer peer2 authentication remote-id 'router2.company.com'

# Router2
set vpn ipsec site-to-site peer peer1 authentication local-id 'router2.company.com'
set vpn ipsec site-to-site peer peer1 authentication remote-id 'router1.company.com'

Идентификаторы в Hub-and-Spoke топологии

Hub (центральный узел):

# Для каждого Spoke отдельный peer с уникальным remote-id
set vpn ipsec site-to-site peer spoke1 authentication local-id 'hub.company.com'
set vpn ipsec site-to-site peer spoke1 authentication remote-id 'spoke1.company.com'

set vpn ipsec site-to-site peer spoke2 authentication local-id 'hub.company.com'
set vpn ipsec site-to-site peer spoke2 authentication remote-id 'spoke2.company.com'

Spoke (филиал):

set vpn ipsec site-to-site peer hub authentication local-id 'spoke1.company.com'
set vpn ipsec site-to-site peer hub authentication remote-id 'hub.company.com'

Интеграция с ESP и IKE группами

Выбор криптографических алгоритмов

Рекомендуемые комбинации для различных сценариев:

Максимальная безопасность (государственные организации, финансовый сектор):

# IKE Group
set vpn ipsec ike-group IKE-HIGH-SEC proposal 1 dh-group '20'
set vpn ipsec ike-group IKE-HIGH-SEC proposal 1 encryption 'aes256gcm16'
set vpn ipsec ike-group IKE-HIGH-SEC proposal 1 hash 'sha512'
set vpn ipsec ike-group IKE-HIGH-SEC lifetime '14400'

# ESP Group
set vpn ipsec esp-group ESP-HIGH-SEC proposal 1 encryption 'aes256gcm16'
set vpn ipsec esp-group ESP-HIGH-SEC proposal 1 hash 'sha512'
set vpn ipsec esp-group ESP-HIGH-SEC lifetime '3600'
set vpn ipsec esp-group ESP-HIGH-SEC pfs 'dh-group20'

Баланс безопасности и производительности (корпоративные сети):

# IKE Group
set vpn ipsec ike-group IKE-BALANCED proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-BALANCED proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-BALANCED proposal 1 hash 'sha256'
set vpn ipsec ike-group IKE-BALANCED lifetime '28800'

# ESP Group
set vpn ipsec esp-group ESP-BALANCED proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-BALANCED proposal 1 hash 'sha256'
set vpn ipsec esp-group ESP-BALANCED lifetime '3600'
set vpn ipsec esp-group ESP-BALANCED pfs 'dh-group14'

Максимальная производительность (тестовые среды, высокая пропускная способность):

# IKE Group
set vpn ipsec ike-group IKE-PERFORMANCE proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-PERFORMANCE proposal 1 encryption 'aes128gcm16'
set vpn ipsec ike-group IKE-PERFORMANCE proposal 1 hash 'sha256'
set vpn ipsec ike-group IKE-PERFORMANCE lifetime '28800'

# ESP Group
set vpn ipsec esp-group ESP-PERFORMANCE proposal 1 encryption 'aes128gcm16'
set vpn ipsec esp-group ESP-PERFORMANCE proposal 1 hash 'sha256'
set vpn ipsec esp-group ESP-PERFORMANCE lifetime '3600'
set vpn ipsec esp-group ESP-PERFORMANCE pfs 'dh-group14'

Множественные proposal для совместимости

Для совместимости с различными VPN-концентраторами можно настроить несколько proposals:

set vpn ipsec ike-group IKE-MULTI proposal 1 dh-group '20'
set vpn ipsec ike-group IKE-MULTI proposal 1 encryption 'aes256gcm16'
set vpn ipsec ike-group IKE-MULTI proposal 1 hash 'sha512'

set vpn ipsec ike-group IKE-MULTI proposal 2 dh-group '14'
set vpn ipsec ike-group IKE-MULTI proposal 2 encryption 'aes256'
set vpn ipsec ike-group IKE-MULTI proposal 2 hash 'sha256'

set vpn ipsec ike-group IKE-MULTI proposal 3 dh-group '14'
set vpn ipsec ike-group IKE-MULTI proposal 3 encryption 'aes128'
set vpn ipsec ike-group IKE-MULTI proposal 3 hash 'sha256'

VyOS будет пытаться согласовать параметры в порядке приоритета (proposal 1, затем 2, затем 3).

Dead Peer Detection (DPD)

DPD обеспечивает автоматическое восстановление туннеля при потере связи:

set vpn ipsec ike-group IKE-GROUP dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-GROUP dead-peer-detection interval '30'
set vpn ipsec ike-group IKE-GROUP dead-peer-detection timeout '120'

Параметры:

  • action: ‘restart’ (пересоздать туннель), ‘clear’ (удалить SA), ‘hold’ (оставить без изменений)
  • interval: Интервал отправки DPD сообщений (секунды)
  • timeout: Таймаут ожидания ответа (секунды)

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

  • Для стабильных каналов: interval=60, timeout=300
  • Для нестабильных каналов: interval=30, timeout=120
  • Для критичных соединений: interval=10, timeout=30

Настройка lifetime

IKE lifetime (ISAKMP SA):

set vpn ipsec ike-group IKE-GROUP lifetime '28800'  # 8 часов

Более длительный lifetime снижает нагрузку на CPU при перезаключении, но увеличивает окно уязвимости.

ESP lifetime (IPsec SA):

set vpn ipsec esp-group ESP-GROUP lifetime '3600'  # 1 час

Более короткий lifetime повышает безопасность за счет частой смены ключей.

Рекомендуемые значения:

  • IKE: 28800 (8 часов) - 86400 (24 часа)
  • ESP: 3600 (1 час) - 14400 (4 часа)

Пример: Site-to-Site VPN между Yandex Cloud и on-premises

Архитектура решения

Сценарий:

  • Yandex Cloud VPC: VyOS router в облаке с публичным IP 51.250.10.50, внутренняя сеть 10.128.0.0/16
  • On-Premises: VyOS router в офисе с публичным IP 203.0.113.25, внутренняя сеть 192.168.10.0/24
  • Требования: Защищенное соединение между облаком и офисом, RSA-аутентификация, поддержка динамического IP на стороне офиса

Топология сети

┌─────────────────────────────────────────────────────────────┐
│ Yandex Cloud VPC (ru-central1-a)                            │
│                                                              │
│  ┌──────────────────────────────────┐                       │
│  │ VyOS Router (yc-router)          │                       │
│  │ Public IP: 51.250.10.50          │                       │
│  │ Private IP: 10.128.0.10          │                       │
│  │ eth0: 51.250.10.50 (WAN)         │                       │
│  │ eth1: 10.128.0.10 (LAN)          │                       │
│  └──────────────┬───────────────────┘                       │
│                 │                                            │
│  ┌──────────────┴───────────────────┐                       │
│  │ Subnet: 10.128.0.0/24            │                       │
│  │ VMs: 10.128.0.11 - 10.128.0.254  │                       │
│  └──────────────────────────────────┘                       │
│                                                              │
└──────────────────────────┬───────────────────────────────────┘
                           │
                           │ Internet
                           │ IPsec VPN Tunnel (RSA Auth)
                           │
┌──────────────────────────┴───────────────────────────────────┐
│ On-Premises Office                                           │
│                                                              │
│  ┌──────────────────────────────────┐                       │
│  │ VyOS Router (office-router)      │                       │
│  │ Public IP: 203.0.113.25 (dynamic)│                       │
│  │ Private IP: 192.168.10.1         │                       │
│  │ eth0: 203.0.113.25 (WAN)         │                       │
│  │ eth1: 192.168.10.1 (LAN)         │                       │
│  └──────────────┬───────────────────┘                       │
│                 │                                            │
│  ┌──────────────┴───────────────────┐                       │
│  │ LAN: 192.168.10.0/24             │                       │
│  │ Hosts: 192.168.10.10 - .254      │                       │
│  └──────────────────────────────────┘                       │
│                                                              │
└──────────────────────────────────────────────────────────────┘

Генерация ключей

На Yandex Cloud VyOS Router:

vyos@yc-router:~$ configure
vyos@yc-router# generate pki key-pair install yc-cloud-key
Enter private key passphrase: ********
Retype private key passphrase: ********
vyos@yc-router# commit
vyos@yc-router# save

На On-Premises VyOS Router:

vyos@office-router:~$ configure
vyos@office-router# generate pki key-pair install office-onprem-key
Enter private key passphrase: ********
Retype private key passphrase: ********
vyos@office-router# commit
vyos@office-router# save

Обмен публичными ключами

Экспорт публичного ключа Yandex Cloud:

vyos@yc-router# run show pki key-pair yc-cloud-key public
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1K8Hx5vQ2Lm7pN9wZ...
(копируйте весь ключ)
-----END PUBLIC KEY-----

Импорт на On-Premises Router:

vyos@office-router# set pki key-pair yc-remote-key public key '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1K8Hx5vQ2Lm7pN9wZ...
-----END PUBLIC KEY-----'
vyos@office-router# commit

Аналогично для публичного ключа офиса:

vyos@office-router# run show pki key-pair office-onprem-key public
# Копируйте ключ и импортируйте на yc-router как office-remote-key

Конфигурация Yandex Cloud Router

configure

# IKE Group
set vpn ipsec ike-group IKE-YC-OFFICE proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-YC-OFFICE proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-YC-OFFICE proposal 1 hash 'sha256'
set vpn ipsec ike-group IKE-YC-OFFICE lifetime '28800'
set vpn ipsec ike-group IKE-YC-OFFICE dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-YC-OFFICE dead-peer-detection interval '30'
set vpn ipsec ike-group IKE-YC-OFFICE dead-peer-detection timeout '120'

# ESP Group
set vpn ipsec esp-group ESP-YC-OFFICE proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-YC-OFFICE proposal 1 hash 'sha256'
set vpn ipsec esp-group ESP-YC-OFFICE lifetime '3600'
set vpn ipsec esp-group ESP-YC-OFFICE pfs 'dh-group14'

# Site-to-Site Peer Configuration
set vpn ipsec site-to-site peer office-branch authentication mode 'rsa'
set vpn ipsec site-to-site peer office-branch authentication rsa local-key 'yc-cloud-key'
set vpn ipsec site-to-site peer office-branch authentication rsa remote-key 'office-remote-key'
set vpn ipsec site-to-site peer office-branch authentication local-id 'yc-router@yandex-cloud.local'
set vpn ipsec site-to-site peer office-branch authentication remote-id 'office-router@company.local'

set vpn ipsec site-to-site peer office-branch connection-type 'respond'
set vpn ipsec site-to-site peer office-branch ike-group 'IKE-YC-OFFICE'
set vpn ipsec site-to-site peer office-branch local-address '51.250.10.50'
set vpn ipsec site-to-site peer office-branch remote-address 'any'

# Tunnel Configuration
set vpn ipsec site-to-site peer office-branch tunnel 1 esp-group 'ESP-YC-OFFICE'
set vpn ipsec site-to-site peer office-branch tunnel 1 local prefix '10.128.0.0/16'
set vpn ipsec site-to-site peer office-branch tunnel 1 remote prefix '192.168.10.0/24'

commit
save

Конфигурация On-Premises Router

configure

# IKE Group (идентичная YC Router)
set vpn ipsec ike-group IKE-YC-OFFICE proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-YC-OFFICE proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-YC-OFFICE proposal 1 hash 'sha256'
set vpn ipsec ike-group IKE-YC-OFFICE lifetime '28800'
set vpn ipsec ike-group IKE-YC-OFFICE dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-YC-OFFICE dead-peer-detection interval '30'
set vpn ipsec ike-group IKE-YC-OFFICE dead-peer-detection timeout '120'

# ESP Group (идентичная YC Router)
set vpn ipsec esp-group ESP-YC-OFFICE proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-YC-OFFICE proposal 1 hash 'sha256'
set vpn ipsec esp-group ESP-YC-OFFICE lifetime '3600'
set vpn ipsec esp-group ESP-YC-OFFICE pfs 'dh-group14'

# Site-to-Site Peer Configuration
set vpn ipsec site-to-site peer yandex-cloud authentication mode 'rsa'
set vpn ipsec site-to-site peer yandex-cloud authentication rsa local-key 'office-onprem-key'
set vpn ipsec site-to-site peer yandex-cloud authentication rsa remote-key 'yc-remote-key'
set vpn ipsec site-to-site peer yandex-cloud authentication local-id 'office-router@company.local'
set vpn ipsec site-to-site peer yandex-cloud authentication remote-id 'yc-router@yandex-cloud.local'

set vpn ipsec site-to-site peer yandex-cloud connection-type 'initiate'
set vpn ipsec site-to-site peer yandex-cloud ike-group 'IKE-YC-OFFICE'
set vpn ipsec site-to-site peer yandex-cloud local-address 'any'
set vpn ipsec site-to-site peer yandex-cloud remote-address '51.250.10.50'

# Tunnel Configuration
set vpn ipsec site-to-site peer yandex-cloud tunnel 1 esp-group 'ESP-YC-OFFICE'
set vpn ipsec site-to-site peer yandex-cloud tunnel 1 local prefix '192.168.10.0/24'
set vpn ipsec site-to-site peer yandex-cloud tunnel 1 remote prefix '10.128.0.0/16'

commit
save

Настройка маршрутизации

На Yandex Cloud Router:

configure

# Статический маршрут для офисной сети через VPN
set protocols static route 192.168.10.0/24 interface tunnel0

# Или через next-hop (если используется VTI)
# set protocols static route 192.168.10.0/24 next-hop <vti-interface-ip>

commit
save

На On-Premises Router:

configure

# Статический маршрут для облачной сети через VPN
set protocols static route 10.128.0.0/16 interface tunnel0

commit
save

Настройка NAT (опционально)

Если требуется NAT для доступа VPN клиентов в интернет через Yandex Cloud:

На Yandex Cloud Router:

configure

# Исключение VPN трафика из NAT
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '10.128.0.0/16'
set nat source rule 100 destination address '192.168.10.0/24'
set nat source rule 100 exclude

# NAT для интернет-трафика
set nat source rule 200 outbound-interface 'eth0'
set nat source rule 200 source address '10.128.0.0/16'
set nat source rule 200 translation address 'masquerade'

commit
save

Пример: Hub-and-Spoke VPN с RSA-аутентификацией (VK Cloud)

Архитектура решения

Сценарий:

  • Hub (VK Cloud): Центральный VyOS router с публичным IP 89.208.220.50, сеть 10.0.0.0/16
  • Spoke 1 (Филиал Москва): VyOS router, динамический IP, сеть 10.10.1.0/24
  • Spoke 2 (Филиал Санкт-Петербург): VyOS router, динамический IP, сеть 10.10.2.0/24
  • Spoke 3 (Филиал Екатеринбург): VyOS router, статический IP 198.51.100.100, сеть 10.10.3.0/24

Топология сети

                          ┌─────────────────────────────┐
                          │ VK Cloud (Moscow Region)    │
                          │                             │
                          │  ┌──────────────────────┐   │
                          │  │ Hub VyOS Router      │   │
                          │  │ 89.208.220.50        │   │
                          │  │ 10.0.0.1 (LAN)       │   │
                          │  └──────────┬───────────┘   │
                          │             │               │
                          │  ┌──────────┴───────────┐   │
                          │  │ VK Cloud Network     │   │
                          │  │ 10.0.0.0/16          │   │
                          │  └──────────────────────┘   │
                          │                             │
                          └──────────────┬──────────────┘
                                         │
                 ┌───────────────────────┼───────────────────────┐
                 │                       │                       │
                 │                       │                       │
     ┌───────────▼───────────┐ ┌────────▼────────────┐ ┌────────▼────────────┐
     │ Spoke 1: Moscow       │ │ Spoke 2: SPb        │ │ Spoke 3: Ekb        │
     │ Dynamic IP            │ │ Dynamic IP          │ │ Static IP           │
     │ 10.10.1.0/24          │ │ 10.10.2.0/24        │ │ 198.51.100.100      │
     │                       │ │                     │ │ 10.10.3.0/24        │
     └───────────────────────┘ └─────────────────────┘ └─────────────────────┘

Генерация ключей на всех узлах

Hub (VK Cloud):

vyos@hub-router:~$ configure
vyos@hub-router# generate pki key-pair install hub-vkcloud-key
vyos@hub-router# commit
vyos@hub-router# save

Spoke 1 (Москва):

vyos@spoke1-moscow:~$ configure
vyos@spoke1-moscow# generate pki key-pair install spoke1-moscow-key
vyos@spoke1-moscow# commit
vyos@spoke1-moscow# save

Spoke 2 (Санкт-Петербург):

vyos@spoke2-spb:~$ configure
vyos@spoke2-spb# generate pki key-pair install spoke2-spb-key
vyos@spoke2-spb# commit
vyos@spoke2-spb# save

Spoke 3 (Екатеринбург):

vyos@spoke3-ekb:~$ configure
vyos@spoke3-ekb# generate pki key-pair install spoke3-ekb-key
vyos@spoke3-ekb# commit
vyos@spoke3-ekb# save

Обмен публичными ключами

Импорт публичных ключей Spokes на Hub:

vyos@hub-router# set pki key-pair spoke1-remote-key public key '<spoke1-public-key>'
vyos@hub-router# set pki key-pair spoke2-remote-key public key '<spoke2-public-key>'
vyos@hub-router# set pki key-pair spoke3-remote-key public key '<spoke3-public-key>'
vyos@hub-router# commit

Импорт публичного ключа Hub на каждый Spoke:

# На Spoke 1
vyos@spoke1-moscow# set pki key-pair hub-remote-key public key '<hub-public-key>'

# На Spoke 2
vyos@spoke2-spb# set pki key-pair hub-remote-key public key '<hub-public-key>'

# На Spoke 3
vyos@spoke3-ekb# set pki key-pair hub-remote-key public key '<hub-public-key>'

Конфигурация Hub Router (VK Cloud)

configure

# Общие IKE и ESP группы для всех Spokes
set vpn ipsec ike-group IKE-HUB proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-HUB proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-HUB proposal 1 hash 'sha256'
set vpn ipsec ike-group IKE-HUB lifetime '28800'
set vpn ipsec ike-group IKE-HUB dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-HUB dead-peer-detection interval '30'
set vpn ipsec ike-group IKE-HUB dead-peer-detection timeout '120'

set vpn ipsec esp-group ESP-HUB proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-HUB proposal 1 hash 'sha256'
set vpn ipsec esp-group ESP-HUB lifetime '3600'
set vpn ipsec esp-group ESP-HUB pfs 'dh-group14'

# Spoke 1 Configuration (Dynamic IP)
set vpn ipsec site-to-site peer spoke1 authentication mode 'rsa'
set vpn ipsec site-to-site peer spoke1 authentication rsa local-key 'hub-vkcloud-key'
set vpn ipsec site-to-site peer spoke1 authentication rsa remote-key 'spoke1-remote-key'
set vpn ipsec site-to-site peer spoke1 authentication local-id 'hub@vkcloud.local'
set vpn ipsec site-to-site peer spoke1 authentication remote-id 'spoke1-moscow@company.local'

set vpn ipsec site-to-site peer spoke1 connection-type 'respond'
set vpn ipsec site-to-site peer spoke1 ike-group 'IKE-HUB'
set vpn ipsec site-to-site peer spoke1 local-address '89.208.220.50'
set vpn ipsec site-to-site peer spoke1 remote-address 'any'

set vpn ipsec site-to-site peer spoke1 tunnel 1 esp-group 'ESP-HUB'
set vpn ipsec site-to-site peer spoke1 tunnel 1 local prefix '10.0.0.0/16'
set vpn ipsec site-to-site peer spoke1 tunnel 1 remote prefix '10.10.1.0/24'

# Spoke 2 Configuration (Dynamic IP)
set vpn ipsec site-to-site peer spoke2 authentication mode 'rsa'
set vpn ipsec site-to-site peer spoke2 authentication rsa local-key 'hub-vkcloud-key'
set vpn ipsec site-to-site peer spoke2 authentication rsa remote-key 'spoke2-remote-key'
set vpn ipsec site-to-site peer spoke2 authentication local-id 'hub@vkcloud.local'
set vpn ipsec site-to-site peer spoke2 authentication remote-id 'spoke2-spb@company.local'

set vpn ipsec site-to-site peer spoke2 connection-type 'respond'
set vpn ipsec site-to-site peer spoke2 ike-group 'IKE-HUB'
set vpn ipsec site-to-site peer spoke2 local-address '89.208.220.50'
set vpn ipsec site-to-site peer spoke2 remote-address 'any'

set vpn ipsec site-to-site peer spoke2 tunnel 1 esp-group 'ESP-HUB'
set vpn ipsec site-to-site peer spoke2 tunnel 1 local prefix '10.0.0.0/16'
set vpn ipsec site-to-site peer spoke2 tunnel 1 remote prefix '10.10.2.0/24'

# Spoke 3 Configuration (Static IP)
set vpn ipsec site-to-site peer spoke3 authentication mode 'rsa'
set vpn ipsec site-to-site peer spoke3 authentication rsa local-key 'hub-vkcloud-key'
set vpn ipsec site-to-site peer spoke3 authentication rsa remote-key 'spoke3-remote-key'
set vpn ipsec site-to-site peer spoke3 authentication local-id 'hub@vkcloud.local'
set vpn ipsec site-to-site peer spoke3 authentication remote-id 'spoke3-ekb@company.local'

set vpn ipsec site-to-site peer spoke3 connection-type 'initiate'
set vpn ipsec site-to-site peer spoke3 ike-group 'IKE-HUB'
set vpn ipsec site-to-site peer spoke3 local-address '89.208.220.50'
set vpn ipsec site-to-site peer spoke3 remote-address '198.51.100.100'

set vpn ipsec site-to-site peer spoke3 tunnel 1 esp-group 'ESP-HUB'
set vpn ipsec site-to-site peer spoke3 tunnel 1 local prefix '10.0.0.0/16'
set vpn ipsec site-to-site peer spoke3 tunnel 1 remote prefix '10.10.3.0/24'

commit
save

Конфигурация Spoke Routers

Spoke 1 (Москва - Dynamic IP):

configure

set vpn ipsec ike-group IKE-HUB proposal 1 dh-group '14'
set vpn ipsec ike-group IKE-HUB proposal 1 encryption 'aes256'
set vpn ipsec ike-group IKE-HUB proposal 1 hash 'sha256'
set vpn ipsec ike-group IKE-HUB lifetime '28800'
set vpn ipsec ike-group IKE-HUB dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-HUB dead-peer-detection interval '30'
set vpn ipsec ike-group IKE-HUB dead-peer-detection timeout '120'

set vpn ipsec esp-group ESP-HUB proposal 1 encryption 'aes256'
set vpn ipsec esp-group ESP-HUB proposal 1 hash 'sha256'
set vpn ipsec esp-group ESP-HUB lifetime '3600'
set vpn ipsec esp-group ESP-HUB pfs 'dh-group14'

set vpn ipsec site-to-site peer hub authentication mode 'rsa'
set vpn ipsec site-to-site peer hub authentication rsa local-key 'spoke1-moscow-key'
set vpn ipsec site-to-site peer hub authentication rsa remote-key 'hub-remote-key'
set vpn ipsec site-to-site peer hub authentication local-id 'spoke1-moscow@company.local'
set vpn ipsec site-to-site peer hub authentication remote-id 'hub@vkcloud.local'

set vpn ipsec site-to-site peer hub connection-type 'initiate'
set vpn ipsec site-to-site peer hub ike-group 'IKE-HUB'
set vpn ipsec site-to-site peer hub local-address 'any'
set vpn ipsec site-to-site peer hub remote-address '89.208.220.50'

set vpn ipsec site-to-site peer hub tunnel 1 esp-group 'ESP-HUB'
set vpn ipsec site-to-site peer hub tunnel 1 local prefix '10.10.1.0/24'
set vpn ipsec site-to-site peer hub tunnel 1 remote prefix '10.0.0.0/16'

commit
save

Spoke 2 (Санкт-Петербург - Dynamic IP):

configure

# IKE и ESP группы идентичны Spoke 1

set vpn ipsec site-to-site peer hub authentication mode 'rsa'
set vpn ipsec site-to-site peer hub authentication rsa local-key 'spoke2-spb-key'
set vpn ipsec site-to-site peer hub authentication rsa remote-key 'hub-remote-key'
set vpn ipsec site-to-site peer hub authentication local-id 'spoke2-spb@company.local'
set vpn ipsec site-to-site peer hub authentication remote-id 'hub@vkcloud.local'

set vpn ipsec site-to-site peer hub connection-type 'initiate'
set vpn ipsec site-to-site peer hub ike-group 'IKE-HUB'
set vpn ipsec site-to-site peer hub local-address 'any'
set vpn ipsec site-to-site peer hub remote-address '89.208.220.50'

set vpn ipsec site-to-site peer hub tunnel 1 esp-group 'ESP-HUB'
set vpn ipsec site-to-site peer hub tunnel 1 local prefix '10.10.2.0/24'
set vpn ipsec site-to-site peer hub tunnel 1 remote prefix '10.0.0.0/16'

commit
save

Spoke 3 (Екатеринбург - Static IP):

configure

# IKE и ESP группы идентичны другим Spokes

set vpn ipsec site-to-site peer hub authentication mode 'rsa'
set vpn ipsec site-to-site peer hub authentication rsa local-key 'spoke3-ekb-key'
set vpn ipsec site-to-site peer hub authentication rsa remote-key 'hub-remote-key'
set vpn ipsec site-to-site peer hub authentication local-id 'spoke3-ekb@company.local'
set vpn ipsec site-to-site peer hub authentication remote-id 'hub@vkcloud.local'

set vpn ipsec site-to-site peer hub connection-type 'respond'
set vpn ipsec site-to-site peer hub ike-group 'IKE-HUB'
set vpn ipsec site-to-site peer hub local-address '198.51.100.100'
set vpn ipsec site-to-site peer hub remote-address '89.208.220.50'

set vpn ipsec site-to-site peer hub tunnel 1 esp-group 'ESP-HUB'
set vpn ipsec site-to-site peer hub tunnel 1 local prefix '10.10.3.0/24'
set vpn ipsec site-to-site peer hub tunnel 1 remote prefix '10.0.0.0/16'

commit
save

Маршрутизация Spoke-to-Spoke через Hub

Для обеспечения связности между Spoke-узлами необходимо настроить маршрутизацию через Hub:

На Hub Router:

configure

# Включить IP forwarding (обычно включено по умолчанию)
set system ip forwarding

# Статические маршруты для каждого Spoke
set protocols static route 10.10.1.0/24 interface tunnel0
set protocols static route 10.10.2.0/24 interface tunnel1
set protocols static route 10.10.3.0/24 interface tunnel2

# Или использовать динамическую маршрутизацию (BGP/OSPF)
# Пример с OSPF:
set protocols ospf area 0 network '10.0.0.0/16'
set protocols ospf area 0 network '10.10.1.0/24'
set protocols ospf area 0 network '10.10.2.0/24'
set protocols ospf area 0 network '10.10.3.0/24'

commit
save

На каждом Spoke Router:

configure

# Маршрут по умолчанию через Hub для других Spoke сетей
set protocols static route 10.10.0.0/16 interface tunnel0

# Или специфические маршруты
set protocols static route 10.10.2.0/24 interface tunnel0
set protocols static route 10.10.3.0/24 interface tunnel0

commit
save

Примеры конфигурации для различных сценариев

Сценарий 1: Site-to-Site с двумя туннелями (резервирование)

Для повышения отказоустойчивости можно настроить два туннеля между одними и теми же узлами:

configure

# Primary Tunnel (основной канал)
set vpn ipsec site-to-site peer remote-site tunnel 1 esp-group 'ESP-PRIMARY'
set vpn ipsec site-to-site peer remote-site tunnel 1 local prefix '10.10.1.0/24'
set vpn ipsec site-to-site peer remote-site tunnel 1 remote prefix '10.10.2.0/24'
set vpn ipsec site-to-site peer remote-site tunnel 1 priority '10'

# Backup Tunnel (резервный канал)
set vpn ipsec site-to-site peer remote-site-backup authentication mode 'rsa'
set vpn ipsec site-to-site peer remote-site-backup authentication rsa local-key 'local-key'
set vpn ipsec site-to-site peer remote-site-backup authentication rsa remote-key 'remote-key-backup'
set vpn ipsec site-to-site peer remote-site-backup remote-address '<backup-ip>'
set vpn ipsec site-to-site peer remote-site-backup tunnel 1 esp-group 'ESP-BACKUP'
set vpn ipsec site-to-site peer remote-site-backup tunnel 1 local prefix '10.10.1.0/24'
set vpn ipsec site-to-site peer remote-site-backup tunnel 1 remote prefix '10.10.2.0/24'
set vpn ipsec site-to-site peer remote-site-backup tunnel 1 priority '20'

commit
save

Сценарий 2: VPN с разделением трафика (Split Tunneling)

Настройка множественных туннелей для разных подсетей:

configure

# Tunnel 1: для серверной подсети
set vpn ipsec site-to-site peer remote-site tunnel 1 esp-group 'ESP-SERVERS'
set vpn ipsec site-to-site peer remote-site tunnel 1 local prefix '10.10.1.0/24'
set vpn ipsec site-to-site peer remote-site tunnel 1 remote prefix '10.20.10.0/24'

# Tunnel 2: для рабочих станций
set vpn ipsec site-to-site peer remote-site tunnel 2 esp-group 'ESP-WORKSTATIONS'
set vpn ipsec site-to-site peer remote-site tunnel 2 local prefix '10.10.2.0/24'
set vpn ipsec site-to-site peer remote-site tunnel 2 remote prefix '10.20.20.0/24'

# Tunnel 3: для управляющих систем (с повышенной безопасностью)
set vpn ipsec site-to-site peer remote-site tunnel 3 esp-group 'ESP-MGMT'
set vpn ipsec site-to-site peer remote-site tunnel 3 local prefix '10.10.100.0/24'
set vpn ipsec site-to-site peer remote-site tunnel 3 remote prefix '10.20.100.0/24'

commit
save

Сценарий 3: VPN с QoS для приоритизации трафика

configure

# Определение классов трафика
set traffic-policy shaper VPN-SHAPER bandwidth '100mbit'
set traffic-policy shaper VPN-SHAPER class 10 bandwidth '40%'
set traffic-policy shaper VPN-SHAPER class 10 match VOICE ip dscp 'ef'
set traffic-policy shaper VPN-SHAPER class 20 bandwidth '30%'
set traffic-policy shaper VPN-SHAPER class 20 match VIDEO ip dscp 'af41'
set traffic-policy shaper VPN-SHAPER class 30 bandwidth '30%'
set traffic-policy shaper VPN-SHAPER default bandwidth '20%'

# Применение политики к VPN интерфейсу
set interfaces tunnel tun0 traffic-policy out 'VPN-SHAPER'

commit
save

Сценарий 4: Интеграция с VRRP для высокой доступности

Два VyOS router в режиме HA с общим виртуальным IP для VPN:

Router 1 (Master):

configure

# VRRP Configuration
set high-availability vrrp group VPN-HA vrid '10'
set high-availability vrrp group VPN-HA interface 'eth0'
set high-availability vrrp group VPN-HA virtual-address '203.0.113.100/24'
set high-availability vrrp group VPN-HA priority '200'

# VPN Configuration using VRRP virtual IP
set vpn ipsec site-to-site peer remote-site local-address '203.0.113.100'

commit
save

Router 2 (Backup):

configure

# VRRP Configuration
set high-availability vrrp group VPN-HA vrid '10'
set high-availability vrrp group VPN-HA interface 'eth0'
set high-availability vrrp group VPN-HA virtual-address '203.0.113.100/24'
set high-availability vrrp group VPN-HA priority '100'

# Identical VPN Configuration
set vpn ipsec site-to-site peer remote-site local-address '203.0.113.100'

commit
save

Команды верификации и диагностики

Проверка состояния IPsec

Общий статус IPsec:

show vpn ipsec sa

Пример вывода:

Connection                State    Uptime    Bytes In/Out
------------------------  -------  --------  --------------
office-branch             up       00:15:23  125K/98K
  Tunnel 1                up       00:15:20  125K/98K

Детальная информация о соединении:

show vpn ipsec sa detail

Вывод включает:

  • IKE версию и алгоритмы
  • Состояние туннелей
  • Время установления и переключения SA
  • Счетчики пакетов и байтов
  • Remote и Local ID

Проверка IKE SA (Security Associations)

show vpn ike sa

Пример вывода:

Peer ID / IP                            Local ID / IP
--------------------------------------  ----------------------------
office-router@company.local             yc-router@yandex-cloud.local
198.51.100.20                           51.250.10.50

    State  Encrypt  Hash    D-H Group  NAT-T  A-Time  L-Time
    -----  -------  ------  ---------  -----  ------  ------
    up     aes256   sha256  14         no     2341    28800

Просмотр конфигурации VPN

Полная конфигурация VPN:

show configuration commands | grep vpn

Конкретный peer:

show configuration commands | grep "vpn ipsec site-to-site peer office-branch"

Проверка ключей

Список всех ключевых пар:

show pki key-pair

Вывод:

Key Pair Name         Type    Comment
--------------------  ------  ---------
yc-cloud-key          rsa     Local key
office-remote-key     rsa     Remote peer

Просмотр публичного ключа:

show pki key-pair yc-cloud-key public

Мониторинг трафика

Статистика туннелей:

show vpn ipsec sa statistics

Просмотр счетчиков:

show interfaces tunnel

Отладка и логирование

Включение подробного логирования IPsec:

configure
set vpn ipsec logging log-level '2'
commit

Уровни логирования:

  • 0: Критичные ошибки
  • 1: Ошибки
  • 2: Предупреждения и важные события (рекомендуется)
  • 3: Информационные сообщения
  • 4: Отладочная информация (только для диагностики)

Просмотр логов IPsec:

show log vpn ipsec

Мониторинг в реальном времени:

monitor log vpn ipsec

Системные логи:

show log | match ipsec
show log | match charon

Тестирование связности

Ping через VPN туннель:

ping 10.128.0.11 source-address 192.168.10.1 count 5

Traceroute через туннель:

traceroute 10.128.0.11 source-address 192.168.10.1

Проверка маршрутизации:

show ip route
show ip route 10.128.0.0/16

Устранение неполадок (Troubleshooting)

Ошибки аутентификации

Проблема: Туннель не устанавливается, ошибки аутентификации в логах

Симптомы:

IKE authentication credentials are unacceptable
received NO_PROPOSAL_CHOSEN error notify

Решения:

  1. Проверка соответствия ключей:
# На Router1
show pki key-pair remote-router-key public

# Сравните с локальным ключом на Router2
show pki key-pair local-router-key public

Публичный ключ Router1 должен точно совпадать с импортированным ключом на Router2.

  1. Проверка local-id и remote-id:
# На Router1
show configuration commands | grep "authentication.*-id"

# На Router2
show configuration commands | grep "authentication.*-id"

Убедитесь, что local-id Router1 = remote-id Router2 и наоборот.

  1. Проверка режима аутентификации:
show configuration commands | grep "authentication mode"

Должен быть установлен mode 'rsa' на обеих сторонах.

Несоответствие ключей (Key Mismatch)

Проблема: Ключи не совпадают или повреждены

Диагностика:

# Экспорт и сравнение ключей
show pki key-pair remote-key public | save /tmp/remote-key.txt

# Сравните с оригинальным ключом удаленного узла

Решение:

  1. Удалите поврежденный ключ:
configure
delete pki key-pair remote-key
commit
  1. Импортируйте ключ заново:
set pki key-pair remote-key public key '<correct-public-key>'
commit
save
  1. Перезапустите IPsec:
restart vpn

Проблемы с proposal (алгоритмы шифрования)

Проблема: NO_PROPOSAL_CHOSEN ошибка

Симптомы:

no matching proposal found, sending NO_PROPOSAL_CHOSEN

Решение:

Убедитесь, что IKE и ESP группы идентичны на обеих сторонах:

# Router1
show configuration commands | grep "ike-group IKE-GROUP"
show configuration commands | grep "esp-group ESP-GROUP"

# Router2 - должна быть идентичная конфигурация

Добавьте множественные proposals для совместимости:

configure
set vpn ipsec ike-group IKE-GROUP proposal 2 dh-group '14'
set vpn ipsec ike-group IKE-GROUP proposal 2 encryption 'aes128'
set vpn ipsec ike-group IKE-GROUP proposal 2 hash 'sha256'
commit

Туннель устанавливается, но трафик не проходит

Проблема: IPsec SA активен, но пинг не работает

Диагностика:

  1. Проверка tunnel prefixes:
show configuration commands | grep "tunnel.*prefix"

Убедитесь, что local и remote prefixes правильно настроены и зеркально отражены на обеих сторонах.

  1. Проверка firewall правил:
show firewall

Убедитесь, что трафик из VPN-сетей разрешен.

  1. Проверка NAT:
show nat source rules

VPN-трафик должен быть исключен из NAT:

configure
set nat source rule 10 outbound-interface 'eth0'
set nat source rule 10 source address '10.10.1.0/24'
set nat source rule 10 destination address '10.10.2.0/24'
set nat source rule 10 exclude
commit
  1. Проверка маршрутизации:
show ip route

Должны быть маршруты для удаленных VPN-сетей через туннельный интерфейс.

Dead Peer Detection не работает

Проблема: Туннель не восстанавливается после разрыва

Решение:

configure
set vpn ipsec ike-group IKE-GROUP dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-GROUP dead-peer-detection interval '30'
set vpn ipsec ike-group IKE-GROUP dead-peer-detection timeout '120'
commit
save

Для более агрессивного DPD:

set vpn ipsec ike-group IKE-GROUP dead-peer-detection interval '10'
set vpn ipsec ike-group IKE-GROUP dead-peer-detection timeout '30'

Проблемы с динамическими IP

Проблема: Туннель не устанавливается после смены IP-адреса

Решение:

  1. На стороне с динамическим IP:
configure
set vpn ipsec site-to-site peer remote-site local-address 'any'
set vpn ipsec site-to-site peer remote-site connection-type 'initiate'
commit
  1. На стороне со статическим IP:
configure
set vpn ipsec site-to-site peer remote-site remote-address 'any'
set vpn ipsec site-to-site peer remote-site connection-type 'respond'
commit
  1. Принудительное переподключение:
reset vpn ipsec-peer <peer-name>

Логи для диагностики

Включение детального логирования:

configure
set vpn ipsec logging log-level '3'
set vpn ipsec logging log-modes 'ike'
set vpn ipsec logging log-modes 'esp'
commit

Просмотр детальных логов:

show log vpn ipsec | tail 100
monitor log vpn ipsec

Системные логи charon (IKE daemon):

show log | match charon

Полный сброс и переподключение

Сброс конкретного peer:

reset vpn ipsec-peer office-branch

Полный перезапуск IPsec:

restart vpn

Проверка после перезапуска:

show vpn ipsec sa
show vpn ike sa

Лучшие практики и рекомендации

Управление ключами

1. Длина ключей:

  • Минимум 2048 бит для корпоративных сетей
  • 3072 бита для повышенной безопасности
  • 4096 бит для критичных государственных систем
# Рекомендуемая генерация
generate pki key-pair type rsa length 3072 install <key-name>

2. Регулярная ротация ключей:

  • Меняйте ключи каждые 12-24 месяца
  • Немедленная ротация при подозрении на компрометацию
  • Документируйте процесс ротации

Процесс ротации:

# 1. Генерация новых ключей
generate pki key-pair install new-key

# 2. Обмен публичными ключами
# 3. Обновление конфигурации VPN
configure
set vpn ipsec site-to-site peer remote authentication rsa local-key 'new-key'
commit

# 4. После проверки - удаление старых ключей
delete pki key-pair old-key
commit
save

3. Защита приватных ключей:

  • Всегда используйте парольную защиту для приватных ключей
  • Ограничьте доступ к конфигурации VyOS
  • Регулярное резервное копирование ключей в защищенное хранилище
  • Не передавайте приватные ключи по незащищенным каналам

4. Централизованное управление:

Для больших сетей используйте систему управления ключами:

# Скрипт для автоматизированного обмена ключами
#!/bin/bash
ROUTERS="router1 router2 router3"
for router in $ROUTERS; do
    ssh vyos@$router "show pki key-pair local-key public" > ${router}-public.key
done

Выбор криптографических параметров

1. Diffie-Hellman группы:

  • Группа 14 (2048-bit MODP): Минимально рекомендуемая
  • Группа 19 (256-bit ECP): Оптимальный баланс
  • Группа 20 (384-bit ECP): Максимальная безопасность
# Рекомендуемая конфигурация
set vpn ipsec ike-group IKE-SECURE proposal 1 dh-group '19'

2. Алгоритмы шифрования:

  • AES-256: Стандарт для корпоративных сетей
  • AES-256-GCM: Современный AEAD режим с аутентификацией
  • AES-128-GCM: Для высокопроизводительных систем
# Современная безопасная конфигурация
set vpn ipsec ike-group IKE-MODERN proposal 1 encryption 'aes256gcm16'
set vpn ipsec esp-group ESP-MODERN proposal 1 encryption 'aes256gcm16'

3. Функции хеширования:

  • SHA-256: Стандарт для большинства применений
  • SHA-384/512: Для систем с повышенными требованиями

4. Perfect Forward Secrecy (PFS):

Всегда включайте PFS для защиты от компрометации долгосрочных ключей:

set vpn ipsec esp-group ESP-GROUP pfs 'dh-group19'

Настройка lifetime

Рекомендации по времени жизни SA:

IKE Lifetime:

set vpn ipsec ike-group IKE-GROUP lifetime '28800'  # 8 часов
  • Не устанавливайте слишком короткий lifetime (< 1 час) - увеличивает нагрузку на CPU
  • Оптимальный диапазон: 8-24 часа
  • Для критичных систем: 4-8 часов

ESP Lifetime:

set vpn ipsec esp-group ESP-GROUP lifetime '3600'  # 1 час
  • Оптимальный диапазон: 1-4 часа
  • Для высокозагруженных каналов: 30-60 минут
  • Учитывайте объем трафика и производительность

Мониторинг и логирование

1. Настройка уровней логирования:

configure
# Для продакшена - уровень 2 (warnings)
set vpn ipsec logging log-level '2'

# Для отладки - уровень 3-4
set vpn ipsec logging log-level '3'
set vpn ipsec logging log-modes 'ike'
set vpn ipsec logging log-modes 'esp'
set vpn ipsec logging log-modes 'cfg'

commit
save

2. Автоматизированный мониторинг:

Создайте скрипт для проверки состояния VPN:

#!/bin/bash
# /config/scripts/vpn-monitor.sh

PEERS="office-branch datacenter-vpn"
LOG_FILE="/var/log/vpn-monitor.log"

for peer in $PEERS; do
    STATUS=$(vtysh -c "show vpn ipsec sa | grep $peer | grep -c 'up'")
    if [ $STATUS -eq 0 ]; then
        echo "$(date): WARNING - VPN peer $peer is DOWN" >> $LOG_FILE
        # Попытка восстановления
        vtysh -c "reset vpn ipsec-peer $peer"
    fi
done

Запуск через cron:

configure
set system task-scheduler task vpn-monitor interval '5m'
set system task-scheduler task vpn-monitor executable path '/config/scripts/vpn-monitor.sh'
commit

3. SNMP мониторинг:

configure
set service snmp community public authorization 'ro'
set service snmp community public network '10.0.0.0/8'
commit

4. Syslog интеграция:

configure
set system syslog host 10.0.1.100 facility all level 'info'
set system syslog host 10.0.1.100 facility security level 'warning'
commit

Производительность и оптимизация

1. Настройка MTU для VPN:

configure
# Уменьшение MTU для избежания фрагментации
set interfaces ethernet eth0 mtu '1500'
set interfaces tunnel tun0 mtu '1400'

# Включение MSS clamping
set policy route MSS-CLAMP rule 10 protocol 'tcp'
set policy route MSS-CLAMP rule 10 tcp flags 'SYN'
set policy route MSS-CLAMP rule 10 set tcp-mss '1360'

commit

2. Аппаратное ускорение (если поддерживается):

# Проверка поддержки AES-NI
show system cpu features

3. Оптимизация для высокопроизводительных каналов:

configure
# Использование GCM режима для аппаратного ускорения
set vpn ipsec ike-group IKE-PERF proposal 1 encryption 'aes128gcm16'
set vpn ipsec esp-group ESP-PERF proposal 1 encryption 'aes128gcm16'

# Увеличение буферов (при необходимости)
set system sysctl parameter net.core.rmem_max value '134217728'
set system sysctl parameter net.core.wmem_max value '134217728'

commit

Безопасность и hardening

1. Firewall для VPN трафика:

configure
# Разрешить только IKE и ESP
set firewall name WAN_LOCAL rule 100 action 'accept'
set firewall name WAN_LOCAL rule 100 protocol 'udp'
set firewall name WAN_LOCAL rule 100 destination port '500'
set firewall name WAN_LOCAL rule 100 description 'Allow IKE'

set firewall name WAN_LOCAL rule 110 action 'accept'
set firewall name WAN_LOCAL rule 110 protocol 'udp'
set firewall name WAN_LOCAL rule 110 destination port '4500'
set firewall name WAN_LOCAL rule 110 description 'Allow NAT-T'

set firewall name WAN_LOCAL rule 120 action 'accept'
set firewall name WAN_LOCAL rule 120 protocol 'esp'
set firewall name WAN_LOCAL rule 120 description 'Allow ESP'

commit

2. Ограничение доступа к управлению:

configure
set service ssh access-control allow from '10.0.0.0/8'
set service ssh access-control allow from '192.168.0.0/16'
set service ssh access-control deny from '0.0.0.0/0'

set service https access-control allow from '10.0.0.0/8'
set service https access-control deny from '0.0.0.0/0'

commit

3. Rate limiting для защиты от DoS:

configure
set firewall name WAN_LOCAL rule 90 action 'drop'
set firewall name WAN_LOCAL rule 90 protocol 'udp'
set firewall name WAN_LOCAL rule 90 destination port '500,4500'
set firewall name WAN_LOCAL rule 90 recent count '10'
set firewall name WAN_LOCAL rule 90 recent time '60'
set firewall name WAN_LOCAL rule 90 state new 'enable'

commit

Документирование конфигурации

1. Описания в конфигурации:

configure
set vpn ipsec site-to-site peer office-branch description 'VPN to Moscow Office'
set vpn ipsec ike-group IKE-CORPORATE description 'Corporate VPN IKE parameters'
set vpn ipsec esp-group ESP-CORPORATE description 'Corporate VPN ESP parameters'
commit

2. Ведение changelog:

# Добавление комментария к конфигурации
configure
commit comment "Added VPN tunnel to new branch office in SPb"

3. Резервное копирование:

# Автоматическое резервное копирование конфигурации
configure
set system task-scheduler task backup-config crontab-spec '0 2 * * *'
set system task-scheduler task backup-config executable path '/config/scripts/backup.sh'
commit

Скрипт резервного копирования:

#!/bin/bash
# /config/scripts/backup.sh
DATE=$(date +%Y%m%d-%H%M%S)
cp /config/config.boot /config/backups/config.boot.$DATE
# Оставляем последние 30 копий
ls -t /config/backups/config.boot.* | tail -n +31 | xargs rm -f

Тестирование и валидация

1. Регулярное тестирование:

  • Проверка связности через VPN еженедельно
  • Тестирование failover механизмов ежемесячно
  • Проверка восстановления после отключения питания

2. Нагрузочное тестирование:

# iperf3 тестирование пропускной способности VPN
iperf3 -c 10.10.2.1 -t 60 -P 4

3. Проверка безопасности:

# Валидация криптографических параметров
show vpn ipsec sa detail | grep -E "encr|hash|DH"

Рекомендации по безопасности

Защита приватных ключей

1. Парольная защита:

Всегда генерируйте ключи с парольной защитой:

generate pki key-pair install secure-key
# Введите надежный пароль при запросе

2. Ограничение доступа к системе:

configure
# Двухфакторная аутентификация через RADIUS/TACACS+
set system login radius server 10.0.1.50 key 'radius-secret'
set system login user admin authentication encrypted-password '<hash>'
set system login user admin authentication radius

# Отключение root входа
set system login user root authentication encrypted-password '!'

commit

3. Аудит доступа:

configure
set system syslog global facility auth level 'info'
set system syslog global facility authpriv level 'info'
commit

Защита от атак

1. Anti-replay защита:

IPsec автоматически включает anti-replay защиту. Проверка:

show vpn ipsec sa detail | grep -i replay

2. DPD для обнаружения атак:

configure
set vpn ipsec ike-group IKE-GROUP dead-peer-detection action 'restart'
set vpn ipsec ike-group IKE-GROUP dead-peer-detection interval '30'
commit

3. Rate limiting:

configure
set firewall name WAN_LOCAL rule 85 action 'drop'
set firewall name WAN_LOCAL rule 85 protocol 'udp'
set firewall name WAN_LOCAL rule 85 destination port '500'
set firewall name WAN_LOCAL rule 85 recent count '20'
set firewall name WAN_LOCAL rule 85 recent time '60'
commit

Соответствие стандартам

1. Соответствие ГОСТ (для РФ):

VyOS поддерживает стандартные алгоритмы. Для ГОСТ криптографии требуется дополнительная интеграция.

2. Соответствие PCI DSS:

  • Использование AES-256 или выше
  • Регулярная ротация ключей (минимум ежегодно)
  • Логирование всех событий безопасности
  • Ограничение административного доступа

3. Соответствие HIPAA:

  • Шифрование всех данных в транзите (AES-256)
  • Аутентификация узлов (RSA 2048+ бит)
  • Аудит и логирование доступа
  • Регулярные проверки безопасности

Планирование disaster recovery

1. Документирование конфигурации:

  • Схемы топологии VPN
  • Список всех публичных ключей и их расположение
  • Процедуры восстановления

2. Резервные копии:

# Автоматическое резервирование конфигурации и ключей
configure
set system task-scheduler task daily-backup crontab-spec '0 3 * * *'
set system task-scheduler task daily-backup executable path '/config/scripts/full-backup.sh'
commit

3. Тестирование восстановления:

Регулярно проверяйте процесс восстановления:

  • Восстановление конфигурации из резервной копии
  • Импорт ключей на новую систему
  • Проверка работоспособности VPN после восстановления

Заключение

RSA-аутентификация для IPsec VPN в VyOS предоставляет надежный и масштабируемый метод защиты VPN-туннелей. Ключевые преимущества включают:

  • Безопасность: Асимметричная криптография исключает риски, связанные с общими ключами
  • Масштабируемость: Упрощенное управление ключами в больших сетях
  • Гибкость: Поддержка динамических IP-адресов и различных топологий
  • Совместимость: Стандартные протоколы обеспечивают совместимость с различными VPN-решениями

Основные рекомендации:

  1. Используйте ключи длиной минимум 2048 бит (рекомендуется 3072 бита)
  2. Регулярно ротируйте ключи (каждые 12-24 месяца)
  3. Защищайте приватные ключи паролями
  4. Используйте современные криптографические алгоритмы (AES-256, SHA-256, DH-группа 14+)
  5. Включайте PFS (Perfect Forward Secrecy)
  6. Настраивайте Dead Peer Detection для автоматического восстановления
  7. Мониторьте состояние VPN-туннелей
  8. Регулярно обновляйте VyOS для получения исправлений безопасности
  9. Документируйте конфигурацию и процедуры
  10. Проводите регулярное тестирование и валидацию

При правильной настройке и управлении RSA-аутентификация обеспечивает надежную защиту для VPN-инфраструктуры любого масштаба - от простых Site-to-Site соединений до сложных Hub-and-Spoke и Full-Mesh топологий.