Рубрики
Блог Настройка

Настройка IKEv2 с EAP-MSCHAPv2 на RouterOS

Не буду описывать причины для настройки IKEv2, просто достаточно знания, что протокол хорош и поддержан сегодня во всех основных операционных системах. Ну и RouterOS тоже поддерживает. В справке MikroTik опубликована подробная инструкция по настройке, но результат рабочий не для всех клиентов. На устройствах Apple все работало, а на Windows и Android никак не хотело устанавливаться соединение. Windows-клиент писал «Неприемлемые учётные данные проверки подлинности IKE». Собственно об этом я и хочу рассказать.

Инструкция от MikroTik хорошая, но после ее выполнения есть проблема в цепочке сертификатов. Некоторые решают ее добавлением R3 в список доверенных системы, но это плохой способ. Нам нужно добиться того, чтобы сервер отправлял клиенту всю цепочку сертификации. Если в случае SSTP достаточно просто добавить промежуточный сертификат в систему и он сам подхватится:

/tool/fetch https://letsencrypt.org/certs/lets-encrypt-r3.pem
/certificate/import file-name=lets-encrypt-r3.pem name=lets-encrypt-r3

То чтобы исправить IKEv2 нужно явно указать его:

/ip/ipsec/identity/set [find peer=ike2] certificate=letsencrypt-autogen_2023-05-20T17:06:31Z,lets-encrypt-r3

То есть в поле certificate нужно указать два сертификата через запятую. После этих изменений работает на всех ОС.

Рубрики
Новости

Запуск скрипта в MikroTik по будням (обновление)

Обновил прошлый скрипт генерации дат с нерабочими днями для MikroTik, который нужен для запуска скрипта по расписанию по выходным или рабочим дням. Теперь:

  • поддерживаются разные страны;
  • не нужна выгрузка открытых данных России.

Код и документация на GitHub.

Свежий сгенерированный файл для разных стран:


holidays_ru.txt (15484 Загрузки )


holidays_ua.txt (5726 Загрузок )


holidays_by.txt (5738 Загрузок )


holidays_lv.txt (5687 Загрузок )

Рубрики
Настройка

Запуск скрипта в MikroTik по будням

Возникла необходимость запускать скрипт в маршрутизаторе MikroTik только по будням. Мало того, что нет простого способа узнать сегодняшний день недели, так еще есть праздники. Поэтому решил прописать все выходные дни в явном виде. Скрипт запуска получился таким:

# получаем сегодняшнюю дату
:local date [/system clock get date]
# читаем файл holidays.txt и приводим его к массиву
:local hdays [:toarray [/file get [/file find name=holidays.txt] contents]]
# проверяем, есть ли сегодняшняя дата в массиве
:local isWork ([:typeof [:find $hdays $date -1]] = "nil")
:if ($isWork) do={
    # здесь запускаемый код
}

Файл holidays.txt содержит в себе список дат выходных дней, разделенных запятыми. Дата должна быть в формате МММ/ДД/ГГГГ в нижнем регистре. Файл не может превышать 4096 байт.
Файл сгенерировал из производственного календаря с Портала открытых данных. На портале он в виде файла CSV.

Мой файл holidays_ru.txt (15484 Загрузки ) .
Скрипт для генерации gen_holidays.py (10512 Загрузок ) .

UPD(28.05.2022): обновил скрипт.