К основному контенту

Пример по настройке и конфигурации IPsec-туннеля для безопасного соединения сетей

IPsec (Internet Protocol Security) используется для обеспечения безопасного обмена данными между сетями. В данной инструкции описывается настройка IPsec между двумя криптошлюзами: GW-Alpha (192.168.100.1) и GW-Beta (192.168.200.1). Все параметры вымышленные, но соответствуют типовым настройкам.

Команды, использованные в инструкции, относятся к конфигурации VyOS или EdgeRouter (Ubiquiti). Эти устройства используют синтаксис команд CLI, схожий с Juniper Junos, но ориентированный на программное обеспечение с открытым исходным кодом.

Ниже приведены примеры для Cisco, Mikrotik, Fortinet или pfSense,

1. Фазы работы IPsec

IPsec работает в два основных этапа:

Фаза 1 (IKE – Internet Key Exchange)

Фаза 1 предназначена для установления безопасного канала между двумя узлами. Она включает в себя:

  1. Аутентификацию сторон – используется либо предварительно разделенный ключ (PSK), либо цифровые сертификаты.

  2. Обмен ключами – осуществляется с использованием алгоритма Диффи-Хеллмана (DH), который позволяет установить общий секретный ключ.

  3. Выбор алгоритмов защиты – определяются параметры шифрования и хеширования.

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

Фаза 2 (ESP – Encapsulating Security Payload)

Фаза 2 отвечает за установление защищенного туннеля для передачи данных.

  1. Определение политик защиты – выбор алгоритмов шифрования и хеширования.

  2. Создание туннеля ESP – установление безопасного соединения между сетями.

  3. Обмен данными – трафик передается через защищенный канал, шифруется и проверяется на целостность.

2. Исходные данные

ПараметрGW-Alpha (Локальная сторона)GW-Beta (Удаленная сторона)
IP криптошлюза192.168.100.1192.168.200.1
Локальная сеть10.10.10.0/2410.20.20.0/24
Алгоритм шифрования (IKE)AES-256AES-256
Алгоритм хеширования (IKE)SHA-256SHA-256
Протокол обмена ключамиIKEv2IKEv2
Способ аутентификацииPSK (предварительно разделенный ключ)
Алгоритм шифрования (ESP)AES-256AES-256
Алгоритм хеширования (ESP)SHA-256SHA-256
Группы DHGroup 14Group 14
Время жизни SA (секунды)36003600

3. Настройка IPsec на GW-Alpha

  1. Настроить политику IKE (фаза 1):

    set vpn ipsec ike-group IKE-GROUP proposal 1 encryption aes256
    set vpn ipsec ike-group IKE-GROUP proposal 1 hash sha256
    set vpn ipsec ike-group IKE-GROUP dh-group 14
    set vpn ipsec ike-group IKE-GROUP lifetime 3600
  2. Настроить политику ESP (фаза 2):

    set vpn ipsec esp-group ESP-GROUP proposal 1 encryption aes256
    set vpn ipsec esp-group ESP-GROUP proposal 1 hash sha256
    set vpn ipsec esp-group ESP-GROUP pfs disable
    set vpn ipsec esp-group ESP-GROUP lifetime 3600
  3. Настроить туннель IPsec:

    set vpn ipsec site-to-site peer 192.168.200.1 authentication mode pre-shared-secret
    set vpn ipsec site-to-site peer 192.168.200.1 authentication pre-shared-secret "SuperSecretKey"
    set vpn ipsec site-to-site peer 192.168.200.1 ike-group IKE-GROUP
    set vpn ipsec site-to-site peer 192.168.200.1 local-address 192.168.100.1
    set vpn ipsec site-to-site peer 192.168.200.1 tunnel 1 esp-group ESP-GROUP
    set vpn ipsec site-to-site peer 192.168.200.1 tunnel 1 local prefix 10.10.10.0/24
    set vpn ipsec site-to-site peer 192.168.200.1 tunnel 1 remote prefix 10.20.20.0/24
  4. Сохранить и применить настройки:

    commit
    save

4. Примеры настройки IPsec для Windows и Linux

4.1. Настройка IPsec на Windows

  1. Открыть Сетевые подключенияСвойства VPN.

  2. В разделе Безопасность выбрать IPsec.

  3. Выбрать ДополнительноИспользовать предварительно разделенный ключ.

  4. Ввести ключ: SuperSecretKey.

  5. Выбрать Протокол IKEv2.

  6. Сохранить настройки и подключиться к VPN.

4.2. Настройка IPsec на Linux

Для Linux можно использовать strongSwan:

sudo apt install strongswan

Редактируем конфигурацию /etc/ipsec.conf:

config setup
    charondebug="ike 2, net 2"
    uniqueids=no

conn myvpn
    keyexchange=ikev2
    ike=aes256-sha256-modp2048
    esp=aes256-sha256
    left=192.168.100.1
    leftsubnet=10.10.10.0/24
    right=192.168.200.1
    rightsubnet=10.20.20.0/24
    authby=secret
    auto=start

Добавляем ключ в /etc/ipsec.secrets:

192.168.100.1 192.168.200.1 : PSK "SuperSecretKey"

Перезапускаем службу:

sudo systemctl restart strongswan
sudo ipsec status

5. Проверка работоспособности

После настройки IPsec можно проверить его статус следующими командами:

show vpn ipsec sa
show vpn ipsec ike sa

Если туннель работает, должны отображаться активные соединения. В случае проблем можно проверить журналы:

sudo tail -f /var/log/syslog | grep ipsec

6. Настройка IPsec для других вендоров 

6.1. Cisco (IOS)

crypto isakmp policy 10
 encryption aes 256
 hash sha256
 authentication pre-share
 group 14
 lifetime 3600
!
crypto isakmp key SuperSecretKey address 192.168.200.1
!
crypto ipsec transform-set TS esp-aes 256 esp-sha256-hmac
!
crypto map VPN-MAP 10 ipsec-isakmp
 set peer 192.168.200.1
 set transform-set TS
 match address 101
!
interface GigabitEthernet0/0
 crypto map VPN-MAP
!
access-list 101 permit ip 10.10.10.0 0.0.0.255 10.20.20.0 0.0.0.255

6.2. Mikrotik (RouterOS)

/ip ipsec peer add address=192.168.200.1 auth-method=pre-shared-key secret=SuperSecretKey exchange-mode=ike2 \
    enc-algorithm=aes-256 hash-algorithm=sha256 dh-group=modp2048 lifetime=1h
/ip ipsec policy add src-address=10.10.10.0/24 dst-address=10.20.20.0/24 protocol=all action=encrypt \
    level=unique sa-src-address=192.168.100.1 sa-dst-address=192.168.200.1 proposal=default

6.3. Fortinet (FortiGate)

config vpn ipsec phase1-interface
    edit "VPN-TO-GW-BETA"
        set interface "wan1"
        set peertype any
        set proposal aes256-sha256
        set dhgrp 14
        set remote-gw 192.168.200.1
        set psksecret "SuperSecretKey"
    next
end

config vpn ipsec phase2-interface
    edit "VPN-TO-GW-BETA-P2"
        set phase1name "VPN-TO-GW-BETA"
        set proposal aes256-sha256
        set dst-subnet 10.20.20.0 255.255.255.0
    next
end

6.4. pfSense

  1. Перейти в VPNIPsec.

  2. Добавить новую запись Phase 1:

    • Remote Gateway: 192.168.200.1

    • Authentication: Pre-Shared Key (SuperSecretKey)

    • Encryption: AES-256

    • Hash Algorithm: SHA-256

    • DH Group: 14

  3. Добавить Phase 2:

    • Local Network: 10.10.10.0/24

    • Remote Network: 10.20.20.0/24

    • Encryption Algorithm: AES-256

    • Hash Algorithm: SHA-256

  4. Сохранить и применить изменения.

7. Проверка работоспособности

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

Cisco:

show crypto ipsec sa
show crypto isakmp sa

Mikrotik:

/ip ipsec active-peers print
/ip ipsec installed-sa print

Fortinet:

diagnose vpn tunnel list

pfSense:

  • Перейти в Status → IPsec


Эта инструкция описывает настройку IPsec между двумя узлами с использованием предварительно разделенного ключа (PSK). При необходимости можно использовать аутентификацию по сертификатам. Правильная настройка IPsec обеспечивает безопасное соединение между удаленными сетями.

Комментарии

Популярные сообщения из этого блога

Настройка и подключение IPSec в Windows

Настройка IPSec на Windows включает в себя создание правил безопасности и фильтров для защиты сетевого трафика. Ниже — пошаговое руководство. Включение службы IPSec Перед настройкой убедитесь, что служба IPSec Policy Agent запущена: Нажмите Win + R , введите services.msc и нажмите Enter . Найдите IPsec Policy Agent . Если она не работает, нажмите ПКМ → Свойства . Установите Тип запуска: Автоматически , затем нажмите Запустить . Настройка политики IPSec через «Локальную политику безопасности» Нажмите Win + R , введите secpol.msc , нажмите Enter . Перейдите в Политики IP-безопасности в локальном компьютере . В правом окне нажмите Создать политику IP-безопасности → Далее . Укажите имя политики (например, "IPSec VPN"), снимите флажок Активировать правило по умолчанию , нажмите Далее . Нажмите Добавить , чтобы создать правило. Транспортный или туннельный режим : Если IPSec для защищенной локальной сети – выберите Транспортный режим . Если IPSec для VPN – выберите Туннельн...

Как найти и изменить репозитарии для CentOS 8

В CentOS 8 официальные репозитории (BaseOS, AppStream и Extras) управляются с помощью dnf и файлов конфигурации в /etc/yum.repos.d/ . Вот как их найти и изменить: 1. Просмотр текущих репозиториев dnf repolist Если нужно увидеть подробную информацию: dnf repolist all 2. Изменение репозиториев Файлы конфигурации репозиториев находятся в /etc/yum.repos.d/ . Например, основной репозиторий может быть в файле CentOS-AppStream.repo . Открыть его можно так: nano /etc/yum.repos.d/CentOS-AppStream.repo Внутри можно изменить: enabled=1 → включает репозиторий enabled=0 → отключает репозиторий baseurl= или mirrorlist= → задать новый источник пакетов 3. Замена недоступных репозиториев CentOS 8 достиг конца поддержки , и официальные зеркала больше не работают. Вместо них можно подключить Vault или AlmaLinux/Rocky Linux : Использование архивного репозитория CentOS Vault Создайте резервную копию старых .repo файлов: mkdir /root/repo-backup && mv /etc/yum.repos.d/*.repo /root/repo-backu...

Что такое Redfish API? Развертывание серверов через Redfish API: подробное руководство с примерами

Введение в Redfish API Redfish API — это стандартный интерфейс управления серверами, разработанный DMTF (Distributed Management Task Force). Он предоставляет RESTful API для взаимодействия с серверными системами, включая включение/выключение, мониторинг состояния и развертывание операционной системы. Этот API позволяет автоматизировать управление серверами без необходимости физического доступа или использования устаревших интерфейсов, таких как IPMI. Требования Прежде чем приступить к работе, необходимо подготовить следующее: Сервер с поддержкой Redfish (например, HPE iLO, Dell iDRAC, Lenovo XClarity, Cisco UCS и др.). Доступ к Redfish API через сеть. Учетные данные для аутентификации. Инструмент для работы с API (cURL, Postman, Python с библиотекой requests ). Подключение и аутентификация Для взаимодействия с Redfish API используется стандартный HTTP-запрос с аутентификацией по логину и паролю. Например, для проверки работоспособности интерфейса можно выполнить GET-запрос ...