- multiple protocols: this makes no real sense, and netfilter doesn't support it anyway+1 for the ability to use multiple protocols & ports in one filter rule.
Yes, but if you have multiple rules using the same port range/list, currently you have to manually edit each rule (or run some cli magic to do it) if you want to change 1 port for example.- multiple ports: this is already possible, only you need to specify it inside the rule, not as a separate "port list".
Its not so uncommon that applications uses both, udp- and tcp-ports and also icmp is used in quite strange places.- multiple protocols: this makes no real sense, and netfilter doesn't support it anyway
Yes I know, and therefore that protocol mixing is more important new feature for me personally, but I can also see clear benefits of doing some kind of "service objects" (all ports needed by application/service X) and use them in multiple rules.-multiple ports: this is already possible, only you need to specify it inside the rule, not as a separate "port list".
Netfilter (the mechanism below what you see in Firewall) cannot do that!Its not so uncommon that applications needs both, udp- and tcp-ports and also icmp is used in quite strange places.- multiple protocols: this makes no real sense, and netfilter doesn't support it anyway
And if you want to do strict rule for encrypted EoIP-tunnel, you need 3 rules at minimum:
-one for IKE/ISAKMP (udp/500 & udp/4500 for NAT-T if needed)
-one for ESP (ip/50)
-one for GRE (ip/47)
For me it makes a lot sense to do this with one rule.
I understand that. If the port list in Netfilter works that way, then I agree with you, no real use for that. Does not change the fact that it would be useful feature in many situations and done by many other vendors. Just one more evidence that RouterOS is more router than firewall.Netfilter (the mechanism below what you see in Firewall) cannot do that!Its not so uncommon that applications needs both, udp- and tcp-ports and also icmp is used in quite strange places.- multiple protocols: this makes no real sense, and netfilter doesn't support it anyway
And if you want to do strict rule for encrypted EoIP-tunnel, you need 3 rules at minimum:
-one for IKE/ISAKMP (udp/500 & udp/4500 for NAT-T if needed)
-one for ESP (ip/50)
-one for GRE (ip/47)
For me it makes a lot sense to do this with one rule.
There is a part "ipset", also mentioned above, that can store a portlist, actually just a bitmap corresponding to port 0..65535
for use in filters with protocol TCP or UDP. Not a list of protocol/port combinations, or even protocols without ports.
There would be some use of a portlist when there really are a lot of applications that require both TCP and UDP portlists
with the same portnumbers, but I think these generally are the result of laziness or misinformation. One of the few applications
that require this is DNS. And it uses only a single port, hardly worth it to store it in a set.
To implement what you suggest above, RouterOS would have to make a 1:many mapping of "high-level rules" in the UI
and real netfilter rules. I think it now never does that, and I am not sure it is a good idea to introduce that. Maybe some
shortcut in the UI that auto-inserts some predefined rulesets like the above, but that would then be further maintained
as separate rules just as it is now.
There is a lot of places where you have router doing just routing and firewall doing just filtering and optionally NAT:ting (of course with default route pointing to that router). Internet is of course one example, but also internal networks in many big companies.router IS firewall and vice versa.
and decent router - insecure and useless/dangerous w/o decent firewall and decent firewall ~ useless w/o routing.
nowwhere you can legally anymore in last 10 years atleast ever in backbone completely separate firewalls and routers from each others. and generally you wouldn't want if you feel okay.There is a lot of places where you have router doing just routing and firewall doing just filtering and optionally NAT:ting (of course with default route pointing to that router). Internet is of course one example, but also internal networks in many big companies.router IS firewall and vice versa.
and decent router - insecure and useless/dangerous w/o decent firewall and decent firewall ~ useless w/o routing.
Anyhow, I was just trying to say that I have seen more intuitive UI:s for firewall management than in RouterOS. And ability to group things like ports & protocols is one of the key elements.
Yes, I can, but the regulator requires to block concrete address and port.you can just block all access to that address
with such requirements - border usage of somethng like CCR was relevant and they had more than adequate horserower to do it.When you want to abide to what your regulator asks and want to gain performance in your router, you can
make a 2-step block: in the forward rule put a match on address list that does a jump to a new chain "blockedproxies"
where you put all the addresses with portnumber(s) and a block on each of them, and end that chain with a return.
Of course to make this practical you need to make a script for add/remove ip:port which puts the IP in the
address list and the ip:port in the blockedproxies chain at the same time. (and similar for remove)
This way your router does not have to validate 12k rules for every new connection (I presume you have accept established/related
at the top anyway).
Remember, IF MikroTik would implement this request, their only option is to do it in a similar way, maybe without
the user seeing what is exactly happening. (as they do in other parts of the router as well)
/ip firewall filter
add action=accept chain=dns dst-port=53 protocol=udp
add action=accept chain=dns dst-port=53 protocol=tcp
add action=return chain=dns
/ip firewall filter
add action=jump jump-target=dns ....
There is no "feature request queue".is this still in the feature request queue ?
Implementation using currently available features and reason why this would not bring much was already given above.+1 by me!
If you refer to the "jump" method, it is your point of view, not the equivalent solution.Implementation using currently available features and reason why this would not bring much was already given above.+1 by me!
The reason I thought to request this feature two years ago was because I already am making great use of "jump" rules to make the CPU usage lower while having a complex mangle ruleset. My rules deal with tunneling certain types of traffic to a network inside the tunnel and other types of traffic to that same network outside the tunnel. I do not wish to add more jump rules when a port list would let me remove rules.If you refer to the "jump" method, it is your point of view, not the equivalent solution.Implementation using currently available features and reason why this would not bring much was already given above.+1 by me!
In example, I prefer to have all in order with lists.
I don't think I currently need to reuse a Port List several times in the same config but I would sure appreciate to be able to edit a long port list (40 items as I need to forbid some P2P ports).I agree. In order not to view al the open ports just in one place, would be very useful. I am opening ports now that I might change in the future, it would be useful to havd them all listed together.
Agreed... finally "nice to have" enhancements. My guess is that this one falls into the latter category.
It should beWhen you consider that a useful feature and cannot remember port numbers for services you can add custom chains like this:
Then wherever you like to "allow dns" (in input, forward, and with any other specifier you like, you can do:Code: Select all/ip firewall filter add action=accept chain=dns dst-port=53 protocol=udp add action=accept chain=dns dst-port=53 protocol=tcp add action=return chain=dns
This will implement the "recognize services in the firewall" feature, in this case for the "dns" service but it can be done for any service.Code: Select all/ip firewall filter add action=jump jump-target=dns ....
This is much more flexible than "port list". You can make a library of services (like the first paragraph) and load those in all your routers.
/ip firewall filter
add action=accept chain=dns dst-port=53 protocol=tcp,udp (no need a second row for the same)
add action=return chain=dns