Перейти к содержимому
Калькуляторы

Как настроить фильтр в RouterOS для проброса одного порта на другой?

Добрый день!

 

Я пробрасываю входящий трафик с опубликованного порта 5922 на 22 порт хоста 192.168.255.2.

 

На Cisco работает.

!
interface Dialer0
ip access-group FW_in in
!
ip nat inside source static tcp 192.168.255.2 22 interface Dialer0 5922
ip nat inside source list NAT interface Dialer0 overload
ip route 0.0.0.0 0.0.0.0 Dialer0
!
ip access-list extended FW_in
permit tcp any any eq 5922
!

 

На RouterOS не работает.

/ip firewall filter
add chain=forward dst-port=5922 in-interface=ether1 protocol=tcp

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=dst-nat chain=dstnat dst-port=5922 in-interface=ether1 \
protocol=tcp to-addresses=192.168.255.2 to-ports=22

 

Если отключить правило дропа, в конце цепочки forward, то начинает работает.

Т.е. фильтр не ловит обращение по TCP на 5922, а пропускает его дальше.

 

Если порты везде одинаковые, то всё отлично работает.

/ip firewall filter
add chain=forward dst-port=22 in-interface=ether1 protocol=tcp

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=dst-nat chain=dstnat dst-port=22 in-interface=ether1 \
protocol=tcp to-addresses=192.168.255.2 to-ports=22

 

Вопрос: Что я делаю те так? Или что-то с микротиком?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если отключить правило дропа, в конце цепочки forward, то начинает работает.

Все правила файрвола покажите.

 

/ip firewall filter
add chain=input connection-state=established,related
add chain=forward connection-state=established,related
add action=drop chain=input connection-state=invalid,new
add action=drop chain=forward connection-state=invalid

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=netmap chain=dstnat dst-port=5922 in-interface=ether1 protocol=tcp to-addresses=192.168.255.2 to-ports=22

Работает без проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если отключить правило дропа, в конце цепочки forward, то начинает работает.

Все правила файрвола покажите.

 

/ip firewall filter
add chain=input connection-state=established,related
add chain=forward connection-state=established,related
add action=drop chain=input connection-state=invalid,new
add action=drop chain=forward connection-state=invalid

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=netmap chain=dstnat dst-port=5922 in-interface=ether1 protocol=tcp to-addresses=192.168.255.2 to-ports=22

Работает без проблем.

 

Конечно работает, ведь вы дропаете только соединения со статусом invalid, а всё остальное пропускаете.

Я же говорю про случай, когда всё запрещено, к проходению в сеть. Что вам даст если я покажу "Все правила файрвола"? Всё - это очень много. Для проблемы существенны именно те, которые я показал.

 

Для примера. Вот так не работает.

/ip firewall filter
...
add action=fasttrack-connection chain=forward connection-state=established,related
add chain=forward connection-state=established,related
add chain=forward src-address=192.168.255.0/24
add chain=forward dst-port=5922 in-interface=ether1 protocol=tcp
add action=drop chain=forward connection-state=invalid
add action=drop chain=forward in-interface=ether1

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=dst-nat chain=dstnat dst-port=5922 in-interface=ether1 protocol=tcp to-addresses=192.168.255.2 to-ports=22

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а всё остальное пропускаете.

А что за forward может быть "остальным" при NAT? Приведенными правилами запрещен весь входящий трафик, который не подпадает под разрешенные в правилах трансляции и файрвола соединения.

add chain=forward src-address=192.168.255.0/24

Смысл этого правила в рамках проблемы? Или это метод научного тыка? Вот из-за подобных вывертов и было предложено показать все правила. Логику обработки трафика в МТ уже почитайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Под "остальным" я понимаю другие пакеты, не только со статусом инвалид. Для чего их пропускать на НАТ? Пусть фильтр делает то для чего он нужен - фильтрует.

2. В том-то и дело, что в рамках проблемы и так всё было в достаточном количестве указано. add chain=forward src-address=192.168.255.0/24 только для вас написал.

3. Для чего разводить палемику если вы решения проблемы не знаете?

 

Проблема решена.

DST-NAT отрабатывает ещё в PREROUTING => когда пакет достигает фильтра порт в нём уже изменён.

В моём случае 5922 уже изменён на 22.

http://wiki.mikrotik.com/wiki/Manual:Packet_Flow_v6

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.