Настройка VPN средствами IPsec Mikrotik

Стандарт IPsec создавался для обеспечения безопасности незащищенного протокола IP. Достигается это путем добавления собственных заголовков в оригинальный пакет для его инкапсуляции, т.е. сокрытия оригинального содержимого.

Стандарт IPsec создавался для обеспечения безопасности незащищенного протокола IP. Достигается это путем добавления собственных заголовков в оригинальный пакет для его инкапсуляции, т.е. сокрытия оригинального содержимого.

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

Чтобы правильно настроить VPN с помощью IPsec, необходимо понимать базовые принципы.

Принципы работы протокола IPsec и базовые термины

IPsec - это набор протоколов, которые можно разделить на следующие основные группы:

  • Internet Key Exchange (IKE) - протоколы, которые генерируют и раздают ключи шифрования для AH и ESP; 
  • Authentication Header (AH) - протокол заголовка аутентификации, предназначен для проверки целостности передаваемого пакета данных (защита от изменения содержимого пакета или подмены исходного адреса);
  • Encapsulating Security Payload (ESP) - защищенный протокол инкапсуляции данных, обеспечивает непосредственную защиту данных путем шифрования на общих ключах, а также имеет собственную схему аутентификации подобную AH;

IPsec может работать в двух режимах: транспортном и туннельном:

  • В транспортном режиме, ESP-заголовок вставляется между IP-заголовком и полезными данными оригинального пакета, а в конец добавляется ESP-трейлер и ESP-аутентификация. Шифруются только полезные данные и ESP-трейлер. Транспортный режим может быть использован для защиты туннелей, организованных иным способом (например L2TP).
  • В туннельном режиме, оригинальный ip-пакет инкапсулируется в новый и таким образом шифруется весь исходный пакет. Туннельный режим используется для создания VPN.

При создании туннеля создается связь, которая называется SA (Security Association).
Каждая связь SA создается для однонаправленного соединения. Так как данные необходимо передавать в двух направлениях, то SA создаются парами. Одна пара SA создается для протокола AH, другая для ESP. Созданные SA хранятся в базе данных узлов (роутеров Mikrotik), которые создают туннель.

Если на узле создалась SA - значит VPN туннель успешно установлен.

На каждом узле имеется база данных политики безопасности (Security Policy Database).
Политики содержат следующие настройки:

  • алгоритмы шифрования/дешифрования;
  • способы идентификация узла: pre-shared keys или RSA-сертификат;
  • как часто повторять идентификацию узла и менять ключ шифрования;
  • использовать режим туннеля или транспорта;
  • контрольные суммы целостности данных;
  • использовать AH, ESP или оба;
  • опция PFS и выбор группы Deffie Hellman.

Установка соединения IPsec происходит в два этапа: Phase 1 и Phase 2.

Первоначальная аутентификация сторон и обмен общими секретными ключами происходит с помощью протокола IKE. Процесс работы протокола IKE состоит из двух этапов:

Phase 1
Узлы согласовывают алгоритмы для последующего обмена информацией и аутентифицируются. Происходит обмен общими ключами по алгоритму Deffie Hellman. В результате создается безопасный канал IKE SA.

Phase2
Генерируются ключи шифрования IPsec, согласовываются политики. В результате создается соединение IPsec SA

В новой версии протокола IKEv2 процесс происходит за одну фазу в несколько шагов.

Site-to-Site туннель: создание постоянного VPN IPsec

Site-to-site туннель позволяет создать постоянный защищенный канал VPN между двумя офисами через интернет. Каждый офис имеет свою локальную сеть и нуждается в доступе к локальной сети другого офиса.

Адреса 10.1.100.1 и 10.2.100.1 в реальности не относятся к публичным ip-адресам и не используются в сети интернет.

Нормальной работе IPsec туннеля могут препятствовать правила NAT и Fasttrack. Это необходимо учесть и создать правила обхода перед настройкой VPN или после.

Обход NAT и Fasttrack

Без обхода NAT и Fasttrack туннель IPsec не будет работать!

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

Правило обхода NAT помогает решить эту проблему.

Office 1:

/ip firewall nat
add chain=srcnat action=accept place-before=0 src-address=192.168.1.0/24 dst-address=192.168.2.0/24

Office 2:

/ip firewall nat
add chain=srcnat action=accept place-before=0 src-address=192.168.2.0/24 dst-address=192.168.1.0/24

Правило должно находиться выше всех остальных правил в таблице NAT.

Если на роутере используется Fasttrack, то это тоже сломает работу IPsec так как пакеты будут обходить политики IPsec. Для решения этой проблемы добавьте разрешающие правила accept перед Fasttrack.

Нужно на обоих роутерах разрешить прохождение транзитного трафика в двух направлениях - из сети офиса 1 в сеть офиса 2 и в обратном направлении:

/ip firewall filter
add chain=forward action=accept place-before=1
src-address=192.168.1.0/24 dst-address=192.168.2.0/24 connection-state=established,related
add chain=forward action=accept place-before=1
src-address=192.168.2.0/24 dst-address=192.168.1.0/24 connection-state=established,related

На картинке ниже пример правила для трафика из сети Офиса 1 в сеть Офиса 2. Правило для обратного направления трафика будет отличаться адресами Src. Address 192.168.2.0/24 и Dst. Address 192.168.1.0/24

Однако создание правил в таблице Filter сможет существенно повысить нагрузку на CPU в случаях, когда используется множество туннелей и передается значительное количество траффика. В такой ситуации лучше не использовать таблицу Filter для правил обхода, а создать их в IP/Firewall/RAW. Это позволит не отслеживать соединения и исключить обработку находящихся выше правил , что приведет к снижение нагрузки на CPU.

/ip firewall raw
add action=notrack chain=prerouting src-address=192.168.1.0/24 dst-address=192.168.2.0/24
add action=notrack chain=prerouting src-address=192.168.2.0/24 dst-address=192.168.1.0/24

После добавление правил на обоих роутерах, в таблице RAW должны присутствовать следующие правила:

Настройка IPsec на роутере офиса №1:

1. Настройте Profile для фазы 1

Профили определяют набор параметров, которые будут использованы для согласования IKE в фазе 1.

dh-groupe - выбор группы Deffie Hellman
enc-algoritn - алгоритм шифрования
name - имя профиля

/ip ipsec profile
add hash-algorithm=md5 dh-group=modp2048 enc-algorithm=3des name=Office2-ike1

При выборе алгоритма шифрования следует учитывать влияние на производительность канала. Если скорость канала важна для вас - выбирайте алгоритмы, которые Mikrotik поддерживает аппаратно. На wiki Mikrotik есть таблица.

2. Настройте Proposal для фазы 2

Proposal или предложение - информация, которая будет отправлена сервисами IKE, чтобы установить соединения SA по определенным политикам.

auth-algorithms - алгоритм аутентификации;
enc-algorithms - алгоритм шифрования;
name - имя политики (указывайте такое же как в профиле, чтобы было понятно к какому профилю относится политика);
pfs-group (Perfect Foorward Security) - генерирует дополнительные сессионные ключи на основе ключей сторон и согласует их по алгоритму Деффи Хеллмана (даже если общий ключ будет перехвачен, то трафик им расшифровать не получится).

/ip ipsec proposal
add auth-algorithms=sha256 enc-algorithms=3des name=Office2-ike1 pfs-group=modp2048

3. Добавьте Peer

Здесь указывается информация необходимая для установки соединения между демонами IKE двух узлов. Затем это соединение будет использовано для согласования ключей и алгоритмов для соединений SA.

address - публичный адрес удаленного роутера
name - любое понятное имя
profile - профиль используемый для соединения

Для работы IPsec должны быть доступны порты UDP/4500 (IPsec NAT traversal) и UDP/500 (IKE). Проверьте файрволл, чтобы не было правил, блокирующих трафик на эти порты.

/ip ipsec peer
add address=10.2.100.1/32 name=Office2-ike1 profile=Office2-ike1

4. Создайте Identity - секретная фраза для идентификации.

Выберите Peer и укажите секретный идентификатор Secret. Чем сложнее Secret тем лучше, поэтому для его создания лучше воспользоваться генератором пароля.

/ip ipsec identity
add peer=Office2-ike1 secret=MySecret!

5. На завершающем этапе создайте Policy (Политику), которая контролирует сети/хосты защищенного канала.

src-address - адрес сети источника (офиса 1)
dst-address - адрес сети назначения (офиса 2)
src-port - порт источника (any - все порты)
dst-port - порт назначения
tunnel - туннельный режим
action - что делать с пакетами (encrypt - шифровать)
proposal - какое применять предложение
peer - с каким узлом устанавливать соединение

/ip ipsec policy
add src-address=192.168.1.0/24 src-port=any dst-address=192.168.2.0/24 dst-port=any tunnel=yes action=encrypt proposal=Office2-ike1 peer=Office2-ike1

Конфигурация IPsec для роутера офиса №2:

Конфигурация второго узла идентична первому, с соответствующими ip-адресами. Последовательность настройки выполняйте в таком же порядке.

Начните с настройки Profile и Proposal.

/ip ipsec profile
add hash-algorithm=md5 dh-group=modp2048 enc-algorithm=3des name=Office1-ike1
/ip ipsec proposal
add auth-algorithms=sha256 enc-algorithms=3des name=Office1-ike1 pfs-group=modp2048

Затем добавьте Peer и Identity.

/ip ipsec peer
add address=10.1.100.1/32 name=Office1-ike1 profile=Office1-ike1
/ip ipsec identity
add peer=Office1-ike1 secret=MySecret!

В завершении создайте Policy.

/ip ipsec policy
add src-address=192.168.1.0/24 src-port=any dst-address=192.168.2.0/24 dst-port=any tunnel=yes action=encrypt proposal=Office1-ike1 peer=Office1-ike1

Ниже, на слайде, представлены все настройки IPsec второго узла в Winbox:

После настройки двух узлов установится туннельное соединение и на роутерах будут созданы связи IPsec Security Associations:

/ip ipsec
active-peers print
installed-sa print

Дополнительно можно проверить работу политик:

/ip ipsec
policy print status

IPsec туннель установлен. Можете проверить хождение трафика, пустив icmp-запрос (ping) с рабочей станции одной сети на рабочую станцию в другой сети.

1 thought on “Настройка VPN средствами IPsec Mikrotik

  1. Вохид

    Добрый день !
    Можете подскащать, как и то проверить?
    тунель сам поднялся, но трафик не ходит, правила в NAT & filter rule добавлены

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *