Работаем с сертификатами Let's Encrypt на роутерах Mikrotik (RouterOS 7)

  • Автор:

Mikrotik-Lets-Encrypt-ROS7-000.png Рассказывать о том, что такое Let's Encrypt сегодня не нужно, этот центр сертификации стал фактически стандартом де-факто для быстрого и автоматического получения бесплатных сертификатов. Это позволяет без лишних затрат надежно защитить сетевые службы и больше не возвращаться к этому вопросу. В новой версии RouterOS 7 также появилась возможность работать с этим центром сертификации, что сделало возможным отказаться от выпуска собственных сертификатов и избежать необходимости их ручной установки на клиенте. Но не все так просто и радужно и в данной статье мы эти вопросы разберем.

Онлайн-курс по MikroTik
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Подготовка к получению сертификата

Для получения сертификата Let's Encrypt вам понадобится доменное имя и выделенный IP-адрес, если у вас уже есть собственный домен, то можете создать нужный поддомен и в A-записи для него указать выделенный адрес роутера. Эти изменения вносятся на DNS-сервере, обслуживающем ваш домен. Например, запись может выглядеть так (формат BIND):

chr72   IN A 198.51.100.72

При работе через веб-интерфейс смысл остается примерно тем же:

Mikrotik-Lets-Encrypt-ROS7-001.pngКстати, мы нигде выше не указывали сам домен. Почему? Потому что мы используем относительные записи, без точки на конце, которые затем будут дополнены именем домена? в зону которого мы вносим изменения. Так, если наш домен example.com, то созданная нами запись будет соответствовать chr72.example.com.

Если собственного доменного имени нет или выделенный адрес является динамическим, то можно использовать встроенную службы DDNS в Mikrotik. Для этого перейдите в IP - Cloud и установите флаг DDNS Enabled, через некоторое время вы получите уникальное доменное имя для роутера.

Mikrotik-Lets-Encrypt-ROS7-002.pngЛибо выполните в терминале:

/ip cloud
set ddns-enabled=yes

Для работы с Let's Encrypt нам потребуется веб-сервер и открытый для доступа извне 80 TCP порт. А вот здесь начинаются первые особенности, веб-сервер в RouterOS неразрывно связан с webfig, т.е. веб-интерфейсом для настройки роутера и вам придется его включить в IP - Services:

Mikrotik-Lets-Encrypt-ROS7-003.pngПоэтому, прежде чем открывать доступ, убедитесь, что все ваши пользователи имеют надежные пароли. Также можно подстраховаться и запретить вход в webfig всем или выбранным категориям пользователей. Для этого перейдите в System - Users и в открывшемся окне, на вкладке Groups для всех или только выбранных групп снимите в разрешениях флаг web.

Mikrotik-Lets-Encrypt-ROS7-004.pngТеперь при попытке входа, даже с правильными учетными данными, вы получите сообщение что аутентификация не выполнена.

Mikrotik-Lets-Encrypt-ROS7-005.pngВсе, что нам осталось - это создать разрешающее правило для входящего трафика на 80 порт. Переходим в IP - Firewall и создаем правило: Chain - input, Protocol - 6 (tcp), Dst. Port - 80. Так как действие по умолчанию - accept, то никаких дополнительных действий делать не нужно. После создания обязательно добавьте ему комментарий, например, HTTP.

Mikrotik-Lets-Encrypt-ROS7-006.pngЛибо в терминале:

/ip firewall filter
add action=accept chain=input comment=HTTP dst-port=80 protocol=tcp

Данное правило должно располагаться ниже правила разрешающего уже установленные и связанные соединения и выше запрещающего правила в цепочке INPUT.

Получаем сертификаты штатными инструментами RouterOS 7

Графического инструмента для работы с Let's Encrypt нет, поэтому перейдем в терминал и отдадим команду:

/certificate enable-ssl-certificate dns-name=chr72.example.com

Если вы используете встроенную службу DDNS, то можно ограничиться командой:

/certificate enable-ssl-certificate

Полученный сертификат можно увидеть в System - Certificates, он будет иметь имя вроде letsencrypt-autogen_2023-07-31T17:09:41Z и флаги KT.

Mikrotik-Lets-Encrypt-ROS7-007.pngОн автоматически привязывается к службе www-ssl и также будет автоматически продляться без участия пользователя. При этом никто не мешает нам использовать данный сертификат для любых других служб, скажем - SSTP-сервера. Но здесь появляется проблема: после продления сертификат будет сохранен с новым именем (как можно было видеть выше в имя входят дата и время выпуска) и вам придется вручную изменять сертификат в настройках сервиса.

Получаем сертификаты при помощи скрипта

В общем Mikrotik в своем репертуаре: инструмент нужный и полезный, но реализация - как всегда, через одно место. Поэтому снова призовем на помощь универсальный инструмент - скрипты. С их помощью мы решим две проблемы: закроем доступ к webfig, который будем открывать только на время получения сертификата, и автоматически привяжем новый сертификат к нужным службам, в нашем примере будем использовать SSTP.

Сначала приведем полный текст, затем разберем его подробнее:

:log info "LE renewal"

:local DomainName "chr72.example.com"

/ip firewall filter
enable [find where comment="HTTP"]

/certificate
remove [find where common-name=$DomainName]
enable-ssl-certificate dns-name=$DomainName

:delay 60s

/certificate
:local certName [get [find where common-name=$DomainName] name]

/interface sstp-server server
:set certificate=$certName

/ip firewall filter
disable [find where comment="HTTP"]

Первой строкой мы делаем запись в лог со статусом info, содержимое - на собственное усмотрение. Второй - задаем доменное имя, на которое будем получать сертификат, его следует указать даже если вы используете DDNS, так как потом по нему мы будем искать нужный сертификат в хранилище.

Затем мы включаем разрешающее правило для входящего трафика на порт TCP 80, для поиска правила используется комментарий, в нашем случае HTTP.

После чего находим и удаляем старый сертификат и получаем новый, после чего берем паузу на минуту для завершения всех процессов с помещением сертификата в хранилище.

Следующим шагом определяем имя полученного сертификата и подключаем его к службе, в данном случае SSTP.

Последним шагом выключаем правило брандмауэра, открывающее доступ к веб-серверу и webfig.

Сертификаты Let's Encrypt выдаются сроком на 90 дней, поэтому следует запускать данный скрипт немного раньше, скажем раз в 85 дней, чтобы в случае чего у вас было время на анализ и исправление ситуации.

Надеемся, что данная статья будет вам полезна и поможет начать работать с сертификатами Let's Encrypt на роутерах Mikrotik.

Онлайн-курс по MikroTik
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:


Mikrotik

  1. Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
  2. Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
  3. Базовая настройка роутера MikroTik
  4. Расширенная настройка DNS и DHCP в роутерах Mikrotik
  5. Автоматическое резервное копирование настроек Mikrotik на FTP
  6. Проброс портов и Hairpin NAT в роутерах Mikrotik
  7. Настройка IPTV в роутерах Mikrotik на примере Ростелеком
  8. Настройка VPN-подключения в роутерах Mikrotik
  9. Настройка черного и белого списков в роутерах Mikrotik
  10. Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
  11. Настройка OpenVPN-сервера на роутерах Mikrotik
  12. Безопасный режим в Mikrotik или как всегда оставаться на связи
  13. Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
  14. Настраиваем Port Knocking в Mikrotik
  15. Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
  16. Настраиваем родительский контроль на роутерах Mikrotik
  17. Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
  18. Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
  19. Mikrotik CHR - виртуальный облачный роутер
  20. Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
  21. Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
  22. Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
  23. Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
  24. Установка Mikrotik CHR на виртуальную машину Proxmox
  25. Защита RDP от перебора паролей при помощи оборудования Mikrotik
  26. Настройка SSTP VPN-сервера на роутерах Mikrotik
  27. Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
  28. Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
  29. Настройка туннелей GRE и IPIP на роутерах Mikrotik
  30. Правильное использование Fast Path и FastTrack в Mikrotik
  31. DHCP Snooping - настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
  32. Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
  33. Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik

The Dude

  1. The Dude. Установка и быстрое начало работы
  2. Централизованное управление обновлением RouterOS при помощи The Dude
  3. Централизованный сбор логов Mikrotik на сервер The Dude

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments