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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this