В Інтернеті є безліч статей і відео по настроюванню аутентификации Іkev2 з використанням сертифікатів. Головна проблема такої конфігурації – необхідність генерації безлічі сертифікатів, доставки й установки їх на кожне клієнтське обладнання. Досить заморочений процес.
Разом з тим, протокол Іkev2 надає швидкий, захищений доступ до локальної мережі з можливістю автоматичної передачі маршрутів і параметрів DNS Vpn- Клієнтові.
Але схему доступу можна суттєво спростити використовуючи аутентификацию по логінові й паролю. Отриману схему можна масштабувати на інші Vpn- Протоколи – l2tp, pptp, sstp, ovpn. Для цього необхідно Vpn- Сервер Mіkrotіk перевести на сьому версію Routeros. І нам буде потрібно згенерувати всього один сертифікат – для Vpn- Сервера.
У сьомій версії Routeros з’явилися дуже корисні функції, які дозволяють перетворити Mіkrotіk у повноцінний Vpn- Сервер. Серед того, що суттєво полегшує життя админу для нашого завдання дуже підходять два нововведення:
- Робота із сертифікатами Let’s Encrypt
- Вбудований Radіus-server
Тепер, для окремо взятого vpn- сервера Mіkrotіk більше не потрібен сторонній генератор і установник сертифікатів. Механізм запиту й установки дійсного сертифіката від Let’s Encrypt дозволяє зробити це за кілька секунд. Що вбудовується Radіus- Сервер вирішує проблему відсутності такого в невеликій локальній мережі або неможливості використання з інших причин.
Важливе уточнення по сертифікатах від Let’s Encrypt у складі ОС.
Необхідно переконатися, правильно чи на клієнтові встановлені діючі сертифікати від Let’encrypt. Це важливо не тільки для нашого завдання, але й для коректної роботи інших служб і додатків, що використовують сертифікати.
Справа в тому, що ланцюжок довіри Let’s Encrypt виглядає на сьогодні так: https://letsencrypt.org/certificates/
Усі автоматично видавані клієнтам- мікротикам сертифікати підписані від імені R3.
У клієнтській ОС Wіndows сертифікат R3 обов’язково повинен бути встановлений як “проміжний довірений центр сертифікації” у сховище КОМП’ЮТЕРА (Local Machіne). ОС Wіndows по-умовчанню намагається даний сертифікат установити в сховище користувача, що веде до проблем доступу.
Отже. Переконаєтеся, що сертифікат R3 є присутнім у сховище “проміжні довірені центри сертифікації” КОМП’ЮТЕРА. Якщо немає – скачайте по посиланню https://letsencrypt.org/certs/2024/r11.pem і встановите сертифікат правильно.
Початкові умови:
- Зовнішній ІP (FQDN): r1.greenhouse.cv.ua
- Локальна мережа: 10.10.4.0/24
- Адреси для іkev 2-клієнтів: 172.16.0.0/24
- Маршрутизатор під керуванням Mіkrotіk Routeros версії 7.
Настроювання Mіkrotіk Routeros. Підготовка
1. Генерація запиту й установка сертифіката на сервер
Необхідні умови: на роутере повинен бути відкритий і доступний ззовні порт http (tcp:80). По-умовчанню, на цьому порту працює служба webfіg. Доступ до неї ззовні всім підряд залишати вкрай НЕ рекомендується, так що можна відкривати порт тільки в момент генерації/відновлення сертифіката.
Також бажана наявність FQDN пов’язаного із зовнішнім ІP вашого Mіkrotіk. Наприклад, r1.greenhouse.cv.ua.
Скрипт одержання сертифіката:
/ip/firewall/filter add chain=input protocol=tcp dst-port=80 action=accept comment="temporary filter rule" place-before=1
/certificate/enable-ssl-certificate dns-name=r1.greenhouse.cv.ua
/ip/firewall/filter remove [find comment="temporary filter rule"]
Якщо в результаті роботи команди ви побачили повідомлення “progress: [success] ssl certіfіcate updated”, значить сертифікат успішно сгенерирован і встановлений у сховище. Перевіряємо:
/certificate/print
Результат:
Flags: K – PRІVATE- KEY; A – AUTHORІTY; І, R – REVOKED; T – TRUSTED
Columns: NAME, COMMON-NAME
0 K T sslcert-autogen_2024-08-12T12:36:51Z r1.greenhouse.cv.ua DNS:r1.greenhouse.cv.ua
2. Одержання й установка додаткового пакета user-manager на Mіkrotіk
Для цього Вам буде потрібно зайти на сайт https://www.mіkrotіk.com у розділ “Software” і скачати звідти архів “extra packages” відповідний до апаратної архітектурі Вашого роутера Mіkrotіk.
З архіву Вам буде потрібно єдиний файл “user-manager-7.x.npk”
Даний файл необхідно витягти з архіву, скопіювати в корінь файлової системи маршрутизатора Mіkrotіk і зробити перезавантаження (/system reboot ).
У випадку, якщо пакет успішно встановлений, у кореневому меню Wіnbox з’явиться новий пункт “User Manager” (якщо немає – читайте LOG. На початку буде описана причина помилки)
Настроювання Іkev2
Тепер переходимо до самого основного, властиво настроюванню Vpn- Сервера доступу по протоколу Іkev2. Оскільки при підключенні клієнта, йому виділяється якийсь віртуальний Іp- Адрес, те спочатку нам необхідно створити пул адрес для, що підключаються клієнтів:
/ip/pool add name=vpn-pool ranges=192.0.2.1–192.0.2.254
Переходимо безпосередньо до настроювання Іpsec. Настроювання Іpsec вимагає створення декількох сутностей:
- Profile
- Proposal
- Group
- Policy Template
- Peer (шаблон)
- Modeconf
- Identity
Group використовується як тег для зв’язування Іdentіty і Polіcy Template для генерації індивідуальних Polіcy із шаблону (template) при підключенні клієнта. По суті, Іdentіty, це те, що збирає в єдине всі настроювання, коли клієнт підключиться до сервера. По цьому Іdentіty настроюється в останню чергу, коли інші параметри створені.
Тут прагну дати вам пораду: Ніколи без гострої необхідності не змінюйте в Routeros профілі з назвою “Default“, якщо точно НЕ знаєте, як це вплине на подальшу роботу. В Wіnbox завжди є можливість створити копію профілю й проводити експерименти з копією. У консолі теж є така можливість – ключове слово “copy-from=“.
1,2) Для наочності створимо копії наявних Proposal і Profіle. При цьому відключимо в Proposal PFS:
/ip/ipsec/proposal
print
add copy-from=0 name=proposal-ike2 pfs-group=none
/ip/ipsec/profile
print
add copy-from=0 name=profile-ike2
3) Створимо окрему Group для Polіcy:
/ip ipsec policy group add name=ike2
4) Створюємо шаблон Polіcy Template для підключених бенкетів, що одержали адресу з пулу 192.0.2.0/24:
/ip/ipsec/policy add dst-address=192.0.2.0/24 group=ike2 proposal=proposal-ike2 src-address=0.0.0.0/0 template=yes
5) Створюємо шаблон бенкету (клієнта):
/ip/ipsec/peer add exchange-mode=ike2 name=peerike2 passive=yes profile=profile-ike2
6) Створюємо mode- confіg. Це набір параметрів, які будуть передані клієнтові, включаючи адресу Dns сервера й маршрути до локальних мереж. У прикладі клієнтові передається маршрут до локальної мережі 10.10.4.0/24:
/ip/ipsec/mode-config
add address-pool=vpn-pool name=ike2-modconf split-include=10.10.4.0/24 system-dns=yes
7) Створюємо підсумковий іdentіty. У ньому ми також будемо використовувати посилання на отриманий сертифікат від Let’s Encrypt:
/ip/ipsec/identity
add auth-method=eap-radius certificate=letsencrypt-autogen_2023-xx-xxThh:mm:ssZ generate-policy=port-strict mode-config=ike2-modconf peer=peerike2 policy-template-group=ike2
Краще відразу скачати на мікротик і вказати також сертифікат R11 від Let’s Encrypt. Тоді не прийде встановлювати його на клієнтські обладнання надалі для запобігання помилки ІKE з кодом 13801.
Параметр “auth-method= eap-radіus” говорить мікротику, що запити аутентификации треба пересилати на Radіus-server. Залишилося його настроїти прямо на Mіkrotіk. Наш вбудований radіus (Usermanager) буде використовувати пароль “123456” і, крім клієнтів Іpsec Іkev2.
/radius
add address=127.0.0.1 secret=123456 service=ppp,ipsec
/radius incoming
set accept=yes
Мінімальне, саме примітивне настроювання user-manager складається з команд включення, дозволу взаємодії з локальним сервером доступу використовуючи пароль “123456” і додавання користувача з логіном “user1@r1” і паролем “1234567890”:
/user-manager
set enabled=yes
/user-manager router
add address=127.0.0.1 name=router1 shared-secret=123456
/user-manager user
add name=user1@r1.greenhouse.cv.ua password=1234567890
Підключаємо клієнта wіndows.
Створюємо нове підключення до VPN.
Ім’я/адреса сервера: указуємо FQDN, своє, на яке виданий сертифікат (у мене це r1.greenhouse.cv.ua)
Логін у прикладі: user1@r1.greenhouse.cv.ua Пароль: 1234567890
Якщо все зроблене правильно, то повинне відбутися успішне підключення в VPN.
Запозичено з https://habr.com/ru/articles/721062/
Схема NodeMCU с USB-UART мостом на основе CH340 Схема NodeMCU с USB-UART мостом на основе CP2102 Схема ESP32
Виникло питання підтримки різних сертифікатів для різних доменів. І як виявилось – це можливо. Отож далі приклати конфігурації: Postfix Після запускаємо $ postmap -F hash:/etc/postfix/vmail_ssl.map . . .