Wtw -
[admin@MikroTik] ip firewall filter> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=forward in-interface=public action=jump jump-target=customer
1 ;;; Drop invalid connection packets
chain=customer connection-state=invalid action=drop
2 ;;; Allow established connections
chain=customer connection-state=established action=accept
3 ;;; Allow related connections
chain=customer connection-state=related action=accept
4 ;;; Log dropped connections
chain=customer action=log log-prefix="customer_drop"
5 ;;; Drop and log everything else
chain=customer action=drop
6 chain=input protocol=tcp src-port=22 action=accept
[admin@MikroTik] ip firewall nat> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat out-interface=public action=masquerade
1 X chain=dstnat in-interface=private protocol=tcp dst-port=80 action=redirect
to-ports=8080
2 chain=dstnat dst-address=xxx.xxx.xxx.xxx protocol=tcp dst-port=22
action=dst-nat to-addresses=192.168.0.100 to-ports=22
3 chain=dstnat dst-address=xxx.xxx.xxx.xxx protocol=tcp dst-port=3389
src-address-list="" dst-address-list="" action=dst-nat
to-addresses=192.168.0.50 to-ports=3389
Filter Rule #6 - should be deleted. Besides you have this rule after all of your other rules so it is dropped and logged before it even gets to it...
NAT Rule #3 - "src-address-list="" dst-address-list="" " are you using src and dst addresses here? If not then get rid of these parameters...they'll just cause problems otherwise.
In the above set of rules I do not see an allocation for a 'new' connection. You have related, established, and invalid - where is new?
You are ONLY filtering requests coming from the outside - "in-interface=public", was this your intention?
I also don't know how you 'allow' connections to your servers, one of the security features I use among others is IP addresses...if you use this feature then you will also have to match the masqureaded IP from the MT and add it to your list of 'allowed' IP addresses for your servers...because you have ALL requests for external IP addresses masqueraded "0 chain=srcnat out-interface=public action=masquerade ". When connecting using an inside IP address you'll have to do the same on the server - the MT isn't involved - it's a direct connection from client to server but the IP address of your client will need to be in the 'allow' list on the server....
Thom