Перейти к содержимому

Как пробросить 80 порт на микротик

  • автор:

Проброс порта 80 HTTP на Микротик

Предположим, купили вы с соседом Mikrotik RouterBoard RB493AH, Mikrotik RouterBoard 1100 или Mikrotik RouterBoard 750G. Подключили интернет, настроили, все отлично работает. Захотели создать свой веб-сервер или сервер counter strike, чтобы играть с друзьями через интернет. В этом нам поможет проброс портов (DNAT).

DNAT (Destination Network Address Translation). С помощью DNAT можно подменять для входящих пакетов адрес назначения.

У нас есть внешний ip-адрес. Если пользователь из сети Интернет введет его у себя в браузере, то попадет в веб-интерфейс Mikrotik.

Рис.1. Веб-интерфейс Mikrotik Routerboard.

Выполним проброс 80-го порта.

Как перенаправлять порты в Mikrotik

Рис.2. Mikrotik Routerboard, NAT General.

Создаем правило на вкладке NAT.

  • Chain – выбираем dst-nat;
  • Dst. Address – указываем внешний ip-адрес нашего Mikrotik Routerboard;
  • Protokol – tcp;
  • Dst. Port – порт назначения.

Как перенаправлять порты в Mikrotik

Рис.3. Mikrotik Routerboard, NAT Action.

На вкладке Action, в поле Action выбираем dst-nat.

To Addresses – 192.168.4.205. Это адрес в локальной сети на который будут перенаправлятся запросы.

To Ports – указываем номер порта.

Проверяем, получилось ли пробросить 80-й порт.

Как перенаправлять порты в Mikrotik

Рис.4. Ответ от локального веб-сервера.

Проброс портов прошел успешно, теперь те же действия можно проделать для других сервисов.

Евгений Рудченко специально для Asp24.

Делаем порт-мапинг в mikrotik

Если требуется зайти на свое оборудование находящееся за NAT-ом мы должны использовать перенаправление портов для того, чтобы мы могли получить доступ к оборудованию из интернета. Для этого нам необходимо пробросить 80 порт (пробросить можно любой порт).

Делается это в ip firewall nat

add action=dst-nat chain=dstnat comment=»» disabled=yes dst-port=80 \
in-interface=ether5 protocol=tcp to-addresses=192.168.1.5 to-ports=80

где:
dst-port — номер порта на внешнем интерфейсе
in-interface — внешний интерфейс для входящих подключений
protocol — протокол, в поем случае tcp
to-address — адрес назначения, куда поступают пакеты после роутера
to-port — номер пората, куда перенаправляются пакеты

Микротик, проброс 80 порта не работает

Подскажите, ситуация такая, проброшены 80, 443, 81 порт до nginx reverse в локальной сети. Nginx перенаправляет по http на два сервера в локалке (homeassistant, nextcloud). С наружи по 81 порту в веб интерфейс nginx proxy manager заходит, если снаружи пытаюсь зайти по https на сервера в локалке, в логах nginx вижу запрос, а вот по http в логах пусто. В логе микротика есть приходящие пакеты на 80 порт в логах nginx пусто. Стоит сменить в правиле проброса порт с 80 на например 1234 и заходить снаружи как http://mydomen.duckdns.org:1234, все работает, homeassistant открывается .Что может блокировать 80 порт в микротике? Не работает проброс 80 и 8080 порта. Веб в микротике отключен. В файрволе правил нет, только маскарад и 3 порта проброшены.

Alexx-80
21.04.22 19:03:26 MSK

  • Ответить на это сообщение
  • Ссылка

Может у тебя провайдер блокирует порты? Часто так делают чтобы снаружи не торчали устройства со стандартными учетными записями

beka ★
( 21.04.22 19:19:49 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от beka 21.04.22 19:19:49 MSK

Может быть, надо в саппорт написать, провайдер DOM.RU Вот правило: chain=dstnat action=dst-nat to-addresses=10.10.10.15 to-ports=80 protocol=tcp in-interface=pppoe-out1 dst-port=80 log=yes log-prefix=»» — не работает но что то пришло в логе микрота — dstnat: in:pppoe-out1 out:(unknown 0), proto TCP (SYN), 60.255.137.44:49264->5.3.251.77:80, len 44

chain=dstnat action=dst-nat to-addresses=10.10.10.15 to-ports=80 protocol=tcp in-interface=pppoe-out1 dst-port=1234 log=yes log-prefix=»» а так работает

Alexx-80
( 21.04.22 19:33:31 MSK ) автор топика

  • Ответить на это сообщение
  • Ссылка

Так ты это, смени стандартный http порт самого микротика, или точнее, какого он вообще у тебя поднят?! winbox тоже активен!? Выруби все варианты доступа кроме ssh!

hargard ★★
( 21.04.22 19:41:12 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от hargard 21.04.22 19:41:12 MSK

0 X telnet 23
1 X ftp 21
2 X www 80
3 X ssh 22
4 X www-ssl 443 none
5 X api 8728
6 winbox 8291
7 X api-ssl 8729 none

только winbox включен

Alexx-80
( 21.04.22 19:49:36 MSK ) автор топика
Последнее исправление: Alexx-80 21.04.22 19:50:30 MSK (всего исправлений: 1)

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Alexx-80 21.04.22 19:49:36 MSK

Хоть бы поменял его с дефолтного.

ip service set www port=8080

hargard ★★
( 21.04.22 19:58:05 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от hargard 21.04.22 19:58:05 MSK

Сделал не помогло но пакеты приходят вроде dstnat: in:pppoe-out1 out:(unknown 0), proto TCP (SYN), 188.162.204.158:21986->5.5.231.86:80, len 60

Alexx-80
( 21.04.22 20:45:34 MSK ) автор топика

  • Ответить на это сообщение
  • Ссылка

Не работает проброс 80 и 8080 порта. Веб в микротике отключен. В файрволе правил нет, только маскарад и 3 порта проброшены.

/ip firewall export terse /ip route export terse 

Kolins ★★★
( 22.04.22 09:20:13 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от hargard 21.04.22 19:41:12 MSK

Так ты это, смени стандартный http порт самого микротика

DNAT раньше отрабатывает и заменяет адрес получателя

Kolins ★★★
( 22.04.22 09:21:05 MSK )

  • Ответить на это сообщение
  • Ссылка

Буквально на днях с подобной проблемой столкнулся (если правильно вопрос понял), но на TP-Link. С 80го не прокидывался ни в какую, а с любого другого — запросто. Оказалось, что внутренний сервер админки TP-Link-а хоть и не был высунут наружу, а висел только внутрь локалки, блокировал проброс 80го порта. Повесил админку на другой порт — проброс с 80го сразу заработал. Может в этом же проблема?

deys ★★★
( 22.04.22 10:08:19 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Kolins 22.04.22 09:20:13 MSK

[Alexx@MikroTik] > /ip firewall export terse

apr/22/2022 09:14:35 by RouterOS 7.2.1

software >/ip firewall filter add action=add-src-to-address-list address-list=DNS_FLOOD address-list-timeout=none-dynamic chain=input dst-port=53 in-interface=pppoe-out1 protocol=udp /ip firewall filter add action=drop chain=input dst-port=53 in-interface=pppoe-out1 protocol=udp /ip firewall nat add action=dst-nat chain=dstnat dst-port=80 in-interface=pppoe-out1 log=yes protocol=tcp to-addresses=10.10.10.15 to-ports=80 /ip firewall nat add action=dst-nat chain=dstnat dst-port=443 in-interface=pppoe-out1 protocol=tcp to-addresses=10.10.10.15 to-ports=443 /ip firewall nat add action=dst-nat chain=dstnat dst-port=81 in-interface=pppoe-out1 log=yes protocol=tcp to-addresses=10.10.10.15 to-ports=81 /ip firewall nat add action=masquerade chain=srcnat out-interface=pppoe-out1 src-address-list=»»

[Alexx@MikroTik] > /ip route export terse

apr/22/2022 09:16:24 by RouterOS 7.2.1

software Alexx-80
( 22.04.22 12:16:47 MSK ) автор топика

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от deys 22.04.22 10:08:19 MSK

Я веб сервер его на 8080 перевесил и выключил

Alexx-80
( 22.04.22 12:17:52 MSK ) автор топика

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от Alexx-80 22.04.22 12:16:47 MSK

nat выглядит норм (хотя to-ports не обязательно прописывать, если совпадают номера)

/ip firewall mangle add action=log chain=postrouting connection-nat-state=dstnat dst-port=80 log=yes protocol=tcp 

Добавь такое правило и попробуй открыть свой сайт по 80, потом в логи загляни.

P.S. и /ip firewall filter стоит настроить

Kolins ★★★
( 22.04.22 12:28:49 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Kolins 22.04.22 12:28:49 MSK

Похоже микротик тут не причем , вот лог postrouting: in:pppoe-out1 out:ether1, proto TCP (SYN), 188.162.204.158:45384->10.10.10.15:80, NAT 188.162.204.158:45384->(5.5.251.86:80->10.10.10.15:80), len 60

А что стоит настроить в /ip firewall filter

Alexx-80
( 22.04.22 13:29:51 MSK ) автор топика

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Alexx-80 22.04.22 13:29:51 MSK

А что стоит настроить в /ip firewall filter

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

/ip firewall filter add action=accept chain=input connection-state=established,related add action=accept chain=input protocol=icmp add action=accept chain=input in-interface= add action=drop chain=input disabled=yes add action=accept chain=forward connection-state=established,related add action=accept chain=forward connection-state=new in-interface= add action=accept chain=forward connection-nat-state=dstnat in-interface= add action=drop chain=forward disabled=yes 

Следующий шаг — tcpdump на сервере с nginx, если трафик приходит и в демон попадает, то уже его конфиги ковырять.

Kolins ★★★
( 22.04.22 13:42:07 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от Kolins 22.04.22 13:42:07 MSK
Alexx-80
( 22.04.22 14:49:48 MSK ) автор топика

  • Ответить на это сообщение
  • Ссылка

Ответ на: комментарий от Kolins 22.04.22 13:42:07 MSK

Спрошу здесь, картина такая — есть физический сервер с proxmox в виртуалке Микротик, все вышесказанные в 1 посте сервера тоже там, что бы проверить запустил еще один физический сервер, на нем веб сервер nginx. Пробросил на него порт 80 с микротика, захватил пакеты. Я правильно понимаю что ответ nginx не доходит до браузера и он по новой спрашивает? Как отследить где пакеты останавливаются?

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp1s0, link-type EN10MB (Ethernet), capture size 262144 bytes 11:21:49.914718 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:49.914811 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:50.723958 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:50.724026 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:51.720692 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:52.714312 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:52.714381 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:54.712696 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:21:56.741756 IP client.yota.ru.16167 > 10.10.10.19.http: Flags [S], seq 3588967513, win 65535, options [mss 1360,sackOK,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,wscale 8], length 0 11:21:56.741831 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 11:22:00.740707 IP 10.10.10.19.http > client.yota.ru.16167: Flags [S.], seq 3563537817, ack 3588967514, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 ``` 

Alexx-80
( 24.04.22 10:53:39 MSK ) автор топика

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от Alexx-80 24.04.22 10:53:39 MSK

Выяснил с помощью Packet Sniffer микротика что на локальный интерфейс eth1 приходят пакеты для 10.10.10.19 и ответы на client.yota.ru. А на интефейс pppoe-out1 пакеты только на 10.10.10.19, обратных нет. Получается микротик блокирует исходящие пакеты, как узнать?

Alexx-80
( 24.04.22 15:04:30 MSK ) автор топика

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Проброс портов на роутере Mikrotik

Рассмотрим задачу проброса портов на роутере Mikrotik. В нашем примере мы будем пробрасывать 80-й порт, чтобы открыть доступ извне к веб-интерфейсу нашего принтера.

1. Открываем IP -> Firewall -> NAT, создаем новое правило, нажав на +, во вкладке General ставим параметр Chain в режим dstnat, Protocol — в 6 (tcp), Dst. Port80:

Следует учесть, что в вашем случае протокол и порт назначения могут быть (и скорее всего будут) другими.

2. Переходим во вкладку Action, ставим параметр Action в режим dst-nat, в поле To Addresses вбиваем IP-адрес нашего принтера:

3. Теперь попробуем подключиться к принтеру по 80 порту снаружи:

Работает! Mission completed.

2 небольших комментария:
Во-первых, в нашем примере на роутере выполнена лишь базовая настройка брандмауэра, которая не блокирует ничего. Если у вас брандмауэр настроен более строго — необходимо будет донастроить его на разрешение правила порт-форвардинга (в рамках этой заметки на этом останавливаться не будем — оставим предупреждением).
Во-вторых, если вы планируете маскировать открытый порт (публикуя наружу, например, порт 6666, при соединении с которым должен будет ответить 80-й порт публикуемого сервиса/приложения/устройства), то в пункте 1 следует указать замаскированный Dst. Port, а в пункте 2 в параметре To Ports указать порт, по которому реально будет отвечать публикуемый узел.

Для начинающих:Проброс портов

Проброс портов это технология, позволяющая получать доступ к устройствам в локальной сети из-вне. Это происходит за счет правила, которое работает по условию: если пришел запрос на порт Х (входящий порт), то надо перенаправить трафик на порт Y (исходящий порт) устройства с IP-адресом Z. При этом входящий порт (X) и исходящий порт (Y) могут, как быть одинаковыми, так и различаться.

Для чего нужно?

Проброс портов используется, если надо получить доступ из-вне к терминальному или веб-серверу внутри организации, если используются пиринговые сети. Многопользовательские игры то же иногда используют эту технологию.

Настройка

Для примера мы пробросим 80 порт, он обычно нужен если вы решили разместить у себя в локальной сети веб-сервер с вашим веб-проектом.

Схема проброса порта в MikroTik

В нашем примере: внешний порт маршрутизатора (ether5-WAN1) с адресом 10.1.100.1, внутренний адрес компьютера на котором веб-сервер 192.168.15.15.

Через графический интерфейс

Для того, чтобы пробросить порты надо в меню выбрать IP => Firewall и далее вкладку «NAT». Нажать значок + для добавления нового правила. Далее необходимо выполнить следующие настройки:

  • Вкладка General:
  1. Chain: dstnat
  2. Protocol: указать протокол 6 (tcp)
  3. Dst. Port: указать порт входящего соединения.
  4. In. Interface: выбрать интерфейс входящего соединения

Важно указывать входящий интерфейс, так как в противном случае маршрутизатор может перенаправить трафик с другого интерфейса по создаваемому нами правилу и это может привести к проблемам. Если в приведенном нами примере не указать входящий интерфейс, то в случае попытки из локальной сети открыть сайт по http:// маршрутизатор перенаправит поток на внутренний сервер с адресом 192.168.15.15.
Так же обратите внимание что для других задач, нужно будет указывать другой протокол (к примеру udp) — поэтому вы должны выяснить какие порты и с какими протоколами требуют проброса для вашей задачи (приложения).

Настройка проброса порта через графический интерфейс в МикроТик, 1

Настройка проброса порта через графический интерфейс в МикроТик, 2

  • Вкладка Action:
  1. Action: dst-nat
  2. To Addresses: указать адрес на который надо выполнить проброс
  3. To Ports: указать порт на который надо выполнить проброс

Через консоль

/ip firewall nat 
add action=dst-nat chain=dstnat dst-port=80 in-interface=ether5-WAN1 protocol=tcp to-addresses=192.168.15.15 to-ports=80

Если в качестве входящего порта надо использовать порт, отличный от оригинального. Например, из-вне надо получить доступ по порту 8080, а веб-сервер при этом работает по 80-му порту, то надо соответствующим образом изменить параметр «Destination Port». Dst. Port: в графическом интерфейсе или dst-port в консоли.

Проверка

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

Полезные материалы по MikroTik

Углубленный курс "Администрирование сетевых устройств MikroTik" Онлайн-курс по MikroTik с дипломом государственного образца РФ. Много лабораторных работ с проверкой официальным тренером MikroTik. С нуля и до уровня MTCNA. 
На Telegram-канале Mikrotik сэнсей можно получить доступ к закрытой информации от официального тренера MikroTik. Подписывайтесь 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *