Jump to content
Калькуляторы

Как настроить фильтр в 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

 

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

Share this post


Link to post
Share on other sites

Если отключить правило дропа, в конце цепочки 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

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

Share this post


Link to post
Share on other sites

Если отключить правило дропа, в конце цепочки 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

Share this post


Link to post
Share on other sites

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

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

add chain=forward src-address=192.168.255.0/24

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.