toggle menu

MikroTik IPSec

8

IPSec у MikroTik RouterOS

MikroTik IPSec (IP Security) — набір протоколів та алгоритмів для шифрування данних, визначених Інженерною робочою групою з Інтернету (IETF), у незахищених IP/IPv6 мережах, таких як Інтернет. Підтверджує достовірність, здійснює перевірку цілісності та/або шифрування IP пакетів. IPSec не встановлює правила шифрування трафіку, а надає протоколи та алгоритми, за допомогою яких адміністратори створюють захищені канали для передачі данних.

Протоколи MikroTik ІPsec можна розподілити на наступні групи:

  • Internet Key Exchange (IKE). Протоколи обміну ключами в Інтернеті. Динамічно генерують і поширюють криптографічні ключі для AH та ESP.
  • Authentication Header (AH). Заголовок аутентифікації RFC 4302. RouterOS підтримує наступні алгоритми аутентифікації для AH:
    • SHA2 (256, 512)
    • SHA1
    • MD5
  • Encapsulating Security Payload (ESP). Інкапсуляція захищеного корисного навантаження  - тунелювання (ESP) RFC 4303

Плюси та мінуси IPSec

Переваги:

  • Відкриті стандарти, що розширюються
  • Має широкий набір алгоритмів шифрування та хеширування трафіку
  • Працює на мережевому рівні моделі OSI
  • Шифрує вихідний пакет повністю або від транспортного рівня та вище
  • Використовує механізм подолання NAT
  • Не потрібні додаткові оплати/ліцензії

Недоліки:

  • Складність
  • Cильні алгоритми шифрування потребують високої обчислювальної потужності
  • Легко виявляється DPI

IPSec у Mikrotik

IPSec доступний безкоштовно на будь-якому пристрої під керуванням RouterOS з установленим пакетом Security.

Апаратне шифрування

Для розвантаження процесора у деякі моделі пристроїв MikroTik додають апаратне прискорення шифрування. Повний перелік обладнання MikroTik з підтримкою IPSec доступний за посиланням: https://wiki.mikrotik.com/wiki/Manual:IP/IPsec

Найбільш бюджетні моделі пристроїв MikroTik з підтримкою IPSec: hEX, hEX S, RB3011UiAS-RMRB4011iGS+RM, hAP ac2cAP ACSXTsq 5 acDISC Lite5 acLDF 5 ac

Розбіжності 6.42.X, 6.43.X, 6.44.X та 6.45Х

Меню конфігурації IPSec розрізняється у залежності від версії RouterOS, що використовується. Наприклад,

У нових тестових версіях завжди є зміни - перед оновленням читайте примітки до релізу.


IPSec конфігурація

Меню IP -> IPSec. Як видно зі схем, основні розділи конфігурації - профілі та однорангові вузли. Вкладки Remote Peers та Installed SAs - інформаційні.

Peers та Peers Profiles

Конфігурація Peers IPSec для встановлення IKE з'єднання та створення допоміжного захищеного тунелю.

Налаштування віддалених пірів IPSec


Налаштування профілів (Proposals) для узгодження Phase 1

Policies та Policy Proposals

У вкладці Policies перевіряють пакети, що проходять, на відповідність умовам та застосовують зазначені дії. Якщо повернутися до Packet flow, то блоки з IPSec Policy і є звірка з політиками. У діях задається: протокол захисту IPSec (ESP або AH), пропозиції для узгодження SA, режим інкапсуляції.

Пакет проходить усі перевірки по черзі, доки не співпаде з умовами однієї з них.

Налаштування Policies

Примітки
  • Зазвичай не потрібно вказувати конкретний Src. и Dst. Port, але є можливість шифрувати трафік окремого додатку 
  • Cписок Protocols включає не всі IP протоколи, але можна вказати номер потрібного протоколу вручну
  • Шаблони не є політиками! Вони використовуються, якщо у конфігурації піру установлено generate-policy
  • Що робити, якщо певні SA для політики не були знайдені. Раніше з L2TP/IPSec була проблема, коли декілька клієнтів через один NAT не могли підключитися (використовуючи IKE), даний баг вирішується (за умови, що ці клієнти не windows), якщо установити level=unique. Інакше переходьте на IKEv2
  • Під час налаштування політик використовуйте режим Safe mode.

Налаштування пропозицій (Proposals) для узгодження SA

Groups

Використовуються для зв'язку шаблонів Policies та Peers.

Mode Config

Відправлення та отримання параметрів IP без використання додаткових протоколів. Дозволяє утворювати самодостатній Client-to-Server VPN тільки засобами IPSec.

Keys и Users

Використовуються для розширеної аутентифікації Peers.

Keys

Ключі RSA: генерація, імпорт, експорт. Не підтримуються в IKEv2.


Users

База даних користувачів xAuth для сервера. Клієнт зазначає налаштування xAuth у конфігурації Peer. Можливо пересилати аутентифікацію xAuth на RADIUS сервер.

Remote Peers

Перелік усіх Peers, що встановлюють і встановили допоміжний тунель (Phase 1). Можна видаляти Peer для оновлення ключів допоміжного тунелю.

Installed SAs

База даних SAD або перелік усіх узгоджених SA. Можна переглянути алгоритми захисту даних і ключі, що використовуються.

Hardware AEAD вказує на застосування апаратного шифрування.


SA адміністратор може скинути (за умови, що одночасно і всі одного типу - ESP або AH).

IPSec та Firewall

У брандмауері перевіряється відповідність трафіку вхідній або вихідній IPSec політиці. Загальновідоме застосування - L2TP/IPSec. Якщо трафік не був попередньо зашифрований, можна заборонити встановлення L2TP з'єднань.

mikrotik-ipsec-ntema29.jpg (5 KB)

Протоколи та порти, що використовуються в IPSec

  • IKE - UDP: 500
  • IKEv2 - UDP: 4500
  • NAT-T - UDP: 4500
  • ESP - ipsec-esp (50)
  • АХ - ipsec-ах (51)


IPSec та кінцеві точки

Таблицю з алгоритмами хеширування та шифрування для Windows, iOS, OS-X можна знайти тут: https://wiki.mikrotik.com/wiki/Manual:IP/IPsec

Наприклад, Android не підтримує IKEv2, скористайтеся StrongSwan.

#Mikrotik1
/ip address
add address=10.10.10.10/24 interface=ether1 network=10.10.10.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
/ip route
add distance=1 gateway=10.10.10.1 dst-address=0.0.0.0/0

#Mikrotik2
/ip address
add address=10.20.20.20/24 interface=ether1 network=10.20.20.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
/ip route
add distance=1 gateway=10.20.20.1 dst-address=0.0.0.0/0


IPSec у тунельному режимі


Покрокове налаштування:

  • Створіть Proposals для IKE Phase1
  • Створіть Peer. Вкажіть адресу, Proposals, режим обміну, PSK ключ. Можна IKEv2, а також за бажанням main/agressive
  • Створіть Proposals для SA
  • Зазначте підмережі, між якими створюється тунель
  • Зазначте адреси SA, тунельний режим та Proposals для шифрування трафіку
  • Відредагуйте правило NAT


Перевірка установленого з'єднання

Бачимо сусіда у Remote Peers:

Бачимо встановлені SA (доки трафік не запущений - лічильники не змінюються):

mikrotik-ipsec-ntema32-2.jpg (33 KB)

У Policies статус Established і прапорець (A)ctive:

mikrotik-ipsec-ntema32-3.jpg (37 KB)

IPIP/IPSec

Попереднє налаштування IPIP тунелю:

#Mikrotik1
#Налаштування інтерфейсу ipip
/interface ipip
add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.20.20.20
#Установка ip адреси на ipip інтерфейс
/ip address
add address=10.30.30.1/30 interface=ipip-vpn
#Статичний маршрут до віддаленої підмережі
/ip route
add distance=1 dst-address=192.168.200.0/24 gateway=10.30.30.2

#Mikrotik2
#Все аналогічно, змінюються тільки адреси та підмережі
/interface ipip
add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.10.10.10
/ip address
add address=10.30.30.2/30 interface=ipip-vpn
/ip route
add distance=1 dst-address=192.168.100.0/24 gateway=10.30.30.1

Покрокова конфігурація IPSec:

  • Створіть Proposals для IKE Phase1
  • Створіть Peer. Вкажіть адресу, Proposals, режим обміну, PSK ключ
  • Створіть Proposals для SA
  • Зазначте підмережі, між якими створюєте тунель
  • Зазначте адреси SA, тип трафіку, який будете шифрувати, та Proposals

Зверніть увагу, на фото нижче видно відмінність налаштування тунельного та транспортного режиму в IPSec Policies:

mikrotik-ipsec-ntema34.jpg (40 KB)

Перевірка з'єднання транспортного режиму ідентична тунельному режиму.

L2TP/IPSec

Вищезазначені приклади підходять для створення постійних VPN між двома Peers із статичними зовнішніми IP адресами.

Коли адреса одного з Peers динамічна (знаходиться за NAT), використовуйте іншу Client-to-Server VPN.

Попередня конфігурація L2TP:

#Створення пула адрес для клієнтів
/ip pool
add name=pool-l2tp ranges=192.168.77.10-192.168.77.20
#Створення профілю для клієнтів
/ppp profile
add change-tcp-mss=yes local-address=192.168.77.1 name=l2tp-ipsec only-one=yes remote-address=pool-l2tp use-compression=no use-encryption=no use-mpls=no use-upnp=no
#Створення облікових записів
/ppp secret
add name=user1 password=test1 profile=l2tp-ipsec service=l2tp
add name=user2 password=test2 profile=l2tp-ipsec service=l2tp
add name=user3 password=test3 profile=l2tp-ipsec service=l2tp
#Включення серверу L2TP (без автоматичного налаштування ipsec)
/interface l2tp-server server
set authentication=chap,mschap2 default-profile=l2tp-ipsec enabled=yes

Налаштування IPSec:

  • Створіть нову групу (можна використати default)
  • Створіть Proposals для IKE Phase1
  • Створіть Peer (підмережу). Якщо PSK ключ не приймається і windows - клієнт, то можна обрати сертифікати або PSK
  • Пропишіть passive=yes та send-init-contact=no, в generate-policy=port-strict (приймати порт від клієнта)
  • Створіть Proposals для SA
  • Створіть шаблон для генерації Policies
  • Зазаначте Proposal для SA

Конфігурація firewall для створення L2TP підключень тільки після IPSec

/ip firewall filter
#Дозволяємо IKE, NAT-T та ipsec-esp
add chain=input protocol=17 dst-port=500,4500 action=accept
add chain=input protocol=50 action=accept

#Дозволяємо L2TP, тільки якщо є політика ipsec для даного трафіку
add chain=input protocol=17 dst-port=1701 ipsec-policy=in,ipsec action=accept
add chain=input protocol=17 dst-port=1701 action-drop

IKEv2 VPN

Налаштувати VPN сервер, використовуючи лише IPSec, можливо за допомогою mode config. Нижче наведена конфігурація серверної частини.

Операційні системи Windows та Android працюють з такими VPN серверами виключно з використанням аутентифікації за сертифікатами або EAP.

Попередня генерація сертифікатів:

#Root CA та самопідпис
/certificate add name=ca common-name="IKEv2 CA" days-valid=6928
/certificate sign ca ca-crl-host=<IP роутера>

#Сертифікат для серверу vpn
/certificate add common-name=<IP роутера> subject-alt-name=IP:<IP роутера> key-usage=tls-server name=vpn days-valid=6928

#Підпис серверного сертифікату
/certificate sign vpn ca=ca

#Сертифікат для клієнта
#Клієнти з одним сертифікатом не зможуть працювати одночасно, тому генеруйте по одному для кожного
#Для скасування доступу необхідно зробити Revoke клієнтського сертифікату
/certificate add common-name=client key-usage=tls-client name=client days-valid=6928

#Підпис клієнтського сертификату
/certificate sign client ca=ca

Налаштування IKEv2 VPN

Створіть:

‎✓ IP пул для роздачі клієнтам

‎✓ Профіль mode config для роздачі параметрів IP клієнтам

‎✓ Групи для зв'язку Peers та шаблонів Policies

‎✓ Proposals для IKE Phase1

‎✓ Профіль для підключення Peers. Аутентифікація через сертифікати, протокол IKEv2, пасивний режим

✓ Зазначьте профіль mode config, групу для зв'язку Peers та шаблонів Policies, а також включіть генерацію Policies

Створіть:

✓ Proposals для SA

✓ Шаблон для генерації політик

✓ Зазначьте Proposals для SA

У разі вдалого з'єднання з'явиться динамічна Policies, запис в Remote Peers та пара SA.

mikrotik-ipsec-ntema37.jpg (39 KB)

mikrotik-ipsec-ntema38.jpg (29 KB)

mikrotik-ipsec-ntema39.jpg (34 KB)

До речі, у ліцензії RouterOS x86 demo відсутні обмеження щодо чисельності IPSec тунелів, у т. ч. IKEv2 VPN.

MikroTik ROS7 IPsec + Radius + Let's Encrypt

Залиште свій коментар