Создание домашней сети на базе устройств MikroTik: Часть 7 — Firewall правильное перенаправление портов в сети с двумя шлюзами

Продолжение предыдущих статей по организации единой локальной сети.
Содержание:
Создание домашней сети на базе устройств MikroTik: Часть 1
Создание домашней сети на базе устройств MikroTik: Часть 2 — Настройка hAP ac
Создание домашней сети на базе устройств MikroTik: Часть 3 — Настройка RB750gr3 hEX
Создание домашней сети на базе устройств MikroTik: Часть 4 — Создание OpenVPN туннеля
Создание домашней сети на базе устройств MikroTik: Часть 5 — Создание EoIP туннеля
Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа
Создание домашней сети на базе устройств MikroTik: Часть 7 — Firewall правильное перенаправление портов в сети с двумя шлюзами (Вы тут)
Создание домашней сети на базе устройств MikroTik: Часть 8 — Установка и настройка MikroTik DUDE Network Monitor

В прошлой части, мы с Вами, настроили фильтрацию трафика в (Firewall Filter).

Напомню, что у меня в сети присутствует роутер Asus RT-AC66U, работающий как точка доступа для Wi-Fi клиентов. Он подключен кабелем к роутеру hEX (RB750Gr3)
Конечно, мне необходимо иметь к нему удаленный доступ, также, как и к другим ресурсам локальной сети. Например чтобы перезагрузить, прошить и др. мало ли что.

Если Вы хотите изучить MikroTik, то это можно реализовать с помощью специального онлайн-курса "Настройка оборудования MikroTik". В курсе изучаются все темы из официальной программы MTCNA, а автором курса является официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто даже не держал его в руках. В состав курса входят 162 видеоурока, 45 лабораторных работ и вопросы для самопроверки с конспектом. Кстати я получал сертификат MTCNA именно тут!

Плюсом у меня к LG 3D Smart TV, подключена маленькая клиентская точка доступа cAP Lite. Т.к. на телеке решили сэкономить брали его без встроенного Wi-Fi модуля.(Серия оснащалась довольно дорогими фирменными USB2.0 Wi-Fi модулями, зачем переплачивать)
Это именно тот телевизор, на котором домашние любят смотреть фильмы с ПК по сети. Благо на него без проблем можно отправить видео из того же Проигрывателя Windows Media. Но все затевалось для использования через медиа сервер Plex. Будет отдельная статья по сборке и настройке этого сервера, а пока вернемся к нашей теме…

Для начала давайте вспомним(или узнаем), как происходит обычное перенаправление портов в MikroTik RouterOS

Пока я писал статьи, обновилась ветка прошивок Bugfix. Теперь у меня на девайсах стоит прошивка 6.40.6

1. Перенаправление портов в hAP ac (RB962UiGS-5HacT2HnT)
Давайте взглянем на простую схему перенаправления порта. Например у меня дома на виртуальной машине крутиться сервер Plex. Все его настройки я произвожу через консоль, подключаясь к нему по протоколу SSH(для тех кто не знает, что это Secure SHell)
Предположим, что данный сервер имеет внутрисетевой IP адрес: 192.168.88.9
Стандартный порт для доступа по SSH это TCP порт под номером 22. Если кто-то не знает что такое TCP или UDP порты, Вы можете погуглить т.к. без этих знаний Вам будет не очень понятно ))
Мне нужно подключиться откуда-нибудь с ноутбука с интернетом. И тут мы вспоминаем про статический IP адрес.

port-forwarding-1
Стандартное подключение в рамках локальной сети
port-forwarding-1-1
Для примера подключаемся через Putty по стандартному 22 порту

А теперь подключимся… например с дачи(сидим через 4G), схема изменится.

port-forwarding-2
В принципе тоже стандартная схема, но теперь наша цель находится за роутером, т.е. целью нам нужно выбирать сам роутер!!!
port-forwarding-2-1
Отлично, тогда выбираем статический IP роутера. Он же доступен из интернета! Только вот, какой выбрать порт и куда попадет наш запрос на подключение?

В принципе ничего сложного, нужно научить роутер перенаправлять через себя запросы к нашему серверу.

Сделаем маленькое отступление, почему так происходит...
Это происходит потому, что у Вас дома своя маленькая «глобальная» сеть, и соответственно может быть очень много устройств. Только она называется локальная т.к. недоступна всем другим людям или устройствам в Глобальном интернете.
Представьте себе, что для каждого Вашего устройства провайдер бы выдавал Вам статический IP. Было бы здорово, но адреса бы закончились чрезвычайно быстро.
Они в принципе уже и так закончились.
Именно для этого был разработан IPv6. Но это уже совсем другая история.

В общем мы имеем то, что имеем. А именно, один единственный IP адрес доступный и видимый другим в интернете.
Кстати это касается не только статических адресов, но и динамических!!! Провайдеру нужно экономить и удобно управлять сетью.
В итоге нам выдается обычно один единственный сетевой адрес для выхода в интернет.

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

Как же всякие мобильники, нотбуки, планшеты и другие девайсы получают доступ в интернет через один единственный роутер?
Все тоже достаточно просто. Роутер выступает в роли маскировки для всех устройств подключенных к нему. Именно эту функцию выполняет правило в Firewall NAT.
Программисты очень креативные люди )))
К данному правилу применяется действие Masquerade или по другому — маскарадинг )) Т.е. все устройства «надевают маску» роутера и все сайты, которые мы пробуем открыть, видят IP адрес роутера(статический), либо IP адрес провайдера(динамический)

internet-masquerade-1
При открытии сайта, сайт думает, что к нему обращается роутер

Если Вам интересны подробности этого взаимодействия можете почитать в интернете про TCP/IP стеки, IP адресацию, почему закончились IPv4 адреса и многое, многое другое. Мир полон интересной информации и у нас есть к ней доступ =)

Для обучения роутера этому колдовству =) необходимо дунуть, если не дунуть, чуда не произойдет открыть всеми нами любимый WinBox(или консоль), перейти в меню IP -> Firewall вкладка NAT
И добавить новое правило:

add-nat-rule
Добавляем новое правило
nat-rule-1-1
Указываем нужные данные во вкладке General
nat-rule-1-2
Указываем нужные данные во вкладке Action и жмем OK
Консольно:
/ip firewall nat
add action=dst-nat chain=dstnat comment="Open ports to Media Server" dst-port=10022 in-interface=WAN protocol=tcp to-addresses=192.168.88.9 to-ports=22

А теперь разберем по порядку, что мы сделали:
Вкладка General
1. Chain — dstnat — выбираем цепочку
2. Protocol — TCP — выбираем протокол сетевого уровня
3. Dst. Port — 10022 — задаем TCP порт, к которому будем обращаться снаружи. Этот порт я выбрал сам. Вы же можете выбрать любой другой, по своему желанию.
4. In. Interface — WAN — Выбираем входящий интерфейс через который будут приходить запросы.
Вкладка Action
1. Action — dst-nat — выбираем действие перенаправления
2. To Addresses — 192.168.88.9 — задаем локальный IP адрес на который будут отправляться внешние запросы. Адресов может быть несколько.
3. To Ports — 22 — задаем TCP порт к которому нужно обратиться. Также может быть несколько.

Т.е. внешний TCP или UDP порт, к которому мы обращаемся не обязательно должен быть идентичен локальному, к которому мы хотим достучаться.
Это поможет также и с безопасностью. Боты будут атаковать стандартные порты, а у нас они закрыты и доступ к ним идет совсем не по стандартным портам, назначение которых, известно только нам самим!!!
Не забудьте открыть доступ к внешнему порту в Firewall Filter и поместить правило выше последнего запрещающего, иначе фильтрация соединений заблокирует все ваши попытки подключения.

Для того, чтобы получить удаленный доступ к самому роутеру, нужно просто открыть стандартный TCP порт 8291 для программы WinBox.
Либо также перенаправить любой другой порт на локальный адрес самого роутера 192.168.88.1 на порт 8291
В этой части мы узнали, как перенаправить запрос или соединение снаружи из интернета через роутер со статическим IP адресом, к локальному ресурсу уже в нашей локальной сети.
Будьте аккуратней с портом 80 т.к. это стандартный WEB порт. На нем может работать WEB интерфейс роутера. Также он подвержен атакам ботов.

Вроде бы все хорошо, мы легко получаем доступ к нашему роутеру, нашему серверу для настройки и контроля работы.
Теперь мы хотим получить доступ к устройствам, которые находятся за нашим OpenVPN. В принципе все также должно работать хорошо, ведь у нас единая локальная сеть. Но не тут-то было.
Дело было не в бабине =)
Мне пришлось подумать прежде чем, я понял, почему не работает простое перенаправление… И правильно, что не работало.

2. Перенаправление портов до hEX (RB750Gr3)
А вот тут мы сталкиваемся с подводными камнями, которые по ходу разбора оказываются вполне логичными.
Давайте взглянем на схему:

port-forwarding-4
Вот такая схема у нас на данный момент
Судя по данной схеме, удаленный доступ к роутеру hEX и всем, что находится за ним, мы будем осуществлять через роутер hAP ac, у которого есть статический IP.
Смотрим…
port-forwarding-5
Пока все хорошо
port-forwarding-6
Пробуем достучаться до точки доступа Asus… Опа…
А вот и проблема!
Она кроется в том, что у клиентских устройств, DHCP сервером, назначаются различные шлюзы, а именно:
1. В hAP ac это шлюз 192.168.88.1
2. В hEX это шлюз 192.168.88.2
Все правильно, отсюда устройство получив запрос по локальной сети, с внешнего адреса, стремиться отправить ответ через шлюз.
В части Медиа сервера он отправляет запросы правильно, через роутер с локальным адресом 192.168.88.1, а точка доступа неправильно для удаленного доступа, но правильно для выхода в интернет, через роутер с локальным адресом 192.168.88.2.

Что же делать в этом случае, неужели нужно менять адреса шлюзов на тех устройствах за роутером, к которым мы хотим достучаться?
Нет, нет и еще раз нет.
Это создаст большие проблемы. Во первых нагрузит OpenVPN канал, во вторых если отвалится туннель, то устройства потеряют доступ к интернету.

Выход есть и он изящен =)

Вы ведь помните маскарадинг? Да да, когда наши соединения прикрываются роутером. А почему бы не сделать это в обратную сторону, но не для всего трафика, а только для конкретных запросов?
Сказано сделано.

Если мы работаем в рамках локальной сети т.е. пробуем подключиться с адреса 192.168.88.5 к адресу 192.168.88.30 все работает отлично. Этим и воспользуемся.
А когда мы работаем из интернета, к адресу 192.168.88.30 будет приходить запрос с адреса любого, который мы получили от провайдера в месте, где мы сидим, например 4G сеть.
Нужно заменить этот динамический IP в соединении, на IP роутера 192.168.88.1 и сделать это только для запросов идущих к IP адресу 192.168.88.30

Добавляем правило доступа к WEB интерфейсу точки доступа Asus

port-forwarding-8-1
Выбираем себе TCP порт
port-forwarding-8-2
WEB интерфейс висит на 80 порту
Теперь отловим это перенаправление и поменяем в нем IP.
ВНИМАНИЕ!!! Нам нужно создать правило именно для уже перенаправленного соединения!
port-forwarding-9-1
Нам нужна цепочка Srcnat
port-forwarding-9-2
И действие также src-nat
Консольно:
/ip firewall nat
add action=dst-nat chain=dstnat comment="Open ports to RT-AC66U" dst-port=14080 in-interface=WAN protocol=tcp to-addresses=192.168.88.30 to-ports=80
add action=src-nat chain=srcnat dst-address=192.168.88.30 dst-port=80 protocol=tcp to-addresses=192.168.88.1

Что же мы тут видим, посмотрим…
Сначала мы перенаправили порт для удаленного доступа к точке доступа Asus.
Через IP 98.76.54.32 и TCP порт 14080 к IP 192.168.88.30 и TCP порт 80
А потом отловили этот запрос и замаскировали в нем IP адрес источника с которого мы сидим на IP адрес самого роутера 192.168.88.1

Вкладка General
1. Chain — srcnat — цепочка srcnat
2. Dst. Address — 192.168.88.30 — мы же сами задавали перенаправление на этот адрес вот и ловим этот запрос
3. Dst. Port — 80 — ловим запрос на этот порт или порты (например если ловить потом еще и SSH, то пишем так 80,22)
Вкладка Action
1. Action — src-nat — выполняемое действие. Замена данных источника
2. To Addresses — 192.168.88.1 — на этот адрес меняем
3. To Ports — оставляем пустым т.к. порты мы указываем на вкладке General

Попробуем подключиться к роутеру откуда-нибудь из кафе или из гостей.
Для этого в браузере в адресной строке нужно набрать Наш внешний статический IP адрес и через двоеточие указать внешний TCP порт, через который мы делаем перенаправление.
Пример:
http://98.76.54.32:14080

web-access-rt-ac66u
Так выглядит доступ к роутеру из любого места, где есть интернет. Хоть из Америки =)

Вот такая хитрая схема, которая позволяет не городить огород на удаленных узлах.
Все правила перенаправления добавляются и управляются исключительно на роутере со статическим IP.
Вкладка NAT в Firewall это очень мощный инструмент наравне с фильтрацией трафика.
Дополнительная информация: WIKI MikroTik Firewall NAT (Eng)

Такой набор правил в NAT, есть у меня:
Попадаем в меню
/ip firewall nat
1. Маскируем локальные сети для выхода в интернет
add action=masquerade chain=srcnat comment="LAN to WAN" out-interface=WAN src-address=192.168.88.0/24

2. Доступ к Медиа Серверу и открытие порта для Торрента на нем же.
add action=dst-nat chain=dstnat comment="Open ports to Media Server" dst-port=10022 in-interface=WAN protocol=tcp to-addresses=192.168.88.9 to-ports=22
add action=dst-nat chain=dstnat dst-port=10080 in-interface=WAN protocol=tcp to-addresses=192.168.88.9 to-ports=80
add action=dst-nat chain=dstnat dst-port=10005 in-interface=WAN protocol=tcp to-addresses=192.168.88.9 to-ports=10005

3. Доступ к WEB интерфейсу Cisco SPA112 (Телефонный шлюз)
add action=dst-nat chain=dstnat comment="Open port to Cisco SPA112" dst-port=11080 in-interface=WAN protocol=tcp to-addresses=192.168.88.10 to-ports=80

Все остальное это сторона роутера hEX, тут нужно применить SRCNAT
4. Доступ к роутеру hEX по WinBox
add action=dst-nat chain=dstnat comment="Open port to hEX" dst-port=12291 in-interface=WAN protocol=tcp to-addresses=192.168.88.2 to-ports=8291
add action=src-nat chain=srcnat dst-address=192.168.88.2 dst-port=8291 protocol=tcp to-addresses=192.168.88.1

5. Доступ к сетевому мосту cAP Lite
add action=dst-nat chain=dstnat comment="Open port to cAP Lite" dst-port=13291 in-interface=WAN protocol=tcp to-addresses=192.168.88.39 to-ports=8291
add action=src-nat chain=srcnat dst-address=192.168.88.39 dst-port=8291 protocol=tcp to-addresses=192.168.88.1

6. Доступ к точке доступа Asus RT-AC66U (WEB и SSH)
add action=dst-nat chain=dstnat comment="Open ports to RT-AC66U" dst-port=14080 in-interface=WAN protocol=tcp to-addresses=192.168.88.30 to-ports=80
add action=dst-nat chain=dstnat dst-port=14022 in-interface=WAN protocol=tcp to-addresses=192.168.88.30 to-ports=22
add action=src-nat chain=srcnat dst-address=192.168.88.30 dst-port=80,22 protocol=tcp to-addresses=192.168.88.1

firewall-nat-all
Вид формирования правил в WinBox

Вы можете поменять внешние порты на свои, попробовать добавить что-то свое.
Надеюсь данная статья была Вам полезна и Вы узнали для себя что-то новое.
Если у Вас есть, что рассказать, по данной тематике, или чем поделиться, милости прошу в комментарии. Буду рад почитать и ответить на Ваши вопросы!

Продолжение:
Создание домашней сети на базе устройств MikroTik: Часть 8 — Установка и настройка MikroTik DUDE Network Monitor

Список всех статей в хронологическом порядке: История статей

Поддержка блога
Если Вам не безразлична судьба блога или Вы просто хотите отблагодарить Автора за его труд, смело переходите на страницу Поддержки, там описана вся информация, по тому, как это сделать проще простого =)
Хочешь получать уведомления о выходе новых статей?
Loading
Если Вы хотите изучить MikroTik, то это можно реализовать с помощью специального онлайн-курса "Настройка оборудования MikroTik". В курсе изучаются все темы из официальной программы MTCNA, а автором курса является официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто даже не держал его в руках. В состав курса входят 162 видеоурока, 45 лабораторных работ и вопросы для самопроверки с конспектом. Кстати я получал сертификат MTCNA именно тут!
GregoryGost

Мир интересен, если вы достаточно любопытны!!!

Оцените автора
GREGORY GOST
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

  1. Rustam

    Добрый день. Есть офис с VPN сервером, сейчас ставлю Микротик с белым IP адресом, филиалы будут подключаться к Микроту, и микрот пробрасывает порты на VPN сервер. Прописываю правила проброса для порта PPTP 1723, 47, и разрешаю протокол gre, у меня это выглядит вот так:
    add action=dst-nat chain=dstnat comment=PPTP dst-address=10,0,0,1 dst-address-list=»» dst-port=1723 protocol=tcp src-address-list=»1,1,1,1 » src-port=»» to-addresses=192.168.3.6 to-ports=1723
    add action=dst-nat chain=dstnat comment=PPTP dst-address=10,0,0,1 dst-address-list=»» dst-port=1723 protocol=tcp src-address-list=»1,1,1,1 » src-port=»» to-addresses=192.168.3.6 to-ports=1723
    add action=dst-nat chain=dstnat comment=PPTP dst-address=10,0,0,1 dst-address-list=»» dst-port=1723 protocol=tcp src-address-list=»1,1,1,1 » src-port=»» to-addresses=192.168.3.6 to-ports=47
    ну и accept 47(GRE)
    что то надо ещё добавить, или этого хватит для работы?

    Ответить
  2. Ильнар

    Спасибо тебе, добрый человек! Дай бог тебе здоровья крепкого, жену красавицу и детишек послушных!!!

    Ответить
  3. Сергей

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

    Ответить
  4. Владимир

    Спасибо за статью! В одном случае всё получилось, но во втором, не как не получается.
    Подскажите пожалуйста как пробросить порты.
    1. Есть провайдер с серым IP.
    2. 1 микротик 192.168.0.111 настроен на интернет через ppoе, его LAn соединен с управляемым ХАБом №1. Сеть 192.168.0.0/24
    3. Второй микротик с другой подсетью 192.168.172.0/24 подключен к порту управляемого ХАБа №1 и порт изолирован и смотрит только на бридж 1-го микротика.
    Задача пробросить порт из вне до интерфейса второй сети например 192.168.172.3

    Ответить
  5. Сергей

    Привет. Подскажите на микротике как правильно сделать переадресацию на локальные ip-сервера при обращении на внешний в зависимости от запрашиваемого имени сайта. Например пользователь через глобальную российскую сеть ))) запрашивает gitlab.ffff.ru — на 80 и 443 порт и его надо переадресовать на 192.168.100.2, этот же или другой пользователь запрашивает site.ffff.ru на 80 и 443 порт и его нужно переадресовать на 192.168.100.3

    Ответить
    1. GregoryGost автор

      Можете ознакомиться с информацией из статьи SSL сертификат Let’s Encrypt wildcard для https на базе Nginx в пункте «Как это работает?»
      Если будут вопросы пишите.

  6. Антон

    Спасибо за статью! Она от части описывает мою задачу 🙂 и даже решает ее. «умные» люди советовали мне не играться с НАТами «делай нормальную сеть и все будет работать», но как это сделать в моем примере затруднялись ответить.

    Может быть вы подскажите изящное решение?
    По сути я уже решил ее, через маршрутизацию и НАТ.

    Ответить
  7. Борис

    Здравствуйте.
    Помогите очень начинающему пользователю MikroTik.
    Пытаюсь подключиться к серверу по SSH по локальной сети самым простым способом, так как показано на картинке
    «Стандартное подключение в рамках локальной сети».
    PuTTY не соединяется.
    Предустановленные правила фаервола выключал.
    Порты с веб сервера пробросил нормально сайты видны из интернета.
    Интуитивно подозреваю, что упускаю какую то незначительную деталь.

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Можно конечно погадать на кофейной гуще, но это не наш метод ))
      Опишите топологию сети и можно конфиг даже скинуть (через облачные среды)
      https://gregory-gost.ru/svyaz-s-avtorom/

  8. Alexander

    Здравсвуйте!

    Огромное спасибо за столь интересный и полезный набор статей! Прошёл с первой по последнюю статью в переложении интеграции Микротик и Кинетик. И какое же разочарование было в самом конце, когда узнал, что в Кинетик нет возможности маскарадинга адреса источника! И следующая конструкция рушится к чертям и аналогов ей нет(

    Консольно:
    /ip firewall nat
    add action=dst-nat chain=dstnat comment=»Open ports to RT-AC66U» dst-port=14080 in-interface=WAN protocol=tcp to-addresses=192.168.88.30 to-ports=80
    add action=src-nat chain=srcnat dst-address=192.168.88.30 dst-port=80 protocol=tcp to-addresses=192.168.88.1

    Отсюда вопросы и варианты:
    1. Чем так плох ответ из другого шлюза (WAN 192.168.88.2) если порт будет таким же, как запрашивали (port 14080)? От нас же никто не ждёт ответ исключительно через первый шлюз?
    2. Это значит, что можно на шлюзе (WAN 192.168.88.2) восстановить порт и всё будет работать?
    3. Или есть возможность как-то перенаправлять весь трафик полученный от первого шлюза (WAN 192.168.88.1) вновь на первый шлюз (WAN 192.168.88.2) и там всё пройдёт как надо?
    4. Какие ещё костыли возможны?

    Заранее спасибо за ответ!

    ЗЫ: пруф отсутсвия маскарадинга адреса источника на Кинетик (возможно со временем что-то появится): https://forum.keenetic.net/topic/8627-mascarading/

    Ответить
  9. Константин

    Добрый день. В сети два шлюза. Cisco 192.168.23.2/24 и Nethserver (CentOS7 выполняет роль прокси сервера)-192.168.23.22/24. Клиенты имеют доступ в интернет через шлюз 192.168.23.2. Соответвенно проброс портов через Cisco на клиентские устройства проходит отлично. Проблема с пробросом через Nethserver. Проброса нет если только клиентам не прописать шлюз 192.168.23.22, что не подходит в существующей схеме. Прошу совета как пробросить в данном случае на линуксах? Спасибо. Думаю поможет многим.

    Ответить
  10. Константин

    Добрый день! Начинаю осваивать Микротик. Прошу помощи в правильном решении следующей задачи. Условие: есть Микротик RB2011UiAS-2HnD-IN с белым статическим IP который получает от провайдера интернет. за микротиком есть офисная сеть, в которой есть ПК и точки вайфай. Возникла необходимость установить сервер 1С+рабочие места. Сервер будет настраиваться сторонней организацией. Задача: организовать доступ к серверу и ра. местам извне, но при этом изолировать офисную сеть от возможного доступа сторонней организацией с последующей (через время) блокировкой доступа этой организации к нашим сетям (по сути, к доступу к Микротику на входе). Мои соображения: 1. один из портов Микротика выделить под отдельный VLAN к которому привязать свич (для подключения к нему сервера и раб. мест). На этом VLANе организовать изолированную сеть со своими DHCP, пулом адресов. Как организовать доступ извне с сохранением максимальной безопасности? через RDP?, по VPN? Пожалуйста поправте или направте в правильное русло. Спасибо

    Ответить
  11. Никоай

    Здравствуйте! Есть два роутера: keenetic и mikrotik. Keenetik имеет белый IP 109.88.88.25 (скажем). Mikroтik за серым сотового оператора. За keenetik подсетка 192.168.1.0/24, за mikrotik — 192.168.5.0/24. За mikrotik есть сервера к которым надо получить досуп из вне. Скажем WEB сервер на 192.168.5.15:80. Для этого поднят VPN l2tp/ipsec psk. Все настроенно. Доступ ко всем устройствам из обеих сетей есть. На kenetiс из вне запрос идет на порт 53000. Перенаправляется на 192.168.5.15:80. Или на 192.168.5.1:53000 (скажем)? А там согласно этой статье настраивается проброс портов с двумя провайдерами. Так как оба роутера в инет гуляет сами по себе , через своих провайдеров. Т.е мне надо запрос ответ перенаправить из вне через kenetiс потом VPN на сервер за mikrotik и обратно вернуть. Подскажите пожалуйста.

    Ответить
  12. angaric

    Здравствуйте.
    Проблема. Прописал диапазон ip 192.168.1.18-192.168.1.20 для порта 80 во вкладке action. Работает только один сайт, а остальные нет.

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Пока не понятно:
      1. Что это за правило и что оно должно делать?
      2. Зачем указан именно этот диапазон и http(80) порт?
      3. Что означает работает один сайт?

      Очень мало информации по решаемой задаче. Если вы обозначаете проблему, то распишите какие настройки делаете, зачем и какую проблему пытаетесь решить добавляя эти правила.
      И еще, нет возможности определить корректно ли настроены остальные части устройства, начиная с самых базовых.

  13. Заманбек

    Здравствуйте! можете описать либо показать как настраивать правило на пробросе портов на принтер? делал перенаправление портов 9100 но порт до сих пор закрыт

    Ответить
    1. GregoryGost автор

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

      /ip firewall nat
      add action=dst-nat chain=dstnat comment="Open ports" dst-port=10000 in-interface-list=WAN protocol=tcp to-addresses=192.168.88.10 to-ports=80

      где,
      dst-port=10000 — внешний порт на интерфейсе, куда подключен кабель провайдера. Именно по нему вы будете обращаться откуда-то из интернета.
      in-interface-list=WAN — список интерфейсов, куда входит порт для подключения кабеля провайдера. Подробнее про списки интерфейсов тут: MikroTik RouterOS – Списки интерфейсов “Interface List”
      to-addresses=192.168.88.10 — IPv4 адрес вашего принтера.
      to-ports=80 — TCP порт на котором сидит нужный вам сервис. (80 это обычный http web интерфейс, есть не у всех принтеров)

      Если у вас все так и при этом все равно нет доступа, то значит, что-то у вас не настроено, заблокировано провайдером или что-то еще и с этим нужно разбираться отдельно.

  14. Константин

    А можно поподробнее про перенаправление портов Winbox?
    Создал в NAT правило для перенаправления порта 50360 на порт 8291 роутера.
    Но оно работает только если в Firewall включено правило input-accept для порта 8291 и при этом можно из вне подключиться по порту 8291, чего не хочется. А если включаю правило для 50360, то подключение не идет. Правило в NAT точно работает, значит нужно правильно прописать правило в Firewall для 50360. Но я не понимаю как.

    Ответить
    1. GregoryGost автор

      Константин, напишите мне через https://gregory-gost.ru/svyaz-s-avtorom/ посмотрим на конфиг firewall

  15. Виктор

    Добрый день! Цель есть))) Напишите мне на почту. Я Вам скрины пришлю и объясню свою проблему.

    Ответить
  16. Виктор

    Должен быть один. Но по факту 2. Где то что надо включить или выключить. Микротик начинаю только разбирать. 2й имеет адрес от первого 88.253 и 88.2 который получил при начальной настройки.

    Ответить
    1. GregoryGost автор

      Виктор, вам нужно посмотреть как настраиваются Mikrotik роутеры.
      Пока как я понял у вас RB951G-2HnD головной и на нем должен быть включен DHCP (IP->DHCP Server) он и раздает в локалку IP адреса.
      RBmAPL-2nD получает адрес и плюс видимо имеет свой статический. Вы сначала определите конечную цель и уже изучайте процесс настройки. С наскоку не получится

  17. Виктор

    Добрый день! У меня два микротика один RB951G-2HnD адрес 192.168.88.1 и второй mAP lite (RBmAPL-2nD) с адресом 88.2 он подключается к первому к порту 3. Оба подключаются к коптерам, которые разбрасывают вайфай с адресом 192.168.10.2. проблема в том, что пока в Винде не пропишу шлюз по умолчанию команды до коптеров не доходят. А так как шлюз прописывается один, то взлетает один. Пробовал применить Вашу статью про проброс и два шлюза. Чтобы один шлюз был на два микротика. Но ничего не получилось. Помогите пожалуйста разобраться.

    Ответить
    1. GregoryGost автор

      У вас другая ситуация.
      У вас должен быть один шлюз по идее т.к. RB951G-2HnD и RBmAPL-2nD соединены кабелем. Зачем вам два шлюза?
      Нарисуйте на бумаге или в draw.io топологию своей сети, поможет определить базовую инфраструктуру и поймете где у вас проблема.

  18. Вячеслав

    Неделю думал как сделать, спасибо реально статья помогла

    Ответить
    1. GregoryGost автор

      Спасибо за отзыв! Рад, что статья оказалась вам полезной 🙂

  19. Александр

    Gregory, добрый день. Огромное спасибо за статьи, очень помогли. Подскажите, пожалуйста, а как правильнее всего настроить включение компьютера по запросу из вне при таком наборе правил Firewall

    Ответить
    1. GregoryGost автор

      Приветствую, рад, что мои статьи полезны )

      Можно использовать цепочку правил в Firewall и скрипт.
      В микротике есть утилита /tool wol, которая позволяет отправлять magic пакет для запуска ПК(Нужно проверить настройку в BIOS — WAKE_ON_LAN). И еще, если у вас ПК на Wi-Fi сидит, это работать не будет, только по кабельному каналу!
      Через PortKnocking или другими методиками обращаетесь на Адрес:порт, нужный адрес добавляется в адрес лист.
      Скрипт через планировщик периодически сканирует адрес лист на наличие записи, как только она появляется, отправляет на прописанный MAC адрес magic packet и ПК запускается.
      При наличии двух шлюзов, нужно сделать цепочку из правил. NAT на роутере со статикой и Filter или NAT на целевом роутере т.к. magic packet может не дойти.
      Нужно проверять.

  20. Максим

    Отличная статья. Похожая задача была. Не решил тогда. Дошло только до того, что понял, что причина в разных шлюзах. Испытания проведу сегодня. Спасибо!

    Ответить
  21. Алексей

    Gregory, добры день!
    Спасибо еще раз за цикл статей. Ранее писал вопрос по даче.
    https://drive.google.com/file/d/1XoB4m9m-bBaTsUAIxHsFLLC07Geyz7OL/view
    Всё заработало.

    У меня остался простой вопрос. В статье «проброс портов» мы даём доступ к локальному оборудованию из сети 1 и сети 2 через белый ip+порт.
    Чем больше оборудования и портов. тем больше правил нам надо сделать.

    Что мешает для настройки оборудования сети 1 и сети 2 из любой точки мира где есть интернет, сделать учётку для vpn туннеля с роутером с белым ip ?

    Какие минусы у данного способа ?

    Ответить
    1. GregoryGost автор

      Алексей, не за что ))

      Ничего не мешает, все ограничивается лишь необходимостью, вы можете без проблем использовать и VPN для этих целей.
      Вариантов как обычно несколько. Я описал только свой принцип и не ставил задачей охватить все =)

  22. Vano

    Реализовал еще интересный вариант, когда портмапинг позволяет прокинуть на любое устройство в сети если на этом устройстве не прописан шлюз в интернет, или оно ходит через другой шлюз.

    В комментариях я такого вроде как не нашeл.

    E меня схема достаточно простая есть 2 микротика на разных провайдерах
    M1(IP-ext1, 192.168.0.1)
    M2(IP-ext2, 192.168.0.254)

    S1 сервер у которого в качестве шлюза указано 192.168.0.1
    на S1 крутится RDP и WEB
    я настроил так что можно получить доступ через IP-ext2 доступ к этим службам.

    То-есть по сути на М1 обычный мапинг,
    а на M2 мапинг с подменой внешнего адреса того кто обращается на внутренний адрес (192.168.0.254) М2, (получается для S1 все эти обращения выглядят как от одного 192.168.0.254)

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

    В моем случае не надо ничего настраивать на микротике через который ходит в интернет на S1.

    Если интересно могу выгрузить свои настройки правила.

    Ответить
    1. GregoryGost автор

      Здравствуйте!
      Конечно интересно. Для меня такое использование было достаточно любопытным опытом, интересно посмотреть, какие есть еще альтернативы =)

    2. Иван

      конфиг с сервера
      /interface list
      add name=Internet
      add name=Local
       
      /interface bridge port
      add bridge=bridge-internet interface=ether1
      add bridge=bridge-local interface=ether2
       
      /interface list member
      add interface=bridge-internet list=Internet
      add interface=bridge-local list=Local
       
      /ip firewall address-list
      add address=192.168.0.15 list=PORT-MAPING
       
      /ip firewall nat
      add action=masquerade chain=srcnat comment="2.0 Port Maping to servers \
      without gate" dst-address-list=PORT-MAPING
      add action=dst-nat chain=dstnat dst-port=38077 protocol=tcp to-addresses=\
      192.168.0.15 to-ports=3389
      add action=dst-nat chain=dstnat dst-port=8080 protocol=tcp to-addresses=\
      192.168.0.15 to-ports=80
      add action=masquerade chain=srcnat comment="3.0 Port Mapping" \
      dst-address-list=!PORT-MAPING out-interface-list=Internet

      примерно так
      вся фишка в осутствии out-interface-list=Internet в правиле для списка PORT-MAPING

    3. Иван

      У меня проблема с настройкой fortigate была именно в том с мапингом, что он нормально не хочет отрабатывать NAT, он всё пересылал от своего имени, поэтому я и попробовал реализовать на микротике такой вариант

    4. Vano

      Я от тестировал вариант для VPN, работает.
      Мало того работает для любого ресурса который доступен с этого шлюза

      например я прокинул 80 порт на адрес веб сервера в интернете.

    5. GregoryGost автор

      Вы молодец! Возможно кто-то возьмет ваши заметки на вооружение!

  23. Алексей

    Отличная статья, многие вопросы позволила решить. Но вот у меня совсем нестандартная конфигурация и что-то не могу решить свою задумку. Значит так, имеется два провайдера: Провайдер номер «раз» даёт серый IP 192.168.6.7; провайдер номер «два» дает белый IP 42.43.44.45(пример). Задача следующая:
    Провайдер «раз» используется как основной интернет
    Провайдер «два» используется для:
    1.Создание канала IPsec, как принимающая сторона
    2.Проброс портов, для подключения к внутренним ресурсам, в том числе к веб-сайту
    И вот с веб-сайтом проблема и возникла, ну не хочет работать изнутри, т.е. если я захожу на него где-то со стороны, то он открывается, но если я попытаюсь открыть его из локальной сети, указывая всё тот-же адрес(или адрес или имя. неважно), то нихрена, сайт не открывается(. Куда копать понять не могу. Есть идеи?

    Ответить
    1. GregoryGost автор

      Алексей, приветствую.
      Благодарю за отзыв!

      Алексей, ваш вопрос уже давно решен ) Вам необходимо использовать Hairpin NAT
      На самом деле этот вопрос задают многие начинающие энтузиасты.

      Объяснять весь принцип в комментарии будет муторно, с полным объяснением.

      В кратце должно быть два правила:
      /ip firewall nat
      add action=dst-nat chain=dstnat dst-address=42.43.44.45 dst-port=80,443 protocol=tcp to-addresses=192.168.88.10 comment="Hairpin NAT"
      add action=masquerade chain=srcnat dst-address=42.43.44.45 dst-port=80,443 protocol=tcp src-address=192.168.88.0/24

      192.168.88.10 — пример адреса web сервера

      Если хотите разобраться почему так, то можете поискать информацию в интернете по запросу Hairpin NAT MikroTik

  24. AlexM

    Здравствуйте Gregory!
    Есть два роутера в разных квартирах:
    кв1 — hAP ac (статический внешний IP), кв2 — hAP ac2. Прошивки последние (Long-term).
    Всё сделал по вашим статьям, туннели (OVPN и EoIP) проброшены и исправно работают.
    В кв1, в сети стоит NAS, на нём поднят медиа-сервер Twonky. Клиенты сети кв1 его прекрасно видят и работают с ним, а вот клиенты сети кв2 его не видят!
    В чём может быть проблема?
    Хотелось бы смотреть фильмы в кв2 с этого сервера в кв1.

    Ответить
    1. AlexM

      Прошу прощения за беспокойство!
      Проанализировал свои конфиги на обоих роутерах, и увидел, что на втором, забыл добавить EoIP тоннель в бридж. Теперь всё работает прекрасно. Огромное спасибо за статьи.

    2. GregoryGost автор

      А я только добрался до комментариев ))
      Рад что все работает исправно! Успехов!

  25. Андрей

    Добрый день, спасибо за статью, но таки имеется вопрос по пробросу портов, в частности 80. Его необходимо пробросить на три внутренних устройства, благодаря разработчикам росалкогольрегулирования.
    Схема простая: интернет > роутер(rb750gr-3) >192.168.88.0/24 > устройство 1, 2, 3 и все остальное. Все пишут о возможности такого проброса, но еще не попалась ссылка где было-бы написано, что сделал — работает. :((
    Проброс 80>80 (на устройство 1) работает как при включенных стандартных правилах Firewall Filter так и при выключенных, а также и с этим правилом, и без этого правила (Цитата:»Не забудьте открыть доступ к внешнему порту в Firewall Filter и поместить правило выше последнего запрещающего, иначе фильтрация соединений заблокирует все ваши попытки подключения.»). При попытке изменить входящий порт на любой другой (например 18877>80) работать перестает (устройство 1 недоступно), не говоря уже о устройстве 2 , 3 при всех включенных и выключенных (добавленных — удаленных) правилах.
    На два устройства получилось пробросить на Zyxel Keenetic Lite II, а нужно три. Все остальные, имеющиеся под рукой роутеры(TpLink, Asus, HP, DLink) могут только 80>80.
    rb750gr-3 на данный момент не отличается от большинства, надеюсь пока не отличается :)).
    Ну и собственно вопрос решается ли на rb750gr-3 такая задача не теоретически, а практически и если да, то где зарылся ответ.
    Конфигурация роутера — стандартная из магазина.
    Заранее спасибо за ответ.

    Ответить
    1. GregoryGost автор

      Здравствуйте,

      Ну для начала сразу лучше избавиться от «Конфигурация роутера – стандартная из магазина.»
      Совсем не советую использовать что-то стандартное. Выполняйте полный сброс и настраивайте с нуля.
      Firewall можно оставить на самое сладкое. В нем лучше будет начать с NAT

      Позвольте уточнить. Сервис который должен подключаться к трем разным адресам имеет возможность изменить порт назначения?
      Поясню. Для того, чтобы получить доступ к:
      192.168.88.15:80
      192.168.88.16:80
      192.168.88.17:80
      снаружи из интернета, нужны другие адреса назначения.
      Вы уже так делали 18877>80. Начните сначала или просто пока отключите все что есть в Firewall Filter. В Firewall NAT также все отключите кроме правила src-nat — masquerade
      И только после этого проверяйте перенаправление.

      Потом когда убедитесь, что все работает, как нужно начнете возвращать правила в Firewall Filter

      Ну и классические правила перенаправления:
      /ip firewall nat
      add action=dst-nat chain=dstnat comment="IP1" dst-port=8087 in-interface-list=Internet protocol=tcp to-addresses=192.168.88.15 to-ports=80
      add action=dst-nat chain=dstnat comment="IP2" dst-port=8088 in-interface-list=Internet protocol=tcp to-addresses=192.168.88.16 to-ports=80
      add action=dst-nat chain=dstnat comment="IP3" dst-port=8089 in-interface-list=Internet protocol=tcp to-addresses=192.168.88.17 to-ports=80

  26. Choke

    добрый день. а как 1 порт пробросить на несколько локальных ip? например 80. пробовал 2 правила, но они не работают одновременно. Вкладка «Action», поле «To Addresses» — написано что адресов может быть несколько, а как их несколько прописать? через запятую выдает ошибку.

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Несколько адресов прописываются только через дефис, также, как и pool dhcp
      192.168.88.2-192.168.88.3

  27. Domin

    Спасибо огромное за помощь! Попробую все переделать с нуля, я уже давно склонялся к такой мысли, но все не доходили руки. Удачного Вам дня!

    Ответить
  28. Domin

    mangle
    12 ;;; Mark Satel PPPoE
    chain=prerouting action=mark-connection new-connection-mark=ppp1_connection passthrough=yes
    connection-state=»» in-interface=pppoe-out1 log=no log-prefix=»»
    13 chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    connection-mark=ppp1_connection in-interface=bridge log=no log-prefix=»»
    14 chain=output action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    connection-mark=ppp1_connection log=no log-prefix=»»
    15 chain=output action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=XXXX log=no log-prefix=»»
    16 ;;; Mark Satel Static
    chain=prerouting action=mark-connection new-connection-mark=ether2_connection passthrough=yes
    connection-state=»» in-interface=ether2 log=no log-prefix=»»
    17 chain=prerouting action=mark-routing new-routing-mark=to_ether2 passthrough=no
    connection-mark=ether2_connection in-interface=bridge log=no log-prefix=»»
    18 chain=output action=mark-routing new-routing-mark=to_ether2 passthrough=no
    connection-mark=ether2_connection log=no log-prefix=»»
    19 chain=output action=mark-routing new-routing-mark=to_ether2 passthrough=no
    src-address= XXXX log=no log-prefix=»»
    20 ;;; Mark Datagroup Static
    chain=prerouting action=mark-connection new-connection-mark=combo1_connection passthrough=yes
    in-interface=combo1 log=no log-prefix=»»
    src-address= XXXX log=no log-prefix=»»
    20 ;;; Mark Datagroup Static
    chain=prerouting action=mark-connection new-connection-mark=combo1_connection passthrough=yes
    in-interface=combo1 log=no log-prefix=»»
    21 chain=prerouting action=mark-routing new-routing-mark=to_combo1 passthrough=no
    connection-mark=combo1_connection in-interface=bridge log=no log-prefix=»»

    22 chain=output action=mark-routing new-routing-mark=to_combo1 passthrough=no
    connection-mark=combo1_connection log=no log-prefix=»»
    23 chain=output action=mark-routing new-routing-mark=to_combo1 passthrough=no
    src-address= XXXX log=no log-prefix=»»
    24 ;;; Satel Static DNS requests redirect
    chain=output action=mark-routing new-routing-mark=to_ether2 passthrough=yes protocol=udp
    dst-address= XXXX dst-port=53 log=no log-prefix=»»
    25 chain=output action=mark-routing new-routing-mark=to_ether2 passthrough=yes protocol=udp
    dst-address= XXXX dst-port=53 log=no log-prefix=»»
    26 ;;; Satel PPPoE DNS requests redirect
    chain=output action=mark-routing new-routing-mark=to_ppp1 passthrough=no protocol=udp
    dst-address= XXXX dst-port=53 log=no log-prefix=»»
    27 chain=output action=mark-routing new-routing-mark=to_ppp1 passthrough=no protocol=udp
    dst-address= XXXX dst-port=53 log=no log-prefix=»»
    28 ;;; Datagroup DNS requests redirect
    chain=output action=mark-routing new-routing-mark=to_combo1 passthrough=no protocol=udp
    dst-address= XXXX dst-port=53 log=no log-prefix=»»
    29 chain=output action=mark-routing new-routing-mark=to_combo1 passthrough=no protocol=udp
    dst-address= XXXX dst-port=53 log=no log-prefix=»»
    30 X ;;; PC 192.168.88.248 === fixed internet IP for access to server === to Satel PPPoE
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=192.168.88.248 dst-address=!192.168.88.0/24 log=no log-prefix=»»
    31 ;;; PC 192.168.88.177 === fixed internet IP for access to server === to Satel PPPoE
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=192.168.88.177 dst-address=!192.168.88.0/24 log=no log-prefix=»»
    32 ;;; PC 192.168.88.172 === fixed internet IP to Satel PPPoE===
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=192.168.88.172 dst-address=!192.168.88.0/24 log=no log-prefix=»»
    33 ;;; PC 192.168.88.16 === fixed internet IP to Satel PPPoE===
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=192.168.88.16 dst-address=!192.168.88.0/24 log=no log-prefix=»»
    34 ;;; PC 192.168.88.21 === fixed internet IP for access to server === to Satel PPPoE
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=yes
    src-address=192.168.88.21 dst-address=!192.168.88.0/24 log=no log-prefix=»»
    35 ;;; PC 192.168.88.249 === fixed internet IP for access to server === to Satel PPPoE
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=192.168.88.249 dst-address=!192.168.88.0/24 log=no log-prefix=»»
    36 ;;; PC 192.168.88.15 === fixed internet IP for access to server === to Satel PPPoE
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=192.168.88.15 dst-address=!192.168.88.0/24 log=no log-prefix=»»
    37 ;;; Interet access from LAN === Per-connection classifier balancer=== Balance citeria: ONLY sou>
    address
    chain=prerouting action=mark-routing new-routing-mark=to_ppp1 passthrough=no
    src-address=192.168.88.0/24 dst-address=!192.168.88.0/24
    per-connection-classifier=src-address:3/0 log=no log-prefix=»»
    38 chain=prerouting action=mark-routing new-routing-mark=to_ether2 passthrough=no
    src-address=192.168.88.0/24 dst-address=!192.168.88.0/24
    per-connection-classifier=src-address:3/1 log=no log-prefix=»»
    39 chain=prerouting action=mark-routing new-routing-mark=to_combo1 passthrough=no
    src-address=192.168.88.0/24 dst-address=!192.168.88.0/24
    per-connection-classifier=src-address:3/2 log=no log-prefix=»»

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Заметил у Вас много лишнего в правилах.
      Я бы рекомендовал Вам начать с нуля анализируя каждый пакет и каждую настройку.
      Ранее Вы также не сообщили, что у Вас настроена обработка данных из локальной сети с помощью per-connection-classifier

      Для начала я бы предложил такую схему балансировки трех соединений.
      В этой схеме все соединения которые приходят с интерфейса в него и уходят. Т.е. никаких принудительных правил делать не нужно, кроме базовых в mangle по маркировке в prerouting и маршрутизации этого соединения перед output

      /ip firewall filter
      # FORWARD CHAIN (FIRST)
      chain=forward action=fasttrack-connection connection-state=established,related log=no log-prefix=""
      chain=forward action=accept connection-state=established,related log=no log-prefix=""
      chain=forward action=drop connection-state=invalid log=no log-prefix=""
      # INPUT CHAIN (SECOND)
      chain=input action=accept connection-state=established,related log=no log-prefix=""
      chain=input action=drop connection-state=invalid log=no log-prefix=""
      chain=input action=accept protocol=icmp log=no log-prefix=""
      chain=input action=accept protocol=igmp log=no log-prefix=""
      chain=input action=accept protocol=tcp src-address-list=Admin_Whitelist dst-port=8291,22 log=no log-prefix=""
      chain=input action=drop in-interface-list=WAN log=no log-prefix=""


      /ip firewall nat
      # MASQUERADE
      chain=srcnat action=masquerade out-interface-list=WAN log=no log-prefix=""
      # DST-NAT
      chain=dstnat action=dst-nat to-addresses=192.168.88.21 protocol=udp in-interface-list=WAN dst-port=3031 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.177 protocol=udp in-interface-list=WAN dst-port=3434 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.177 protocol=udp in-interface-list=WAN dst-port=3090 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.248 to-ports=4000 protocol=tcp in-interface-list=WAN dst-port=4000 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.249 protocol=tcp in-interface-list=WAN dst-port=3035 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.249 protocol=tcp in-interface-list=WAN dst-port=3050 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.249 to-ports=4003 protocol=tcp in-interface-list=WAN dst-port=4003 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.249 protocol=tcp in-interface-list=WAN dst-port=13000-13010 log=no log-prefix=""
      chain=dstnat action=dst-nat to-addresses=192.168.88.249 to-ports=4004 protocol=tcp dst-address=XXXX dst-port=4004 log=no log-prefix=""


      /ip firewall mangle
      # PREROUTING WAN / OUTPUT WAN
      chain=prerouting action=mark-connection in-interface=pppoe-out1 new-connection-mark=ppp1_connection passthrough=yes connection-state=new log=no log-prefix=""
      chain=output action=mark-routing new-routing-mark=to_ppp1 connection-mark=ppp1_connection passthrough=no log=no log-prefix=""
      chain=prerouting action=mark-connection in-interface=ether2 new-connection-mark=ether2_connection passthrough=yes connection-state=new log=no log-prefix=""
      chain=output action=mark-routing new-routing-mark=to_ether2 connection-mark=ether2_connection passthrough=no log=no log-prefix=""
      chain=prerouting action=mark-connection in-interface=combo1 new-connection-mark=combo1_connection passthrough=yes connection-state=new log=no log-prefix=""
      chain=output action=mark-routing new-routing-mark=to_combo1 connection-mark=combo1_connection passthrough=no log=no log-prefix=""
      # PREROUTING LAN
      chain=prerouting action=mark-connection dst-address-type=!local in-interface-list=LAN new-connection-mark=ppp1_connection passthrough=yes per-connection-classifier=both-addresses:3/0
      chain=prerouting action=mark-routing connection-mark=ppp1_connection dst-address-type=!local new-routing-mark=to_ppp1 passthrough=no
      chain=prerouting action=mark-connection dst-address-type=!local in-interface-list=LAN new-connection-mark=ether2_connection passthrough=yes per-connection-classifier=both-addresses:3/1
      chain=prerouting action=mark-routing connection-mark=ether2_connection dst-address-type=!local new-routing-mark=to_ether2 passthrough=no
      chain=prerouting action=mark-connection dst-address-type=!local in-interface-list=LAN new-connection-mark=combo1_connection passthrough=yes per-connection-classifier=both-addresses:3/2
      chain=prerouting action=mark-routing connection-mark=combo1_connection dst-address-type=!local new-routing-mark=to_combo1 passthrough=no


      /ip route
      # FIRST
      distance=1 gateway=pppoe-out1 routing-mark=to_ppp1
      distance=2 gateway=ether2 routing-mark=to_ether2
      distance=3 gateway=combo1 routing-mark=to_combo1
      distance=1 gateway=pppoe-out1
      distance=2 gateway=ether2
      distance=3 gateway=combo1

      Я тут конечно не претендую на идеальное решение.
      Но с этого можно начать, чтобы разобраться в том, какие соединения, пакеты в каком порядке обрабатываются. Куда поступают запросы и куда уходит ответ.
      Рекомендую еще утилиту Torch на интерфейсах. Она поможет отслеживать соединения.

  29. Domin

    Список Nat
    ;;; NAT + Masquerade Satel PPPoE
    chain=srcnat action=masquerade out-interface=pppoe-out1 log=no log-prefix=»»

    1 chain=dstnat action=dst-nat to-addresses=192.168.88.21 protocol=udp dst-address=xxxx
    dst-port=3031 log=no log-prefix=»»

    2 chain=dstnat action=dst-nat to-addresses=192.168.88.249 protocol=tcp dst-address=XXXX
    dst-port=3035 log=no log-prefix=»»

    3 chain=dstnat action=dst-nat to-addresses=192.168.88.249 protocol=tcp dst-address=XXXX
    dst-port=3050 log=no log-prefix=»»

    4 chain=dstnat action=dst-nat to-addresses=192.168.88.177 protocol=udp dst-address=XXXX
    dst-port=3434 log=no log-prefix=»»

    5 ;;; new port Most_O
    chain=dstnat action=dst-nat to-addresses=192.168.88.177 protocol=udp
    dst-address=XXXX dst-port=3090 log=no log-prefix=»»

    6 chain=dstnat action=dst-nat to-addresses=192.168.88.248 to-ports=4000 protocol=tcp
    dst-address=XXXX dst-port=4000 log=no log-prefix=»»

    7 chain=dstnat action=dst-nat to-addresses=192.168.88.249 to-ports=4003 protocol=tcp
    dst-address=XXXX dst-port=4003 log=no log-prefix=»»

    8 ;;; Test
    chain=dstnat action=dst-nat to-addresses=192.168.88.249 protocol=tcp
    dst-address=XXXX src-port=»» dst-port=13000-13010 log=no log-prefix=»»

    9 chain=dstnat action=dst-nat to-addresses=192.168.88.249 to-ports=4004 protocol=tcp
    dst-address=XXXX dst-port=4004 log=no log-prefix=»»
    Дальше по аналогии проброс остальных портов.

    Ответить
  30. Domin

    Вот список Rules Filter
    ;;; Accept Admin — Address List!
    chain=input action=accept protocol=tcp src-address-list=Admin_Whitelist
    dst-port=8291,22 log=no log-prefix=»»

    2 ;;; Drop Admin == Address List + Interface List!
    chain=input action=drop protocol=tcp src-address-list=!Admin_Whitelist
    in-interface-list=WAN interfaces dst-port=22,8291 log=no log-prefix=»»

    3 X ;;; test
    chain=forward action=accept connection-state=new
    connection-nat-state=dstnat protocol=tcp dst-address=192.168.88.249
    in-interface-list=WAN interfaces dst-port=15100 log=no log-prefix=»»

    4 ;;; Allow DNS responses from ISP — Address List!
    chain=input action=accept protocol=udp src-address-list=DNS_servers
    src-port=53 log=no log-prefix=»»

    5 ;;; Allow ICMP
    chain=input action=accept protocol=icmp log=no log-prefix=»»

    6 ;;; IGMP
    chain=input action=accept protocol=igmp log=no log-prefix=»»

    7 ;;; Allow Local DNS, NTP
    chain=input action=accept protocol=udp src-address=192.168.0.0/16
    in-interface=bridge dst-port=53,123 log=no log-prefix=»»

    8 ;;; Accept established, related == Input
    chain=input action=accept connection-state=established,related log=no
    log-prefix=»»

    9 ;;; Drop DNS flood from WAN
    chain=input action=drop connection-limit=3,32 protocol=udp
    in-interface=ether2 dst-port=53 log=no log-prefix=»»

    10 chain=input action=drop connection-limit=3,32 protocol=udp
    in-interface=pppoe-out1 dst-port=53 log=no log-prefix=»»

    11 chain=input action=drop connection-limit=3,32 protocol=udp
    in-interface=combo1 dst-port=53 log=no log-prefix=»»

    12 chain=input action=add-src-to-address-list protocol=udp
    address-list=dnsflood address-list-timeout=12h in-interface=!bridge
    dst-port=53 log=no log-prefix=»»

    13 ;;; Drop all input === Caution — Interface List!
    chain=input action=drop in-interface-list=WAN interfaces log=no
    log-prefix=»»

    14 X ;;; defconf: fasttrack
    chain=forward action=fasttrack-connection
    connection-state=established,related log=no log-prefix=»»

    15 ;;; accept established,related == Forward
    chain=forward action=accept connection-state=established,related log=no
    log-prefix=»»

    16 ;;; defconf: drop invalid
    chain=forward action=drop connection-state=invalid log=no log-prefix=»»

    17 ;;; drop all from WAN not DSTNATed === Caution — Interface List!
    chain=forward action=drop connection-state=new
    connection-nat-state=!dstnat in-interface-list=WAN interfaces log=no
    log-prefix=»»

    Ответить
  31. Domin

    да ip routes, пакеты маркируются, более того ПК на который отправляються пакеты ходят в интернет строго через одного провайдера, второй используется как резервный на случай проблем с первым.

    Ответить
    1. GregoryGost автор

      Полагаю настройки у Вас должны быть похожи на эти:
      Interface
      /interface list
      add name=WAN
      /interface list member
      add interface=WAN1 list=WAN
      add interface=WAN2 list=WAN

      Firewall
      /ip firewall nat
      add action=masquerade chain=srcnat out-interface-list=WAN

      /ip firewall mangle
      add action=mark-connection chain=prerouting comment="PREROUTING WAN / OUTPUT WAN" in-interface=WAN1 new-connection-mark=wan1-in-conn connection-state=new passthrough=yes
      add action=mark-routing chain=output connection-mark=wan1-in-conn new-routing-mark=wan1-out-route passthrough=no
      add action=mark-connection chain=prerouting in-interface=WAN2 new-connection-mark=wan2-in-conn connection-state=new passthrough=yes
      add action=mark-routing chain=output connection-mark=wan2-in-conn new-routing-mark=wan2-out-route passthrough=no

      Routes
      /ip route
      add distance=1 gateway=WAN1 routing-mark=wan1-out-route
      add distance=2 gateway=WAN2 routing-mark=wan2-out-route
      add distance=1 gateway=WAN1
      add distance=2 gateway=WAN2

      Это пока без учета резервирования.
      Более детально пока не могу протестировать, у меня нет двух провайдеров с белыми IP для проверки на практике Вашей проблемы.
      Если что-то не понятно, спрашивайте.

  32. Domin

    Здравствуйте,
    все устройства подключены к локальной сети роутера, у них одно адресное пространство, блокировок типа «разрешенные ip или сети нету», заметил один нюанс, что бывает такое, что порты которые уже открыты через них данные ходят нормально, хотя при проверке порта на открытие из интернета, его статус — закрыт. Вот вчера нужно было пробросить очередной порт, 5556 не получилось, а порт 5555 пробросил без проблем. Причем на роутер заведено два провайдера и на обеих одна и та же проблема, это я на предмет среза портов провайдерами. Спасибо!

    Ответить
    1. GregoryGost автор

      А вот про двух провайдеров вы в первом комментарии умолчали.

      Подскажите, у Вас маршруты на этих провайдеров, как настроены? /ip routes
      Есть ли маркировка входящих соединений по этим двум провайдерам? /ip firewall mangle
      Применяется ли правило, с какого интерфейса пришло туда и должно уходить?

  33. Domin

    Подскажите пожалуйста, делаю перенаправление портов через NAT и столкнулся с такой проблемой, что некоторые порты перенаправляются без проблем, а некоторые упорно не хотят, я пробовал выключать все drop правила, создавал новое на принудительный forward, ничего не меняется, одни открываются нормально, а те что нужно никак, ни диапазоном ни по одному. По пакетам смотрю, что счетчик увеличивается при каждом запросе, а пробросить дальше не получается. Уже неделю ломаю голову не могу понять в чем причина. Спасибо!

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Для начала подскажите, все и устройства подключены к локальной сети роутера или есть такие, которые находятся за туннелями? Все ли используют одно и то же адресное пространство?
      Все очень сильно зависит от вашей топологии сети.

      Если счетчик запросов для правила перенаправления увеличивается, но доступа нет, проверьте есть ли доступ к этому порту локально из этой же подсети.
      Проверьте нет ли блокировок доступа типа «разрешенный IP», «разрешенная подсеть» на стороне сервисов к которым перенаправляете порты.

  34. Stanislav

    А как защитить порт от подбора пароля .Скажем порт 443 ?

    Ответить
    1. GregoryGost автор

      Здравствуйте,

      443 порт это порт для работы WEB приложений с защитой
      80 (http://) и 443 (https://)

      Немного непонятно, что значит защитить порт от подбора пароля? К портам не применяется подбор паролей, подбор паролей применяется к службе или сервису, который слушает этот порт.
      В случае 443 порта, это какое-то приложение или сайт, который открывается через https://
      Так, что нужно защищать сам сервис, а это уже к тематике данной статьи не относится.

      Надеюсь внес ясность.

  35. Александр

    Здравствуйте!
    Подскажите пжлст, сделал перенаправление в nat с внешнего порта 55535 на внутренний ip на порт 85. В filter rule открыл порт 55535 и правило не работает. А заработало тогда, когда в filter rule вместо порта 55535, открыл порт 85, хотя по логике извне лезу на порт 55535. В чем может быть проблема??

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Все зависит от того, какие правила у Вас стоят до разрешающего правила и как настроено само перенаправление.
      Покажите, как настроено перенаправление (можно консольно)

      На самом деле это самая простая операция в Firewall Filter

      Для анализа прохождения пакетов можно включить его логгирование и дополнительно использовать Torch на интерфейсе WAN

  36. Олег

    Здравствуйте не подскажите есть ли какие то тонкости при настройке доступа к видеоконтролю. Не могу пробить тоннель к видеорегистратору (файлсервер на другой машине работает при таких же настройках). Пишете все доступно и понятно, но что то у меня не доступно из иннета (изнутри захожу без проблем)

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Подскажите свою топологию. Также проверьте нет ли блокировки в самом видеорегистраторе на доступ из не локальных сетей.
      Используйте кнопку Torch на сетевых интерфейсах для просмотра поступающих соединений.

  37. FANAT

    Спасибо автору за статью! Наконец-то получилось перенаправить через порт ! У меня apache +1c web, долго пытался сделать подобное!

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Спасибо Вам за отзыв.
      Рад, что статья оказалась Вам полезна !

  38. Андрей

    Добрый день!
    Огромное спасибо за Ваши статьи!

    Ситуация, почти как описана у Вас в «Перенаправление портов до hEX (RB750Gr3)», но решить вопрос не получается.

    Есть два роутера Mikrotik со статическими IP.

    МИК1:
    Статический IP: 212.33.44.111
    Локальный IP: 10.1.3.1
    Сервер L2tp: 10.1.4.1

    В сети МИК1 есть железка 10.1.3.13

    МИК2:
    Статический IP: 194.88.222.99
    Локальный IP: 10.3.1.1
    Клиент L2tp: 10.1.4.251

    В сети МИК2 есть железка 10.3.1.6

    Пробрасываю порт 10050, через МИК2-l2tp-МИК1 до 10.1.3.13, т.е. 194.88.222.99:10050 —> 10.1.3.13:10050

    На данный момент, c МИК2 или c 10.3.1.6 доступ к 10.1.3.13:10050, есть. Извне, через 194.88.222.99:10050, доступа нет.

    На МИК2 в NAT прописано:
    5 chain=dstnat action=dst-nat to-addresses=10.1.3.13 to-ports=10050 protocol=tcp dst-address=194.88.222.99 in-interface=ether10 dst-port=10050 log=no log-prefix=»»
    6 chain=srcnat action=src-nat to-addresses=10.3.1.1 protocol=tcp dst-address=10.1.3.13 dst-port=10050 log=no log-prefix=»»

    Подскажите, где я ошибаюсь и как решить проблему?

    Спасибо!

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      На первый взгляд, все выглядит правильным.

      Что в этой ситуации можно сделать, так это провести диагностику прохождения пакета(запросов):
      1. В IP->Firewall посмотрите на Bytes и Packets ваших правил, все ли запросы обрабатываются.
      2. Используйте инструмент Torch на интерфейсах и уже в них, фильтры по портам, ip адресам и т.д.

      Так Вы увидите, куда пакеты проходят, а куда нет.

    2. Андрей

      Изменил правило #6 на:
      chain=srcnat action=src-nat to-addresses=10.3.1.1 protocol=tcp out-interface=l2tp dst-port=10050 log=yes log-prefix=»»
      заработало.

      Спасибо!

  39. iFFgen

    Подскажите, пожалуйста в каком ПО делались схемы?

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Да конечно подскажу. Эти схемы я делал в online web сервисе draw.io

  40. werter

    Спасибо за статьи.

    Люблю мир открытого ПО. Пользую его в работе и в жизни.

    Мои заметки — forum.netgate.com/topic/120102/proxmox-ceph-zfs

    В жизни пользую KDE Neon — при всей красоте на «холодную» кушает меенее 400 МБ ОЗУ(!) Оч. стабилен.
    Активно развивается.
    Если же железо совсем старое — Zorin OS Lite. Крайне дружелюбен для пол-ля.

    P.s. Пишите, если чего заинтересовало.

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Спасибо за информацию, поизучаю Ваши заметки.

  41. Dimaaannn

    Благодарю за статью.
    Очень помогло для доступа к внутреннему роутеру.
    Перерыл кучу инфы, думал у меня настроки фаерволла в микротике неправильные.

    Ответить
    1. GregoryGost автор

      Здравствуйте,
      Благодарю за отзыв. Рад, что статья помогла Вам разобраться в вопросе =)