alibek Опубликовано 21 августа, 2019 · Жалоба Что-то не соображу, как должен быть настроен firewall, чтобы работал dstnat. В локальной сети есть устройство 10.20.0.101 с веб-интерфейсом (порт tcp/80). Нужно дать к нему доступ извне: /ip firewall nat add action=dst-nat chain=dstnat comment=WAP1 dst-port=65101 in-interface=pppoe-out1 protocol=tcp to-addresses=10.20.0.101 to-ports=80 Но при попытке доступа на http://public-ip:65101 веб-интерфейс устройства не открывается, хотя счетчик правила тикает. Добавляю правило в firewall: /ip firewall filter add action=accept chain=forward protocol=tcp Так работает, веб-интерфейс открывается. В списке соединений нахожу нужное: /ip firewall connection print Flags: E - expected, S - seen-reply, A - assured, C - confirmed, D - dying, F - fasttrack, s - srcnat, d - dstnat # PR.. SRC-ADDRESS DST-ADDRESS TCP-STATE ... 6 SAC d tcp xxx.xxx.124.80:24282 xxx.xxx.127.40:65101 established Уточняю правило (добавляю dst-port): /ip firewall filter add action=accept chain=forward dst-port=65000-65535 protocol=tcp И веб-интерфейс недоступен, счетчик правила не тикает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 21 августа, 2019 · Жалоба /ip firewall filter add action=accept chain=forward protocol=tcp connection-nat-state=dstnat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 21 августа, 2019 · Жалоба Это несущественно, с connection-nat-state=dstnat такое же поведение. Если убираю dst-port — все работает. Добавляю dst-port — работать перестает. Пробовал вместо диапазона 65000-65535 указывать одиночный порт 65101 — то же самое, с заданным портом правила веб-интерфейс снаружи недоступен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VolanD666 Опубликовано 21 августа, 2019 · Жалоба Там вроде по пакет флоу файрволл срабатывает после дст-ната. Вы это учли? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jffulcrum Опубликовано 21 августа, 2019 · Жалоба dst-port у вас при форварде уже 80 будет Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 21 августа, 2019 · Жалоба 8 минут назад, VolanD666 сказал: Вы это учли? Не знал, но сейчас попробовал добавить. Не помогло. Как только добавляю в правило dst-port=80, правило сразу перестает работать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
VolanD666 Опубликовано 21 августа, 2019 · Жалоба Адрес дст вы тоже в правиле поменяли? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 21 августа, 2019 · Жалоба Какой адрес? IP-адрес я в правиле вообще не указывал, задавал только chain, action, protocol. Когда добавляю еще и dst-post — перестает работать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Pinkbyte Опубликовано 21 августа, 2019 · Жалоба Оставьте одно правило разрешающее все DNAT-соединения и почистите таблицу соединений(да, на Mikrotik-ах это приходится делать в таких случаях в отличие от традиционного Linux-а). Не, если у вас правилами NAT рулит один человек, а файрволом другой, то я бы заморочился, а так - не плодите сущности. Ну и да, правило с разрешением всех NAT-соединений желательно поместить повыше, в район тех правил где разрешаются related и established-соединения(но после правил fasttrack) Еще учтите, что может залипнуть fasttrack и новодобавленные "хитрые"(не знаю как точно назвать) правила применятся минут так через энцать(в отличие от простых топорных allow tcp как у вас). Тут кроме ребута всей шайтан-коробки или выключения/включения fasttrack ничего не сделать - только ждать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 21 августа, 2019 · Жалоба 18 минут назад, Pinkbyte сказал: на Mikrotik-ах это приходится делать в таких случаях в отличие от традиционного Linux-а). ситуации, когда на микротике приходится чистить вручную таблицу соединений ПОЛНОСТЬЮ соответствуют аналогичному поведению "обычного линукс" соответствующей версии ядра, ибо это он самый линукс и есть , с надстройкой по администрированию. ну кроме как раз таки случаев с fasttrack - не пользуюсь, не знаю. у меня нет ситуаций , в которых он мог бы работать в принципе. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Pinkbyte Опубликовано 21 августа, 2019 · Жалоба Just now, LostSoul said: ситуации, когда на микротике приходится чистить вручную таблицу соединений ПОЛНОСТЬЮ соответствуют аналогичному поведению "обычного линукс" соответствующей версии ядра, ибо это он самый линукс и есть , с надстройкой по администрированию. Штука в том, что я помню ядро 3.3 достаточно хорошо. И там мне это приходилось делать ровно НОЛЬ раз. Вы забываете, что fasttrack накладывает свои особенности на работу стандартного линуксового conntrack. И грабли - они именно в нём. Но обычно это не критично, потому что глобальные conntrack-правила редко изменяют Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 21 августа, 2019 · Жалоба что за сценарий использования, в котором применим fasttrack ? ну кроме чисто wifi точки доступа или моста Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
McSea Опубликовано 21 августа, 2019 · Жалоба Стандартно входящий dstnat разрешается условием connection-nat-state=!dstnat в правиле drop all, т.е /ip fi fi add chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nkusnetsov Опубликовано 21 августа, 2019 (изменено) · Жалоба @alibek , если вы тестируете изнутри сети, то не сработает, т.к. in-interface изнутри сети другой, и для прохода "изнутри-внутрь" нужен nairpin nat. Если тестируете извне - важен порядок правил и не режется ли чего в forward. И не натится ли лишнего в src-nat 6 часов назад, alibek сказал: /ip firewall nat add action=dst-nat chain=dstnat comment=WAP1 dst-port=65101 in-interface=pppoe-out1 protocol=tcp to-addresses=10.20.0.101 to-ports=80 Для тестирования изнутри сети лучше использовать:/ip firewall nat add action=dst-nat chain=dstnat comment=WAP1 dst-port=65101 dst-address=<public-ip> protocol=tcp to-addresses=10.20.0.101 to-ports=80 /ip firewall nat add action=masquerade chain=srcnat comment=hairpin-nat dst-port=80 src-address=10.20.0.0/24 dst-addtress=10.20.0.101 protocol=tcp Изменено 21 августа, 2019 пользователем nkusnetsov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...