Проброс портов в MikroTik
1. Проброс портов в winbox
Открываем IP — Firewall — NAT, жмем «+»
Chain — цепочка, в которой будет обрабатываться правило. Выбираем dstnat.
Src. Address — адрес источника. Если мы хотим указать конкретный адрес, то забиваем сюда. Но т.к. веб-сервер должен быть доступен всем, то я это поле не заполняю.
Dst. Address — адрес, к которому будут обращаться клиенты извне. В данном примере это адрес 1.1.1.1. Можно этот адрес не указывать, но в этом случае нужно будет обязательно указать In. Interface
Protocol — выбираем TCP.
Dst. port — порт, к которому будут обращаться клиенты извне. Для веб-сервера по-умолчанию это порт 80.
In. Interface — интерфейс, который смотрит наружу. В нашем случае это интерфейс inetTest.
Остальные параметры нам в этой статье неинтересны, поэтому переходим на вкладку Action.
Action — выбираем dst-nat.
To Addresses — пишем IP-адрес нашего веб-сервера в локальной сети.
To Ports — порт 80.
Этого, собственно, достаточно. Но есть один очень важный момент. У роутера MikroTik есть встроенный веб-сервер, который висит на том же дефолтном порту 80. Надо его оттуда убрать. Заходим в IP — Services и меняем там порт службы www с 80-го, на произвольный.
Процесс создания правила проброса порта RDP аналогичен вышеописанному.
Хотел бы только сказать, что такой простой проброс RDP чертовски небезопасен и использовать его в таком виде крайне не рекомендую. Если известен удаленный IP-адрес, с которого будет производиться подключение, обязательно его указывайте в поле Src. Address. Это как минимум. А лучше вообще используйте VPN (легко поднимается на MikroTik) вместо банального проброса порта. Если уж сильно нужен именно проброс порта и неизвестен адрес источника, то есть еще такая штука, port knocking называется. Так же можно реализовать на MikroTik, но это материал для отдельной заметки — читайте статью Port knocking MikroTik .
Здесь проброс RDP используется только в качестве примера проброса порта, а не как призыв открывать небезопасный доступ к своим рабочим столам всему интернету.
2. Проброс портов — скрипты
В скриптах я добавил еще одно правило для протокола HTTPS на веб-сервер, а для проброса RDP использовал нестандартный порт.
/ip firewall nat
# WEB Server 192.168.33.2 HTTPS port 80
add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1 dst-port=80 in-interface=inetTest protocol=tcp to-addresses=192.168.33.2 to-ports=80
# WEB Server 192.168.33.2 HTTPS port 443
add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1 dst-port=443 in-interface=inetTest protocol=tcp to-addresses=192.168.33.2 to-ports=443
# RDP PC 192.168.33.129
add action=dst-nat chain=dstnat comment=test dst-address=1.1.1.1 dst-port=4565 in-interface=inetTest protocol=tcp to-addresses=192.168.33.129 to-ports=3389
Для RDP dst-port указан 4565, который MikroTik перенаправит на персоналку 192.168.33.129 на стандартный порт RDP — 3389. Соответственно, удаленному пользователю при подключению к удаленному рабочему столу надо будет так же указать и порт: 1.1.1.1:4565
Естественно, не забудьте разрешить в файерволе входящие соединения на внешний интерфейс (у нас inetTest) на порты, которые мы собираемся пробросить (в этом примере 80, 443, 4565).