====== Mikrotik: внешний доступ к Webfig ======
Задача: открыть доступ из глобальной сети к веб-интерфейсу Mikrotik.
Увага сісадміны!
* Никакого http, только https
* Ограничиваем доступ по IP
* Еще лучше настраиваем VPN на Mikrotik или на хосте во внутренней сети и подключаемся только через VPN
* В 2 раза лучше использовать комбинацию внешний фиксированный IP и VPN. Вдруг VPN будет недоступен или сменится IP
* Ниже только примеры, поэтому адаптируйте под вашу конфигурацию сети
Документация
* https://wiki.mikrotik.com/wiki/Manual:Webfig
* https://help.mikrotik.com/docs/display/ROS/Webfig
===== Firewall =====
Включаем **webfig**: IP → Services
{{:network:mikrotik:mikrotik_webfig_services.png?nolink|}}
Через консоль (www порт 8080, www-ssl порт 4443)
/ip service set www address=11.22.33.44/32,22.33.44.0/24 disabled=no port 8080
/ip service set www-ssl address=11.22.33.44/32,22.33.44.0/24 disabled=no port 4443
Теперь нужно разрешить входящие соединения.
IP → Firewall → Filter Rules
* Chain: input
* Src. Address: IP адрес или подсеть, с которых можно подключаться
* Protocol: tcp
* Dst. Port: 8080 и 4443
* Action: accept
Через консоль
/ip firewall filter add chain=input protocol=tcp dst-port=8080,4443 disabled=no action=accept
Правило будет в конце списка, поэтому надо его перенести выше запрещающих правил.
Смотрим номер правила
/ip firewall filter print
Переносим в начало списка
/ip firewall filter move 13 destination=1
Можно сразу указать, что правило необходимо расположить в начале списка
/ip firewall filter add chain=input protocol=tcp dst-port=8080,4443 disabled=no action=accept place-before 1
===== Let's Encrypt =====
Документация
* https://help.mikrotik.com/docs/display/ROS/Certificates
* https://www.youtube.com/watch?v=T1Dyg4_caa4
* https://forum.mikrotik.com/viewtopic.php?t=189289#p973321
Получаем сертификат
/certificate/enable-ssl-certificate dns-name=ros.rtfm.wiki
{{:network:mikrotik:mikrotik_webfig_ssl_certificate_1.png?nolink|}}
System → Certificates
{{:network:mikrotik:mikrotik_webfig_ssl_certificate_2.png?nolink|}}
Проверяем браузер
{{:network:mikrotik:mikrotik_webfig_ssl_certificate_3.png?nolink|}}
Насколько я понимаю для корректной работы LE нужен 80 порт. Откроем доступ к 80 порту только для letsencrypt.org
Создаём список LE
/ip firewall address-list add address=acme-v02.api.letsencrypt.org list=LE
/ip firewall address-list add address=acme-staging-v02.api.letsencrypt.org list=LE
/ip firewall address-list add address=letsencrypt.org list=LE
Создаём правило со списком LE
/ip firewall filter add action=accept chain=input comment=LE dst-port=80 protocol=tcp src-address-list=LE
В веб-интерфейсе это выглядит следующим образом.
IP → Firewall → Address Lists
{{:network:mikrotik:mikrotik_webfig_address_lists_1.png?nolink|}}
IP → Firewall → Filter Rules
{{:network:mikrotik:mikrotik_webfig_address_lists_2.png?nolink|}}
Хоть всё и работает мне больше нравится использовать для сертификатов в домашней IT лаборатории [[https://nginxproxymanager.com|Nginx Proxy Manager]] или [[https://traefik.io|Traefik]].
EOM
{{tag>mikrotik webfig lets_encrypt}}