Что такое dh group и PFS


Добрый день! Много уважаемые читатели, компьютерного блога Pyatilistnik.org. В прошлый раз мы с вами разобрали подробную инструкцию, в которой описывался процесс настройки двух этапного VPN канала IP Sec на оборудовании Juniper. Где мы повстречались с таким понятием, как DH Group. Сегодня я бы хотел сделать небольшую заметку, больше всего для себя, дающую определение и расшифровку данного понятия.
Perfect Forward Secrecy
Perfect Forward Secrecy позволяет удостовериться, что ключи, которые используются на второй фазе (то есть, для защиты данных), не были получены из ключей на первой фазе. При включенном PFS во время второй фазы выполняется генерация нового ключа с помощью алгоритма DH. PFS DH Group — длина ключа PFS.
Название групп и соответствующая им длина ключа:
- DH Group 1: 768-bit group — 768 битный модульный экспоненциальный (MODP) алгоритм
- DH Group 2: 1024-bit group — 1024-бит MODP-алгоритм
- DH Group 5: 1536-bit group — 1536-бит MODP-алгоритм
- DH Group 14: 2048-bit group — 2048-бит MODP-группа
- DH Group 15: 3072-bit group
- DH Group 19: 256-bit elliptic curve group — 256-битные случайные эллиптические кривые группы по модулю алгоритма Prime (ECP groups)
- DH Group 20: 384-bit elliptic curve group — 384-бит алгоритм случайных ECP-групп

Популярные Похожие записи:
Ошибка the property session directory location is configured by using group policy
Как переместить диск кворума в Failover cluster
Проверка доступности порта в Zabbix
Get-ADGroup: Управление группами Active Directory
Не открывается объект групповой политики gpedit.msc
Автоматическое наполнение группы AD через PowerShell
VPN IPSec (site-to-site) между виртуальными роутерами Mikrotik за NAT Traversal (NAT-T)¶
Рассмотрим настройку, VPN соединение «site-to-site» как показано ниже. Два удаленных виртуальных маршрутизатора Mikrotik подключены к публичной сети Интернет, через промежуточный сетевой узел — роутер провайдера. Таким образом оба роутера Mikrotik находятся за NAT-T. Статья содержит примеры конфигурации оборудования через консоль, а также через графический интерфейс управления (GUI) (winbox ).
Рабочие станции, а также существующая инфраструктура также находятся за NAT. Каждая сторона Site «A» и Site «B» имеет свою собственную приватную подсеть:
- 10.10.10.0/24 для Site «A»
- 10.5.4.0/24 для Site «B»
- Версия маршрутизаторов Mikrotik: RouterOS 6.41.2 stable (CHR).
- Версия WinBox: 3.18.
В зависимости от версии ОС роутера или программного обеспечения, дальнейшая настройка могут отличаться.
Для установления VPN-соединения необходимо обеспечить выполнения обязательных условий:
-
Сетевая доступность между маршрутизаторами:
- Protocol: UDP, port 500 (for IKE, to manage encryption keys).
- Protocol: UDP, port 4500 (for IPSEC NAT-Traversal mode).
- Protocol: ESP, value 50 (for IPSEC).
- Protocol: AH, value 51 (for IPSEC).
| Client vRouter | Floating IP | VPC-Network IP | Private Network IP |
| Site «A» Mikrotik #1 | 156.67.54.238/32 | 172.16.0.12/32 | 10.10.10.1/32 |
| Site «B» Mikrotik #2 | 156.67.54.143/32 | 172.16.0.15/32 | 10.5.4.11/32 |
В данном примере будет выполнена первоначальная настройка защищенного VPN соединения IPSec «site-to-site», тем самым соединим приватные сети 10.10.10.0/24 и 10.5.4.0/24, которые находятся за маршрутизаторами.
Конфигурация Site «A»
1-A. Выполняем настройку IPsec peer. На этом этапе необходимо настроить параметры:
- address (адрес удаленного пира — роутера),
- auth-method (метод аутентификации),
- secret (секретное слово),
- my-id (мой идетнитфикатор).
Остальные параметры оставляем по умолчанию, без изменений. Рассмотрим, как выполнить эту настроку из консоли:
/ip ipsec peer add address=156.67.54.143/32 my-id=address:172.16.0.12 auth-method=pre-shared-key secret="123456"
Проверяем внесенные изменения:
[admin@Site "A"] > ip ipsec peer print Flags: X - disabled, D - dynamic, R - responder 0 address=156.67.54.143/32 auth-method=pre-shared-key secret="123456" generate-policy=no policy-template-group=default exchange-mode=main send-initial-contact=yes nat-traversal=yes my-id=address:172.16.0.12 proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-256,aes-128 dh-group=modp1024 lifetime=1d dpd-interval=2m dpd-maximum-failures=5
Как видно из вывода команды «ip ipsec peer print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:
2-A. Для следующих шагов важно, чтобы предложенные алгоритмы аутентификации и шифрования совпадали на обоих маршрутизаторах. В этом примере мы будем использовать настройки параметров «по умолчанию». Чтобы просмотреть и проверить настройки параметра «proposal» выполняем команду «ip ipsec proposal print»:
[admin@Site "A"] > ip ipsec proposal print Flags: X - disabled, * - default 0 * name="default" auth-algorithms=sha1 enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m pfs-group=modp1024
3-A. Задаем policy (полтитики) для IPSec:
/ip ipsec policy add src-address=10.10.10.0/24 src-port=any dst-address=10.5.4.0/24 dst-port=any \ sa-src-address=172.16.0.12 sa-dst-address=156.67.54.143 \ tunnel=yes action=encrypt proposal=default
Проверяем внесенные изменения в параметры «policy»:
[admin@Site "A"] > ip ipsec policy print Flags: T - template, X - disabled, D - dynamic, I - invalid, A - active, * - default 0 T * group=default src-address=::/0 dst-address=::/0 protocol=all proposal=default template=yes 1 A src-address=10.10.10.0/24 src-port=any dst-address=10.5.4.0/24 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=172.16.0.12 sa-dst-address=156.67.54.143 proposal=default ph2-count=1
Как видно из вывода команды «ip ipsec policy print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:
После того как мы выполнили предыдущие 3 шага по настройке маршрутизатора на стороне «A», переходим к настройке роутера на стороне «B».
Конфигурация Site «B»
1-B. Настройка параметров «IPsec peer» для Site «B» практически идентична конфигурации Site «A», отличаются только два параметра: IP-адрес удаленного пира — «address» и свой идентификатор — «my-id».
Выполнить эту настроку из консоли:
/ip ipsec peer add address=156.67.54.238/32 my-id=address:172.16.0.15 auth-method=pre-shared-key secret="123456"
Проверяем внесенные изменения:
[admin@Site "B"] > ip ipsec peer print Flags: X - disabled, D - dynamic, R - responder 0 address=156.67.54.238/32 auth-method=pre-shared-key secret="123456" generate-policy=no policy-template-group=default exchange-mode=main send-initial-contact=yes nat-traversal=yes my-id=address:172.16.0.15 proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-256,aes-128 dh-group=modp1024 lifetime=1d dpd-interval=2m dpd-maximum-failures=5
Как видно из вывода команды «ip ipsec peer print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:
2-B. Проверяем, что параметры «proposal» созданы по умолчанию и совпадают параметрами роутера на стороне «A»:
[admin@Site "B"] > ip ipsec proposal print Flags: X - disabled, * - default 0 * name="default" auth-algorithms=sha1 enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m pfs-group=modp1024
Рузультаты вывода команд «ip ipsec proposal print» совпадают на обоих роутерах, между которыми будет создан туннель.
3-B. Cоздадим политики IPsec на стороне «B»:
/ip ipsec policy add src-address=10.1.101.0/24 src-port=any dst-address=10.1.202.0/24 dst-port=any \ sa-src-address=192.168.80.1 sa-dst-address=192.168.90.1 \ tunnel=yes action=encrypt proposal=default
Проверяем внесенные изменения в параметры «policy»:
[admin@Site "B"] > ip ipsec policy print Flags: T - template, X - disabled, D - dynamic, I - invalid, A - active, * - default 0 T * group=default src-address=::/0 dst-address=::/0 protocol=all proposal=default template=yes 1 A src-address=10.5.4.0/24 src-port=any dst-address=10.10.10.0/24 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=172.16.0.15 sa-dst-address=156.67.54.238 proposal=default ph2-count=1
Как видно из вывода команды «ip ipsec policy print», параметры применились корректно. Теперь рассмотрим как эти же настройки применить через графический интерфейс управления роутером:
После того, как будут корректно выполнены шаги «1-A»-«3-A» и «1-B»-«3-B», туннель должен установиться и на обоих маршрутизаторах должны быть созданы две ассоциации безопасности .
Для проверки установления VPN-соединения на обоих маршрутизаторах необходимо поочередно выполнить команды «ip ipsec remote-peers print» и «ip ipsec installed-sa print».
[admin@Site "A"] > ip ipsec remote-peers print Flags: R - responder, N - natt-peer # ID STATE REMOTE-ADDRESS DYNAMIC-ADDRESS UPTIME 0 RN established 156.67.54.143 7h55m41s [admin@Site "B"] > ip ipsec remote-peers print Flags: R - responder, N - natt-peer # ID STATE REMOTE-ADDRESS DYNAMIC-ADDRESS UPTIME 0 N established 156.67.54.238 7h58m45s
Из результата вывода выполнения команды «ip ipsec remote-peers print» видно, что соединение установилось (STATE — established). При этом флаг «N» показывает, что удаленный пир находится за NAT.
[admin@Site "A"] > ip ipsec installed-sa print Flags: H - hw-aead, A - AH, E - ESP 0 E spi=0xBDAD9B src-address=156.67.54.143:4500 dst-address=172.16.0.12:4500 state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size=256 auth-key="b09b24558822f70d618f86479ff06c948da2c3d8" enc-key="9d41abb6e038fead6b2943251e9a18589cbf96a1b21c9424d62c0d26d8cf3d08" add-lifetime=24m/30m replay=128 1 E spi=0xE4C9D3 src-address=172.16.0.12:4500 dst-address=156.67.54.143:4500 state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size=256 auth-key="55971cf3d89e5377d1191ed7f9ba4253f1b6fe05" enc-key="0415a2ad4d141fd10642bf3c8e99f24e2d424295ac2b0f84d10c351972359706" add-lifetime=24m/30m replay=128 [admin@Site "B"] > ip ipsec installed-sa print Flags: H - hw-aead, A - AH, E - ESP 0 E spi=0xE4C9D3 src-address=156.67.54.238:4500 dst-address=172.16.0.15: state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size= auth-key="55971cf3d89e5377d1191ed7f9ba4253f1b6fe05" enc-key="0415a2ad4d141fd10642bf3c8e99f24e2d424295ac2b0f84d10c3519723 add-lifetime=24m/30m replay=128 1 E spi=0xBDAD9B src-address=172.16.0.15:4500 dst-address=156.67.54.238: state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size= auth-key="b09b24558822f70d618f86479ff06c948da2c3d8" enc-key="9d41abb6e038fead6b2943251e9a18589cbf96a1b21c9424d62c0d26d8c add-lifetime=24m/30m replay=128
Правила «обхода» NAT
На этом этапе, если отправить трафик через туннель IPsec, он не будет работать, пакеты будут потеряны. Это связано с тем, что оба маршрутизатора имеют правила NAT (маскарад), которые изменяют адрес источника перед шифрованием пакета. Маршрутизатор не может зашифровать пакет, поскольку адрес источника не совпадает с адресом, указанным в конфигурации политики. Для получения дополнительной информации см. Пример потока пакетов IPsec.
Чтобы это исправить, необходимо настроить правило обхода NAT.
Маршрутизатор Site «A»
/ip firewall nat add chain=srcnat action=accept place-before=0 \ src-address=10.10.10.0/24 dst-address=10.5.4.0/24
[admin@Site "A"] > ip firewall nat print Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=accept src-address=10.10.10.0/24 dst-address=10.5.4.0/24 log=no log-prefix="" 1 chain=srcnat action=masquerade out-interface=WAN log=no log-prefix=""

Маршрутизатор Site «B»
/ip firewall nat add chain=srcnat action=accept place-before=0 \ src-address=10.5.4.0/24 dst-address=10.10.10.0/24
[admin@Site "B"] > ip firewall nat print Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=accept src-address=10.5.4.0/24 dst-address=10.10.10.0/24 log=no log-prefix="" 1 chain=srcnat action=masquerade out-interface=WAN log=no log-prefix=""

Если вы ранее пытались установить IP-соединение до того, как было добавлено правило обхода NAT, вы должны очистить таблицу соединений от существующего соединения или перезапустить оба маршрутизатора.
Очень важно, чтобы правило обхода было в верхней части всех других правил NAT.
© Copyright 2016-2023, SIM-Cloud. Обновлено: апр. 21, 2023.
Language: English / Русский / Deutsch
Этот сайт использует cookie.
Оставаясь на сайте, Вы соглашаетесь с размещением файлов cookie и даете согласие на хранение и обработку ваших персональных данных. Подробнее.
CISCO – Mikrotik — FLEXVPN
В данной документации рассматривается пример рабочей конфигурации соединения роутера CISCO с роутером Mikrotik через GRE туннель с IPSec шифрованием в транспортном режиме. В построении IPsec будет использоваться IKEv2 и аутентификация по PSK. Внутри туннеля будет поднят протокол динамической маршрутизации OSPF для обмена маршрутами о сетях, которые находятся за пирами.
Оборудование и исходные данные:
- Mikrotik hEX, RouterOS — 7.1beta5
- Cisco ISR 4331 – IOS 16.9.6
Предполагаем, что уже между маршрутизаторами есть L3 связанность.

Конфигурация Mikrotik
Несмотря на то, что у mikrotik есть свой собственный CLI, мы будем настраивать через GUI используя “Winbox”. В приложении к документации будет приложен CLI-конфиг mikrotik.
1. Создание GRE туннеля
Открываем Winbox->interfaces -> GRE tunnel -> new

Обязательно указываем имя и tunnel destination (Remote Address) GRE туннеля. Поскольку предполагается, что IP адрес на внешний интерфейс Mikrotik будет получаться по DHCP, то в поле Local Address, мы либо ничего не указываем либо вводим “0.0.0.0”
2. Назначение IP адреса на GRE туннель.
IP -> Address -> new

В данном меню вводим IP адрес GRE туннеля обязательно с маской не ниже 31 (это нужно для дальнейшей корректной работы OSPF) и выбираем GRE интерфейс по имени, которому хотим назначить IP address (имя задаётся в пункте №1)
3. Переходим непосредственно к настройке самого IPsec. Первым делом, нужно создать IKEv2 профиль. Переходим IP -> IPsec -> Profiles -> new. Тут указываем имя профиля, алгоритмы хэширования и шифрования, DH Group, Lifitime IKEv2 SA, параметры работы DPD.

4. Создаём новый IPsec Peer. Переходим IP -> IPsec -> Peer -> new. Даём имя пиру, указываем его IP address, в поле Local Address ничего не указываем или указываем «0.0.0.0», как в настройка GRE интерфейса, поскольку IP адрес нашему Mikrotik выдается по DHCP. Выбираем профиль, созданный в предыдущем пункте и версию IKE.

5. Нужно настроить аутентификацию по сертификатам между пирами. Переходим IP -> IPsec -> Identities -> new. Тут мы выбираем peer, созданный в предыдущем пункте, выбираем Auth. Method – pre-shared key и вводим PSK в поле Secret. Все остальные настройке можно посмотреть на картинке ниже.

6. Создаём IPsec Proposal, даём ему имя, указываем алгоритмы шифрования и хэширования, время жизни IPsec SA. PFS Group в нашем случае не используется.

7. Теперь осталось в настройках IPsec создать политику шифрования, в которой первым делом указываем какой трафик шифровать, в нашем случае это GRE. Идём в IP -> IPsec -> Policies -> new -> General. Тут выбираем снова Peer, созданного в пункте №6, обращаем внимание на то, чтобы галочка рядом с Tunnel не стояла, так как нам надо использовать Transport mode. Если используются Transport mode, то Src и Dst Address указывать не надо, они подставятся автоматически при нажатии кнопки Apply. Если мы хотим внести изменения в Src и Dst адреса, то это надо делать в настройках Peer (пункт №6). Поскольку между пирами нам надо зашифровать GRE трафик, то в поле “Protocol” указываем 47 – это номер протокола GRE

Далее переходим на вкладку Action. Тут проверяем, чтобы в поле “Action” стоял “encrypt”, в “IPsec Protocols” выбираем “esp” и поле “Proposal” выбираем Proposal, созданный в пункте №6.

Чтобы посмотреть статус туннеля на Mikrotik нужно перейти IP -> IPsec -> Active Peers. Если туннель успешно поднялся, то State туннеля должен быть “Established” и счётчики Tx/Rx packets должны расти.

Но счётчики начнут расти после того как внутри туннеля пойдёт трафик, а этого не будет, пока не будут подняты с обеих сторон протоколы динамической маршрутизации в нашем случаем OSPF. Настройки OSPF расписаны в следующих пунктах.
8. Настройка OSPF начинается с создания нового OSPF-Instance. Routing -> OSPF -> Instances -> new. Вводим имя Instance, все остальное указываем как на картинке ниже.

9. Создаём OSPF Area. Routing -> OSPF -> Areas -> new. Даём ей имя, связываем её с нашим OSPF Instance, созданном в пункте №10, в нашем случае мы используем backbone area, поэтому Area ID у неё – 0.0.0.0.

10. Надо включить OSPF на интерфейсах, первым делом на GRE. Routing -> OSPF -> Interface Templates -> new. Выбираем интерфейс, на котором включаем OSPF, Area, созданную в пункте № 9, выбираем сеть, которая настроена на GRE интерфейсе. В пункте№ 2 было описано, что сеть должна быть обязательно с маской не ниже 31, если будет указана маска 32, то OSPF соседство с cisco не поднимется. В “Network type” выбираем “ptp unnumbered”, так как на cisco туннель приземляется на virtual-template. Проверяем OSPF Hello Interval.

Если на противоположной стороне всё настроено, то должно подняться OSPF соседство, и счётчики Tx/Rx пакетов должны начти расти (пункт №9). Проверить ospf соседство можно в Routing -> OSPF -> Neighbors, State должен быть “Full”.

Маршруты, пришедшие по OSPF, можно посмотреть в IP -> Routes. Маршруты, пришедшие по OSPF, имеют флаг Dao. В колонке “Gateway” указан интерфейс, через который пойдёт трафик в сторону сети.

На этом конфигурация Mikrotik завершена, нужно еще проверить Firewall, чтобы не был заблокирован легитимный трафик.
В данном примере, разрешен весь трафик. Настраивается тут IP -> Firewall -> Filter rules.

И настроен dynamic Pat. Настраивается тут IP -> Firewall -> NAT.

Конфигурация CISCO
Маршрутизатор Cisco ISR 4331 мы будем настраивать через CLI.
1. Нам надо убедиться, что в конфиге нет строчки crypto ikev2 fragmentation mtu <>
Если данная строчка присутствует, ее надо обязательно убрать. Cisco в 4 пакете построения IKEv2 посылает данный параметр в качестве payload, но Mikrotik его не понимает и не поднимает туннель.
2. Создаём ikev2 proposal даём ему имя PROP-1, указываем алгоритмы шифрования и хеширования, и diffie hellman group.
crypto ikev2 proposal PROP-1 encryption aes-cbc-256 //алгоритм шифрования aes-cbc-256 integrity sha256 //алгоритм хэширования sha256 group 5 //diffie hellman group - 5
Связываем Ikev2 proposal с ikev2 policy.
crypto ikev2 policy IKEV2_POLICY proposal PROP-1
3. Создаём KEYRING, в котором прописываем PSK, для удалённых пиров
crypto ikev2 keyring KEYRING peer ALL address 0.0.0.0 0.0.0.0 //данный Keyring подходит для всех пиров pre-shared-key local cisco123 pre-shared-key remote cisco123
4. Создаём ikev2 profile.
crypto ikev2 profile VTI_PROFILE_MIKR authentication remote pre-share //используем аутентификацию по PSK для удалённого пира authentication local pre-share //используем аутентификацию по PSK для локального пира keyring local KEYRING// привязываем KEYRING, в котором находится PSK ключи. dpd 10 3 periodic // настраиваем DPD virtual-template 2 mode auto // Связываем profile с virtual-template
5. Создаём ipsec transform-set. Даём ему имя (TSET), указываем алгоритмы шифрования, хэширования и задаём транспортный режим.
crypto ipsec transform-set TSET esp-aes 256 esp-sha512-hmac mode transport
6. Создаём ipsec profile, даём ему имя “IPSEC_PROFILE_MIKR” и связываем его с transform-set, созданного в пункте № 5, и с ikev2 profile, созданного в пункте № 4.
crypto ipsec profile IPSEC_PROFILE_MIKR set transform-set TSET set ikev2-profile VTI_PROFILE_MIKR
7. Создаём loopback интерфейс и даём ему IP адрес, данный IP адрес будет назначаться на интерфейс virtual-template. IP адрес должен быть обязательно с 32 маской — это нужно для корректной работы ospf.
interface Loopback1 ip address 172.16.10.1 255.255.255.255
8. Создаём virtual-template, даём ему номер.
interface Virtual-Template2 type tunnel ip unnumbered Loopback1 // IP адрес будет браться с loopback1 интерфейса ip ospf dead-interval 40 // обозначаем ospf dead интервал. ip ospf mtu-ignore // ospf игнорирует значение mtu tunnel source GigabitEthernet0/0 // указываем физический интерфейс, с которого будет строиться туннель. tunnel protection ipsec profile IPSEC_PROFILE_MIKR // указываем ipsec profile
9. Поднимаем ospf
router ospf 1 network 172.16.10.1 0.0.0.0 area 0 // включаем ospf на интерфейсе Virtual-Template2.
Чтобы проверить поднялся туннель или нет нужно ввести команду:
show crypto ipsec sa peer
interface: Virtual-Access1 Crypto map tag: Virtual-Access1-head-0, local addr 10.0.174.253 protected vrf: (none) local ident (addr/mask/prot/port): (10.0.174.253/255.255.255.255/47/0) remote ident (addr/mask/prot/port): (10.0.200.54/255.255.255.255/47/0) current_peer 10.0.200.54 port 4500 PERMIT, flags= #pkts encaps: 68, #pkts encrypt: 68, #pkts digest: 68 // данный счётчики должны расти #pkts decaps: 66, #pkts decrypt: 66, #pkts verify: 66 // данный счётчики должны расти #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 0, #recv errors 0 local crypto endpt.: 10.0.174.253, remote crypto endpt.: 10.0.200.54 plaintext mtu 1442, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0/0 current outbound spi: 0x3F86120(66609440) PFS (Y/N): N, DH group: none inbound esp sas: spi: 0xBD3CDFCA(3174883274) transform: esp-256-aes esp-sha512-hmac , in use settings = conn id: 2499, flow_id: ESG:499, sibling_flags FFFFFFFF80000008, crypto map: Virtual-Access1-head-0 sa timing: remaining key lifetime (k/sec): (4607991/2947) IV size: 16 bytes replay detection support: Y Status: ACTIVE(ACTIVE) inbound ah sas: inbound pcp sas: outbound esp sas: spi: 0x3F86120(66609440) transform: esp-256-aes esp-sha512-hmac , in use settings = conn id: 2500, flow_id: ESG:500, sibling_flags FFFFFFFF80000008, crypto map: Virtual-Access1-head-0 sa timing: remaining key lifetime (k/sec): (4607993/2947) IV size: 16 bytes replay detection support: Y Status: ACTIVE(ACTIVE) outbound ah sas: outbound pcp sas:
Проверить ospf соседство можно командой show ip ospf neighbor
show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface 172.16.10.4 0 FULL/ - 00:00:32 172.16.10.5 Virtual-Access1
State должен быть в “FULL”, и в поле “интерфейс” у нас значение — “Virtual-Access1”. Это значит, что соседство установлено через Virtual-Access1 интерфейс.
Данной командой смотрим маршруты, пришедшие по ospf.
show ip route ospf
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is 10.0.131.1 to network 0.0.0.0 10.0.0.0/8 is variably subnetted, 10 subnets, 3 masks O 10.0.145.0/24 [110/1001] via 172.16.10.5, 11:11:06, Virtual-Access1
В примере выше трафик в сеть назначения 10.0.145.0/24 пойдёт через Virtual-Access1 интерфейс.
Записки IT специалиста
Настраиваем IPsec-туннель между офисами на оборудовании Mikrotik
- Автор: Уваров А.С.
- 15.01.2022
Задача объединения нескольких сетей в разных офисах одна из наиболее часто встречающихся у системных администраторов. Для ее решения могут использоваться различные виды VPN и туннельных соединений, выбор которых может зависеть от множества требований и условий. Одной из альтернатив туннелям и VPN может служить «чистое» IPsec-соединение, которое имеет как свои достоинства, так и недостатки. В данном материале мы рассмотрим реализацию подобного соединения между сетями офисов (site-to-site) c использованием оборудования Mikrotik.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
IPsec — набор протоколов для обеспечения защиты данных, передаваемых в сетях по протоколу IP. Основным преимуществом IPsec является высокий уровень безопасности, на сегодняшний день он является лучшим протоколом для защиты передаваемых данных. Также следует отметить высокий уровень производительности, при условии достаточного количества вычислительных ресурсов для работы с криптографией. Применительно к устройствам Mikrotik IPsec позволяет получить одни из самых высоких результатов, особенно на устройствах с аппаратной поддержкой шифрования.
Но есть и недостатки, они тоже достаточно существенны. IPsec сложен, как в настройке, так в понимании его работы, это требует от администратора более глубокого уровня знаний и может вызвать серьезные затруднения при отладке и диагностике неисправностей. Также IPsec не использует интерфейсы, а обрабатывает трафик на основании собственных политик, это также приводит к ряду затруднений, начиная от прохождения трафика через брандмауэр и заканчивая невозможностью применения маршрутизации для таких соединений. Часть сетевых конфигураций легко реализуемых при помощи VPN и туннелей построить при помощи IPsec в принципе невозможно.
Далее мы рассмотрим объединение двух офисных сетей по представленной ниже схеме:
![]()
Где LAN 1 с диапазоном 192.168.111.0/24 и LAN 2 — 192.168.186.0/24 — это сети двух офисов, которые мы будем объединять, а 192.168.3.107 и 192.168.3.111 — выполняют роль внешних белых адресов в сети интернет. Наша задача обеспечить прозрачный доступ устройств одной сети в другую через защищенный канал связи.
Настройка IPsec соединения
Соединение IPsec имеет отличия как от предусматривающего клиент-серверную схему VPN, так и от stateless туннелей. В отличие от последних мы всегда можем проверить состояние соединения, но понятие клиента и сервера здесь отсутствует, в IPsec одно из устройств выступает в качестве инициатора (initiator), а второе в качестве ответчика (responder). Эти роли не являются жестко закрепленными и могут меняться между устройствами, хотя при необходимости мы можем закрепить за определенным устройством постоянную роль.
Например, это позволяет установить IPsec соединение, когда один из узлов не имеет выделенного IP-адреса, в этом случае ему следует настроить роль инициатора, а второму узлу роль ответчика. В нашем случае подразумевается наличие выделенных адресов с обоих сторон и каждое из устройств может выступать в любой роли.
Настройку начнем с определения алгоритмов шифрования для каждой фазы соединения. Так как мы соединяем два собственных устройства, то можем не оглядываться на требования совместимости и настроить параметры шифрования на собственное усмотрение. Но без фанатизма, не забываем, что многие устройства Mikrotik достаточно слабые и не имеют аппаратной поддержки шифрования, а те, которые имеют, поддерживают различный набор протоколов.
Так популярный RB750Gr3 (hEX) поддерживает аппаратное ускорение только SHA1/SHA256 — AES-CBC, а более новый RB3011 уже поддерживает SHA1/SHA256 — AES-CBC и SHA1/SHA256 — AES-CTR. Желание использовать сильные шифры безусловно похвально, но оно не должно опережать возможности имеющегося оборудования.
Первая фаза — обмен ключами и взаимная идентификация устройств, за ее настройки отвечает раздел IP — IPsec — Profiles, перейдем в него и создадим новый профиль. Для него укажем: Hash Algorithms — sha1, Encryption Algorithm — aes-256, DH Group — ecp384. В поле Name укажем имя профиля, в нашем случае ipsec-sts (site-to-site).

В терминале для выполнения этого же действия выполните:
/ip ipsec profile
add dh-group=ecp384 enc-algorithm=aes-256 name=ipsec-sts
Это достаточно сильные настройки шифров, для устройств без аппаратного ускорения мы бы посоветовали ограничиться aes-128 и modp1024, хотя никто не мешает протестировать желаемые варианты и остановиться на наиболее оптимальном.
Вторая фаза — установление защищённого соединения и передача данных, настройки шифров для нее задаются в IP — IPsec — Proposal, перейдем в данный раздел и создадим новое предложение. Укажем Auth. Algorithms — sha1, Encr. Algorithms — aes-256-cbc, PFS Group — ecp384.

Это же действие в терминале:
/ip ipsec proposal
add enc-algorithms=aes-256-cbc name=ipsec-sts pfs-group=ecp384
В данном примере мы использовали не самые сильные шифры, так режим шифрования CBC является наиболее слабым и при наличии аппаратной поддержки стоит использовать CTR или GCM. Но не забывайте о достаточной разумности, если нагрузка на устройство велика — понижайте уровень шифрования.
Теперь перейдем в IP — IPsec — Peer и создадим новое подключение. В поле Address указываем внешний адрес второго роутера, в Profile выбираем созданный нами на предыдущем этапе профиль, в нашем случае ipsec-sts, а в поле Exchange Mode указываем IKE2.

В терминале:
/ip ipsec peer
add address=192.168.3.111/32 exchange-mode=ike2 name=sts-peer profile=ipsec-sts
В целом того, что мы уже настроили достаточно для установления защищенного соединения, но IPsec не VPN и работает по-другому. Для того, чтобы трафик начал шифроваться он должен соответствовать одной из политик IPsec, поэтому перейдем в IP — IPsec — Policies и создадим новую политику. В поле Peer укажем созданное ранее соединение, ниже установим флаг Tunnel для работы соединения в туннельном режиме, в поле Src. Address укажем диапазон собственной сети — 192.168.111.0/24, а в поле Dst. Address — диапазон удаленной сети — 192.168.186.0/24.

Затем на закладке Action установите Proposal — ipsec-sts, предложение которое мы создали ранее.

Для терминала используйте следующие команды:
/ip ipsec policy
add dst-address=192.168.186.0/24 peer=sts-peer proposal=ipsec-sts src-address=192.168.111.0/24 tunnel=yes
Ну и осталось совсем немного — научить узлы идентифицировать друг друга, так как оба роутера контролируются администратором и настроены принимать подключения только от другого узла, то мы будем использовать аутентификацию по предварительному ключу. Перейдем в IP — IPsec — Identities и создадим новую настройку идентификации. Здесь нам нужно заполнить поля: Peer — указываем созданное нами соединение, в нашем случае ipsec-sts, Auth. Method — pre shared key, Secret — предварительный ключ. В качестве предварительного ключа рекомендуется использовать строку с использованием цифр, букв в разных регистрах и специальных символов, сформированных в случайном порядке и с длинной не менее 16-32 символов. Не следует использовать в качестве ключа словарные слова и фразы. Предупреждения внизу окна можно проигнорировать.

В терминале:
/ip ipsec identity
add peer=sts-peer secret="2KuSY2%QKt\$\$gs8V9nrERD@V8zAuh\$3S"
На втором узле следует выполнить аналогичные настройки, только в качестве адреса в Peer указав внешний адрес первого роутера, а в Policy поменяв местами сеть источника и сеть назначения.
Настройка брандмауэра
Будем считать, что вы используете нормально закрытый брандмауэр настроенный в соответствии с нашими рекомендациями. Для того, чтобы разрешить входящее IPsec-соединение перейдем в IP — Firewall — Filter Rules и добавим следующие правила. Первое из них разрешает работу протокола обмена ключами IKE: Chain — input, Protocol — udp, Dst. Port — 500,4500, In. Interface — внешний интерфейс, в нашем случае ether1.

Второе правило разрешает протокол шифрования полезной нагрузки Encapsulating Security Payload (ESP): Chain — input, Protocol — 50 (ipsec-esp), In. Interface — внешний интерфейс — ether1.

Обратите внимание, что мы нигде не указываем действие, потому что по умолчанию все правила имеют в качестве действия accept — разрешить.
Эти же действия можно быстро выполнить в терминале:
/ip firewall filter
add action=accept chain=input dst-port=500,4500 in-interface=ether1 protocol=udp
add action=accept chain=input in-interface=ether1 protocol=ipsec-esp
Для того, чтобы пакеты из одной сети могли попасть в другую, следует разрешить их транзит. Создадим еще одно правило: Chain — forward, In. Interface — внешний интерфейс — ether1, затем на закладке Advanced укажем IPsec Policy — in:ipsec. Это разрешит транзит любых входящих пакетов, которые попадают под любую установленную политику IPsec.

В терминале:
/ip firewall filter
add action=accept chain=forward in-interface=ether1 ipsec-policy=in,ipsec
Аналогичные настройки следует выполнить на втором узле.
Обход NAT и Fasttrack
Как мы уже говорили, IPsec не использует интерфейсы, а следовательно, обрабатываемый им трафик, хоть и уходит в защищенный туннель, но продолжает использовать в качестве исходящего внешний интерфейс, что может привести к ряду коллизий. Прежде всего нужно исключить обработку такого трафика правилами snat или masquerade. Для этого перейдем в IP — Firewall — NAT и создадим новое правило: Chain — srcnat, Src. Address — 192.168.111.0/24 — диапазон локальной сети, Dst. Address — 192.168.186.0/24 — диапазон удаленной сети, так как действие по умолчанию accept, то явно его не указываем. Данное правило поднимаем в самый верх, одно должно быть первым в цепочке srcnat.

Через терминал добавить его можно следующей командой:
/ip firewall nat
add action=accept chain=srcnat dst-address=192.168.186.0/24 src-address=192.168.111.0/24 place-before=0
Опция place-before=0 позволяет поставить правило в самое начало цепочки.
Если вы используете Fasttrack, то также следует исключить обработку проходящего через IPsec трафика этим механизмом, для этого следует добавить два правила. Первое для трафика из локальной сети в удаленную: Chain — forward, Src. Address — 192.168.111.0/24 — диапазон локальной сети, Dst. Address — 192.168.186.0/24 — диапазон удаленной сети, Сonnection State — established, related.
![]()
Второе правило для трафика из удаленной сети в локальную, оно полностью повторяет первое, только меняем местами сеть источника (Src. Address) и сеть назначения (Dst. Address).
/ip firewall filter
add chain=forward action=accept place-before=0 src-address=192.168.111.0/24 dst-address=192.168.186.0/24 connection-state=established,related
add chain=forward action=accept place-before=0 src-address=192.168.186.0/24 dst-address=192.168.111.0/24 connection-state=established,related
Аналогичные настройки, с учетом адресов, следует выполнить и на втором узле.
Заключение
После того, как мы завершили процесс настройки перейдем в IP — IPsec — Active Peers и убедимся, что соединение между двумя узлами установлено. Если это не так — еще раз проверяем все настройки и изучаем файл лога, скорее всего у вас не совпадают параметры шифрования или идентификации.
![]()
Теперь откроем IP — IPsec — Installed SAs. В терминах IPsec — SA (Security Association) — ассоциация безопасности, обозначает установленное защищенное соединение. Для каждого соединения создается отдельная пара SA, так как каждая SA — это однонаправленное соединение, а данные нужно передавать по двум направлениям. Если запустить обмен данными между сетями, скажем пропинговать с узла одной сети узел другой сети, то мы увидим, что данные счетчика Current Bytes начинают меняться, а следовательно, шифрование работает и данные передаются внутри защищенного соединения.
![]()
Как видим, если хотя бы на базовом уровне понимать принципы действия IPsec, то настроить туннель между двумя сетями относительно несложно. Надеемся, что данный материал будет вам полезен.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Mikrotik
- Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
- Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
- Базовая настройка роутера MikroTik
- Расширенная настройка DNS и DHCP в роутерах Mikrotik
- Автоматическое резервное копирование настроек Mikrotik на FTP
- Проброс портов и Hairpin NAT в роутерах Mikrotik
- Настройка IPTV в роутерах Mikrotik на примере Ростелеком
- Настройка VPN-подключения в роутерах Mikrotik
- Настройка черного и белого списков в роутерах Mikrotik
- Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
- Настройка OpenVPN-сервера на роутерах Mikrotik
- Безопасный режим в Mikrotik или как всегда оставаться на связи
- Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
- Настраиваем Port Knocking в Mikrotik
- Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
- Настраиваем родительский контроль на роутерах Mikrotik
- Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
- Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
- Mikrotik CHR — виртуальный облачный роутер
- Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
- Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
- Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
- Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
- Установка Mikrotik CHR на виртуальную машину Proxmox
- Защита RDP от перебора паролей при помощи оборудования Mikrotik
- Настройка SSTP VPN-сервера на роутерах Mikrotik
- Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
- Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
- Настройка туннелей GRE и IPIP на роутерах Mikrotik
- Правильное использование Fast Path и FastTrack в Mikrotik
- DHCP Snooping — настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
- Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
- Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik
The Dude
- The Dude. Установка и быстрое начало работы
- Централизованное управление обновлением RouterOS при помощи The Dude
- Централизованный сбор логов Mikrotik на сервер The Dude
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
![]()
![]()
Или подпишись на наш Телеграм-канал: