Эта статья о том, как перестать мучиться с сертификатами для IKEv2-RSA и их установкой.

В Интернете есть множество статей и видео по настройке аутентификации IKEv2 с использованием сертификатов. Главная проблема такой конфигурации — необходимость генерации множества сертификатов, доставки и установки их на каждое клиентское устройство. Довольно замороченный процесс, согласитесь?

Вместе с тем, протокол IKEv2 предоставляет быстрый, защищенный доступ к локальной сети с возможностью автоматической передачи маршрутов и параметров DNS VPN‑клиенту.
Но схему доступа можно существенно упростить используя аутентификацию по логину и паролю. Полученную схему можно масштабировать на прочие VPN‑протоколы — l2tp, pptp, sstp, ovpn. Для этого необходимо VPN‑сервер MikroTik перевести на седьмую версию RouterOS. И нам потребуется установить всего один сертификат — для VPN‑сервера.

В седьмой версии RouterOS появились очень полезные функции, которые позволяют превратить MikroTik в полноценный VPN‑сервер. Среди того, что существенно облегчает жизнь админу для нашей задачи очень подходят два новшества:

  • Работа с сертификатами Let's Encrypt

  • Встроенный Radius‑сервер

Теперь, для отдельно взятого vpn‑сервера MikroTik больше не требуется сторонний генератор и установщик сертификатов. Механизм запроса и установки действительного сертификата от Let's Encrypt позволяет сделать это за несколько секунд. Встраиваемый Radius‑сервер решает проблему отсутствия такового в небольшой локальной сети или невозможности использования по иным причинам.

Важное уточнение по сертификатам от Let's Encrypt в составе ОС.

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

Дело в том, что цепочка доверия Let's Encrypt выглядит на сегодня так:

https://letsencrypt.org/certificates/

Иерархия сертификатов Let's Encrypt
Иерархия сертификатов Let's Encrypt

Все автоматически выдаваемые клиентам‑микротикам сертификаты подписаны от имени R3.
В клиентской ОС Windows сертификат R3 обязательно должен быть установлен как «промежуточный доверенный центр сертификации» в хранилище КОМПЬЮТЕРА (Local Machine). Самая распространенная проблема при импорте сертификата обычно находится в метре от ПК и кликает «мышкой». ОС Windows по‑умолчанию пытается данный сертификат установить в хранилище пользователя, что ведет к проблемам доступа.

Итак. Убедитесь, что сертификат R3 присутствует в хранилище «промежуточные доверенные центры сертификации» КОМПЬЮТЕРА. Если нет — скачайте по ссылке https://letsencrypt.org/certs/lets‑encrypt‑r3.pem и установите сертификат правильно.

Выбор правильного хранилища для сертификата
Выбор правильного хранилища для сертификата

Начальные условия:

  • Внешний IP (FQDN): gw1.mt-courses.ru

  • Локальная сеть: 10.10.4.0/24

  • Адреса для ikev2-клиентов: 192.0.2.0/24

  • Маршрутизатор под управлением MikroTik RouterOS версии 7.x

Настройка MikroTik RouterOS. Подготовка

1. Генерация запроса и установка сертификата на сервер

Необходимые условия: на роутере должен быть открыт и доступен извне порт http (tcp:80). По‑умолчанию, на этом порту работает служба webfig. Доступ к ней извне всем подряд оставлять крайне НЕ рекомендуется, так что можно открывать порт только в момент генерации/обновления сертификата.

Также желательно наличие FQDN связанного с внешним IP вашего MikroTik. Например, gw1.mt‑courses.ru.

Скрипт получения сертификата:

/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=gw1.mt-courses.ru
/ip/firewall/filter remove [find comment="temporary filter rule"]

Если в результате работы команды вы увидели сообщение «progress: [success] ssl certificate updated«, значит сертификат успешно сгенерирован и установлен в хранилище. Проверяем:

/certificate/print

Результат:

Flags: K — PRIVATE‑KEY; A — AUTHORITY; I, R — REVOKED; T — TRUSTED
Columns: NAME, COMMON‑NAME

0  K T letsencrypt‑autogen_2023–xx–xxThh:mm:ssZ gw1.mt‑courses.ru

2. Получение и установка дополнительного пакета user-manager на MikroTIk

Для этого Вам потребуется зайти на сайт https://www.mikrotik.com в раздел «Software» и скачать оттуда архив «extra packages» соответствующий аппаратной архитектуре Вашего роутера MikroTik.

Внешний вид страницы загрузки пакетов RouterOS версии 7
Внешний вид страницы загрузки пакетов RouterOS версии 7

Обратите внимание, чтобы номер версии пакета точно соответствовал установленной версии RouterOS! Невозможно установить пакеты версии, отличающейся от версии установленной на роутере операционной системы.

Из архива Вам потребуется единственный файл «user‑manager-7.x.npk»

Содержимое архива extra-packages
Содержимое архива extra-packages

Данный файл необходимо извлечь из архива, скопировать в корень файловой системы маршрутизатора MikroTik и произвести перезагрузку (/system reboot ).

В случае, если пакет успешно установлен, в корневом меню WinBox появится новый пункт «User Manager» (если нет — читайте LOG. В начале будет описана причина ошибки)

Внешний вид меню Winbox маршрутизатора с установленным пакетом "User-Manager
Внешний вид меню Winbox маршрутизатора с установленным пакетом "User-Manager

Настройка IKEv2

Теперь переходим к самому основному, собственно настройке VPN‑сервера доступа по протоколу IKEv2. Поскольку при подключении клиента, ему выделяется некий виртуальный IP‑адрес, то сначала нам необходимо создать пул адресов для подключаемых клиентов:

/ip/pool add name=vpn-pool ranges=192.0.2.1–192.0.2.254

Переходим непосредственно к настройке IPSec. Настройка IPSec требует создания нескольких сущностей:

Пункты настройки IPSec в меню Winbox
Пункты настройки IPSec в меню Winbox
  1. Profile

  2. Proposal

  3. Group

  4. Policy Template

  5. Peer (шаблон)

  6. Modeconf

  7. Identity

Group используется как тег для связывания Identity и Policy Template для генерации индивидуальных Policy из шаблона (template) при подключении клиента. По сути, Identity, это то, что собирает во едино все настройки, когда клиент подключится к серверу. По этому Identity настраивается в последнюю очередь, когда остальные параметры созданы.


Здесь хочу дать вам совет: Никогда. Н‑и-к‑о-г‑д-а, без острой необходимости не изменяйте в RouterOS профили с названием «Default», если точно НЕ знаете, как это повлияет на дальнейшую работу. В Winbox всегда есть возможность создать копию профиля и проводить эксперименты с копией. В консоли тоже есть такая возможность — ключевое слово «copy‑from=».

1,2) Для наглядности создадим копии имеющихся Proposal и Profile. При этом отключим в 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
Новые наборы параметров для IKEv2
Новые наборы параметров для IKEv2

3) Создадим отдельную Group для Policy:

/ip ipsec policy group add name=ike2
Группа для генерации policy
Группа для генерации policy

4) Создаем шаблон Policy 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
Новый шаблон Ploicy Template ссылается на Proposal с шага 1 и на Group с шага 3
Новый шаблон Ploicy Template ссылается на Proposal с шага 1 и на Group с шага 3

5) Создаем шаблон пира (клиента):

/ip/ipsec/peer add exchange-mode=ike2 name=peerike2 passive=yes profile=profile-ike2
Шаблон для peer ссылается на Profile с шага 1
Шаблон для peer ссылается на Profile с шага 1

6) Создаём mode‑config. Это набор параметров, которые будут переданы клиенту, включая адрес 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
Новый modeconf с параметрами для передачи клиенту. Ссылается на Pool
Новый modeconf с параметрами для передачи клиенту. Ссылается на Pool

7) Создаем итоговый identity. В нем мы также будем использовать ссылку на полученный сертификат от 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
Identity ссылается на Radius, Group, Modeconf и сертификат Let's Encrypt
Identity ссылается на Radius, Group, Modeconf и сертификат Let's Encrypt

Параметр "auth-method=eap-radius" говорит микротику, что запросы аутентификации надо пересылать на Radius-сервер. Осталось его настроить прямо на MikroTik. Наш встроенный radius (UserManager) будет использовать пароль "MySuperPass1234" и, кроме клиентов IPSec IKEv2, будет дополнительно обрабатывать запросы обычных ppp-клиентов (pptp/l2tp/sstp...)

/radius
add address=127.0.0.1 secret=MySuperPass1234 service=ppp,ipsec
/radius incoming
set accept=yes
Настройка обращений к встроенному user-manager. Пункт "ppp" не обязателен.
Настройка обращений к встроенному user-manager. Пункт "ppp" не обязателен.

Минимальная, самая примитивная настройка user-manager состоит из команд включения, разрешения взаимодействия с локальным сервером доступа используя пароль "1234" и добавления пользователя с логином "user1@gw" и паролем "1234567890":

/user-manager
set enabled=yes
/user-manager router
add address=127.0.0.1 name=router1 shared-secret=MySuperPass1234
/user-manager user
add name=user1@gw1 password=1234567890
Описание доступа для vpn-сервера и одного пользователя
Описание доступа для vpn-сервера и одного пользователя
Код для RouterOS целиком
/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=gw1.mt-courses.ru
/ip/firewall/filter remove [find comment="temporary filter rule"]
/ip/pool add name=vpn-pool ranges=192.0.2.1–192.0.2.254
/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
/ip/ipsec/policy group add name=ike2
/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
/ip/ipsec/peer add exchange-mode=ike2 name=peerike2 passive=yes profile=profile-ike2
/ip/ipsec/mode-config add address-pool=vpn-pool name=ike2-modconf split-include=10.10.4.0/24 system-dns=yes
/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
/radius add address=127.0.0.1 secret=MySuperPass1234 service=ppp,ipsec
/radius incoming set accept=yes
/user-manager set enabled=yes
/user-manager router add address=127.0.0.1 name=router1 shared-secret=MySuperPass1234
/user-manager user add name=user1@gw1 password=1234567890

Подключаем клиента windows.

Создаем новое подключение к VPN.

Имя/адрес сервера: указываем FQDN, своё, на которое выдан сертификат (у меня это gw1.mt-courses.ru)

Логин в примере: user1@gw1 Пароль: 1234567890

Параметры создаваемого подключения
Параметры создаваемого подключения

Если всё сделано правильно, то должно произойти успешное подключение в VPN.

Если же возникает ошибка IKE с кодом 13801 то, скорее всего, неправильно или не туда в системе установлен сертификат R3.

Комментарии (34)


  1. Whyborn77
    00.00.0000 00:00
    -4

    с появление на 7+ wireguard все подобное стремительно теряет актуальность, как и доверие в целом к бесплатным импортным сертификатам


  1. Abyss777
    00.00.0000 00:00

    А Windows получил маршрут 10.10.4.0/24 ?
    Где-то в wiki mikrotik читал, что не все клиенты это умеют, в частности Windows...


    1. nkusnetsov Автор
      00.00.0000 00:00

      Windows XP не получает. Windows 7 имеет проблемы с получением маршрутов.
      Windows 8 под рукой к сожалению, нет.
      Windows 10 успешно устанавливает маршруты в таблицу маршрутизации.


      1. Abyss777
        00.00.0000 00:00
        +1

        Тут пишут что даже не все Windows 10... https://serverfault.com/questions/1026041/mikrotik-ikev2-ipsec-windows-10-no-split-include-routes

        Короче если нужна гарантированная доставка маршрутов, и парк клиентов неизвестен (личные компьютеры сотрудников например) то ничего кроме OpenVPN не остаётся...


        1. BDI
          00.00.0000 00:00

          По умолчанию в десятке(по крайней мере на момент когда разбирался с настройкой виндового ВПН клиента для SSTP, но вроде и в феврале наблюдал такое же поведение) весь траффик направится в тоннель, чтобы этого не происходило нужно включить для соединения SplitTunneling:

          Set-VpnConnection -Name "My Connection" -SplitTunneling $true


          Если при этом сеть тоннеля не совпадает с удалённой сетью, то после разделения траффика нужно указать сети достигаемые через данное ВПН подключение(в данном случае тоннельная сеть 192.168.0.0/24):
          Add-VpnConnectionRoute -ConnectionName "My Connection" -DestinationPrefix 192.168.2.0/24 -PassThru
          Add-VpnConnectionRoute -ConnectionName "My Connection" -DestinationPrefix 192.168.3.0/24 -PassThru 


          Посмотреть маршруты для ВПН подключения можно так:
          (Get-VpnConnection -ConnectionName "My Connection").routes


          Если требуется, то можно так же указать для каждого добавляемого маршрута метрику(-RouteMetric), правда на уровне системной таблицы маршрутизации она всё равно не может быть менее метрики подключения.

          В принципе, заскриптовать это не проблема. Можно ли распространять автоматически — не уверен, но такой задачи не стояло для меня. С другой стороны, для настраиваемого соединения это делается один раз, маршруты присутствуют в таблице маршрутизации только при активном ВПН подключении, спокойно переживает перезагрузки и пр.


          1. Abyss777
            00.00.0000 00:00

            Хотелось бы избежать скриптов, скачивания ПО и т.д.
            Просто ссылка на страницу - простейший мануал с парой скриншотов и любой сотрудник сможет себе настроить VPN.

            Но видимо нет, увы...


            1. nkusnetsov Автор
              00.00.0000 00:00

              Без скриптов, все ОС семейства Windows умеют получать классовый маршрут. Но для этого "сетевой архитектор" должен был правильно проектировать адресное пространство компании.
              Например, при получении на свою сторону VPN-тунеля адреса "192.168.C.D", windows добавляет маршрут с маской "255.255.255.0" через VPN, адресуя 1 сеть /24.
              При получении на свою сторону VPN-тунеля адреса "172.16.C.D" (172.16-31.C.D), windows добавляет маршрут с маской "255.255.0.0" через VPN, адресуя 256 сетей по /24
              При получении на свою сторону VPN-тунеля адреса "10.B.C.D", windows добавляет маршрут с маской "255.0.0.0" через VPN, адресуя 65536 сетей по /24
              Для этого достаточно убрать в свойствах VPN-подключения галочку "Использовать основной шлюз в удаленной сети"

              Использование классового маршрута в ОС  Windows
              Использование классового маршрута в ОС Windows

              При получении адреса 10.10.4.99 на VPN-адаптер, построится классовый маршрут: 10.0.0.0 mask 255.0.0.0 -> VPN
              При получении адреса 172.30.4.99 на VPN-адаптер, построится классовый маршрут: 172.30.0.0 mask 255.255.0.0 -> VPN


              1. Abyss777
                00.00.0000 00:00

                Но для этого "сетевой архитектор" должен был правильно проектировать адресное пространство компании.

                В 2023 году наивно полагать, что сетевая адресация это что-то такое на века.

                - Купили другую компанию, присоединили сеть, добавились маршруты

                - Разделили компанию на независимые подразделения, разделили подсети


                1. nkusnetsov Автор
                  00.00.0000 00:00

                  Это и называется полноценная интеграция. Когда инженер не костылит суммарку+Netmap "чтобы вот ща пинги полетели" и не убегает пить пиво.
                  За такого рода работу инженерам ЗП платят.


              1. DaemonGloom
                00.00.0000 00:00

                Ага. А теперь расскажите, за сколько шагов человек с Win11 может добраться до этой галочки.


                1. nkusnetsov Автор
                  00.00.0000 00:00

                  Win+R ncpa.cpl


            1. BDI
              00.00.0000 00:00
              +1

              В данном случае мануал остаётся всё так же прост, может даже проще — надо объяснить как запустить окно Powershell, и как скопировать-вставить-запустить строки из мануала. Не так удобно как в случае OpenVPN, но всё таки не сверх сложно. Плюс инструкция получается более независима от новшеств в GUI.

              Собственно для моего случая там всего три команды:

              # Добавить SSTP в явном виде не даёт(рекомендует L2TP), но даёт Automatic
              Add-VpnConnection -Name "MyConn" -TunnelType Automatic -ServerAddress my.domain.xyz:8888 -AllUserConnection $true -AuthenticationMethod MSChapv2 -DnsSuffix home.local -EncryptionLevel Required -PassThru -SplitTunneling -RememberCredential
              # Меняем тип подключения на SSTP, не забыв продублировать все доступные для командлета параметры(использованные ранее), иначе они перезатрутся:
              Set-VpnConnection -Name "MyConn" -AllUserConnection -AuthenticationMethod MSChapv2 -DnsSuffix home.local -EncryptionLevel Required -IdleDisconnectSeconds 0 -RememberCredential $true -ServerAddress my.domain.xyz:8888 -SplitTunneling $true -TunnelType Sstp
              # Добавляем маршрут
              Add-VpnConnectionRoute -AllUserConnection  -ConnectionName "MyConn" -DestinationPrefix 192.168.250.0/24 -PassThru -RouteMetric 1
              


              Дополнительно можно и логин-пароль «автоматизировать»(правда лишь для случая индивидуальной инструкции для конкретного пользователя :)):
              # Выполняем подключение с указанием логина и пароля(сохранятся благодаря опции -RememberCredential при создании и редактировании подключения):
              C:\Windows\system32\rasdial.exe "MyConn" vpnusername 'strong_password' /PHONEBOOK:"c:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk"
              


              1. Abyss777
                00.00.0000 00:00

                Во первых, всё что люди (далекие от ИТ) делают руками будет обязательно запортачено...

                Во вторых, как вы предлагаете решать вопрос с добавлением нового маршрута?

                Тысячи заявок в support, вида:
                Пользователь: У меня не заходит на сервер, ничего не работает, мне СРОЧНО надо!
                Support: Мы делали рассылку, нужно добавить новый маршрут
                Пользователь: Я не видела/ничего не получала, сделайте что-нибудь!
                Support: Сделайте то-то и то -то
                И еще долгий диалог, как открыть PS, потом закрыть, открыть с поднятыми привилегиями и т.д.


                1. BDI
                  00.00.0000 00:00

                  Пользователь: Я не видела/ничего не получала, сделайте что-нибудь!

                  Мой ответ был по поводу усложнения инструкции. Если пользователь в принципе не способен выполнить описанное в инструкции(при условии что её писали так, чтобы повторить мог любой исполнительный человек), то не важно какой протокол использует ВПН. Конечно кроме случая когда всё что требуется от «клиента» это скачать(что вам тоже не очень нравилось в начале ветки) преднастроенный клиент, и установить его в стиле «далее-далее-ок». pfSence кстати умеет(умела?) создавать для OpenVPN индивидуальный пакет под каждого юзера, со всеми сертификатами и настройками. Но вроде для установки всё же требовались права администратора — кажется ставилась какая-то служба которая потом рулила маршрутами при запуске впн клиента от обычного юзера(но точно не скажу, т.к. давно уже не пользовался сборками из pfSence, как и OpenVPN по ряду причин).

                  Да, OpenVPN раздаст обновлённые маршруты(как вроде и циска для AnyConnect). Но не уверен что подобный пользователь(приходилось сталкиваться с такими — «смотрит в книгу, видит фигу») осилит первоначальную настройку клиента OpenVPN, сколько бы скриншотов не было в инструкции. Если же всё всё равно сведётся к тому что саппорту придётся подключаться на комп юзера(тимвьюер и т.п.), то страшное слово Powershell перестаёт быть страшным. По крайней мере cmd.exe я своих научил вызывать, как и пинг с трейсом запускать — удалённая работа, приходится им иногда самим под диктовку диагностировать почему у них не работает подключение в офис(когда я вижу что на стороне офиса проблемы нет). Хотя есть и те кто предпочитает сразу при упоминании консоли перезапустить свой домашний роутер(и что примечательно — обычно помогает :)).

                  P.S. 1000 заявок мне даже в страшном сне не снилось(у нас масштаб поменьше, плюс обычные юзеры на циску через AnyConnect пока ходят), иначе бы наверное придумал костыль для распространения и обновления маршрутов(скорее всего что-то самописное было бы).


                  1. Abyss777
                    00.00.0000 00:00

                    pfSence кстати умеет(умела?) создавать для OpenVPN индивидуальный пакет под каждого юзера

                    Есть такой функционал, да, но такие пакеты будут неподписанные, и их будут блочить антивирусы. А если подписывать своим сертификатом, то надо как-то доставлять его на компьютеры... короче снежный ком.

                    Видимо нет серебряной пули, ну по крайней мере изкоробочной и бесплатной :)


                    1. avelor
                      00.00.0000 00:00

                      openconnect server практикую. это по сути реверс эниконнекта цисковского, только опенсорсного (они между собой совместимы). на комп ток клиента поставить и урл вбить, а дальше конфиг тянется с сервака, пушить маршрутыи прочий сплит туннеленг умеет, клиент мне цисковский больше нравится.


          1. dTi
            00.00.0000 00:00

            А если ещё и Set-VpnConnectionUsernamePassword -connectionname "VPN_NAME" -username "USER_NAME" -password "USER_PWD" с помощью Install-Module -Name VPNCredentialsHelper -Confirm, пользователю останется только тыкать на VPN соединение рядом с часами. Но это несекьюрно, да.


            1. BDI
              00.00.0000 00:00

              Комментарием ниже(по ветке) я тоже самое делал через "C:\Windows\system32\rasdial.exe"(при первом вызове сохраняет логин-пароль), правда у меня был вариант подключения "для всех пользователей", для конкретного надо убрать из создания соединения "-AllUserConnection $true", и в параметре rasdial указать файл адресной книги пользователя.


              Ваш вариант требуется ставить дополнительный модуль, причём "из ненадежного репозитория", как выдаёт PS. К тому же, если на гитхабе я нашел именно его(VPNCredentialsHelper, автор вроде тот же что на powershellgallery.com), то он по сути дёргает за теже ниточки(rasapi32.dll, см. Src\VPNCredentialsHelper\VPNHelper.cs). Поэтому для себя не вижу смысла в нём.


              P.S. Сохранение пароля конечно несекьюрно, но все изыскания я проводил для собственного использования. Пароль на виндовую учётку у меня сложный, Win+L при отходе от компа у меня работает на уровне рефлексов, левое ПО не запускаю — надеюсь этих мер достаточно чтобы сохранение пароля было бы достаточно безопасно.


        1. Tarakanator
          00.00.0000 00:00

          А если сторонний ipsec клиент? forticlient к примеру.


          1. nkusnetsov Автор
            00.00.0000 00:00

            Если клиент подлерживает IKEv2 c аутентфикацией по имени и паролю, то должно работать. Но надо проверять. Альтернативные разработчики могли реализовать в своём клиенте собственное видение стандарта.


      1. haga777
        00.00.0000 00:00

        А микротик к микротику подключиться сможет? Со стороны клиента какие нюансы сделать?


  1. xanto
    00.00.0000 00:00

    Момент с продлением сертификата остался без описания. Руками продлять или есть механизм автоматического продления сертификата?


    1. nkusnetsov Автор
      00.00.0000 00:00

      https://forum.mikrotik.com/viewtopic.php?t=189205
      Здесь описан процесс подробно. Есть даже большой пример скрипта. Если по шагам,то:
      1. Убирают старый сертификат;
      2. Открывают 80 порт и запрашивают новый сертификат;
      3. Закрывают 80 порт;
      4. Привязывают новый сертификат к службам.


  1. dnbolt
    00.00.0000 00:00
    +2

    Э все конечно прекрасно, но есть одно но
    "Маршрутизатор под управлением MikroTik RouterOS версии 7.x"

    Stabile 6.49.7 (2022-Oct-11 17:37)

    Long term 6.48.6 (2021-Dec-03 12:15)
    Я видимо чтото не понимаю, но на сколько помню, на всех курсах, на всех митапах по ROS многократно говорилось что в проде использовать только Long term.
    Тут вопрос скорее не к автору, а к господам из Микротик, но когда выйдет LTS 7 RoS


    1. nkusnetsov Автор
      00.00.0000 00:00

      В данном случае решение уже вполне рабочее в ветке "Satble".
      В целом да, по поводу "Stable" vs "Long-Term" абсолютно с Вами согласен. Данное руководство нацелено на будущее и, надеюсь, за счёт этого побудет актуальным чуть дольше. У латвийского вендора есть существенные проблемы с разработкой ввиду внутренних причин, которые я тут озвучивать не могу.


      1. dTi
        00.00.0000 00:00
        +1

        Сидим на 6 везде. 7 уже прям круто и кошерно, можно обновляться? Ставили 7.2 в прошлом году, багов было огого.


        1. elfukado
          00.00.0000 00:00

          В небольших офисах ставил 7.5, 7.6 из-за поддержки wireguard, всё устраивает. Но там никакой сложной маршрутизации и очередей, просто стандартные настройки через quickset и немного доработок вручную.


        1. nkusnetsov Автор
          00.00.0000 00:00

          Приемлемо работает в простых конфигурациях. Когда конфиг более сложный - возможны сюрпризы. Они и так иногда с обновлениями прилетают. Самый частый когда-то был, это когда /32 маршруты в ospf терялись. И до сих пор латыши не починили BFD, насколько знаю.


    1. Maxim_Q
      00.00.0000 00:00
      +1

      Тут вопрос скорее не к автору, а к господам из Микротик, но когда выйдет LTS 7 RoS

      Примерный срок выхода можно будет узнать когда последний слолбец в таблице станет зеленый, как только будет поддержка всех функции и режимов тогда в ближайшее время выйдет 7я Long-term версия. https://help.mikrotik.com/docs/display/ROS/Routing+Protocol+Overview


  1. GreatBAO
    00.00.0000 00:00

    Полезный материал, особенно на фоне отказа Google от L2TP на Android >11

    Я правильно понимаю, что данный конфиг будет так же работать и с внешним Radius сервером без установки пакета с User Manager ?


    1. nkusnetsov Автор
      00.00.0000 00:00

      Да. Правильно. С любым внешним.
      В данном примере UserManager - локальный radius-сервер в составе RouterOS.


    1. Zero_Full
      00.00.0000 00:00

      Сегодня специально обновился до 7 версии, чтобы сделать с минимальным количеством дополнительных действий (внешний радиус, генерация сертификата отдельно).

      Итог: самсунг s23 не захотел нативным клиентом подключаться. На стороне сервера вижу что клиент не пытается передать логин. Strongswan на нём же подключился после импорта на телефон сертификата lets encrypt R3, до этого ругался на то, что не может ему доверять.

      Мак подключился без проблем, без дополнительных телодвижений.

      Интересно у кого-нибудь 13 андройд работает с подробным сервером?


      1. PapaTramp
        00.00.0000 00:00

        Вот потому и отказать ROS7, слишком нестабильно и глючно.


        1. Zero_Full
          00.00.0000 00:00

          Конкретно в моём случае нашёл обсуждения на реддите, что проблема в андройде, а не в микротике.

          По-поводу 7 версии - у меня это уже 2 попытка. До этого на 7.2 обновлялся, потом откатился на 6 (у меня это виртуальная машина).

          Сейчас снова обновился, пришлось перенастроить ospf, bgp и фильтры для префиксов. Всё остальное работает и проблем пока не обнаружил.

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