Не работает проброс портов

Тема в разделе "Вопросы начинающих", создана пользователем zxw, 4 июл 2020.

  1. zxw

    zxw Новый участник

    Добрый день! Прошу помощи с проблемой, борюсь уже пару дней.
    Есть Mikrotik hap (rb951ui-2nd) с RouterOS 6.47.
    Ether1 - wan, смотрит к провайдеру, там статический белый IP.
    К Ether5 подключен видеорегистратор RVI с рабочими портами 8080,554,37777 и 37778. Регистратор доступен в локальной сети через браузер по 192.168.1.108:8080

    Собственно, задача:
    Реализовать доступ из интернета к регистратору (не столько важен веб-интерфейс, сколько остальные порты, но проверять удобнее всего именно его).
    Проблема: не получается :) При обращении из интернета по адресу внешнийip:8080 ответ не приходит, но счётчик пакетов NAT и Filter rules на микротике растёт, да и в логах появляется запись о срабатывании нат правила:

    Код:
    Time    Jul/04/2020 13:19:21
    Buffer    memory
    Topics firewall info
    Message    dvr dstnat: in:ether1 out:(unknown 0), src-mac 00:04:96:::**, proto TCP (SYN), мойip:9576->внешнийip:8080, len 52

    Подскажите пожалуйста, в чём проблема может быть? Сам прочитал кучу веток и не допёр. Все правила с дропами отключал, это не помогало.

    Правила вот:

    Код:
    /ip firewall filter
    add action=accept chain=forward dst-address=192.168.1.0/24 dst-port=8080 protocol=tcp
    add action=drop chain=forward comment="drop from guest network to private" dst-address=192.168.1.0/24 src-address=192.168.89.0/24
    add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
    add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
    add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
    add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
    add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
    add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
    add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
    add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
    add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
    add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
    /ip firewall nat
    add action=dst-nat chain=dstnat dst-address=внешнийip dst-port=8080,554,37777,37778 in-interface=all-ethernet log=yes log-prefix=dvr protocol=tcp to-addresses=192.168.1.108
    add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
     
  2. Tycoon

    Tycoon Участник

    За проброс у вас отвечает вот эта настройка и она не совсем правильная:
    Надо так:
    /ip firewall nat
    add action=dst-nat chain=dstnat dst-port=49001 in-interface-list=WANList protocol=tcp to-addresses=192.168.1.108 to-ports=8080
    add action=dst-nat chain=dstnat dst-port=49002 in-interface-list=WANList protocol=tcp to-addresses=192.168.1.108 to-ports=554
    add action=dst-nat chain=dstnat dst-port=49003 in-interface-list=WANList protocol=tcp to-addresses=192.168.1.108 to-ports=37777
    add action=dst-nat chain=dstnat dst-port=49004 in-interface-list=WANList protocol=tcp to-addresses=192.168.1.108 to-ports=37778

    т.е. при обращении из интернета на вашь белый ip на порт 49001 вы будете переадрисовыватся на внутренний ip 192.168.1.108 на 8080 порт. Если портов у вас несколько, то для каждого порта отдельное правило. Так если вдруд у вас будет несколько устройст, которые надо пробросить и у обоих на внутренний 8080 порт, то лучше делать как в моём примере, т.е. например внешний порт 49001 с перенапривлением на внутренний ip и порт 8080
     
  3. Tycoon

    Tycoon Участник

    В фаерволе первое правило вам дополнительно не нужно, потому что у вас уже есть правило в которое входит нужное вам условие: "drop all from WAN not DSTNATed", это правило блокирующее проходящий трафик за исключением пробросов (!dstnat)