Hi, I dont understand ...
If I change port of ssh, the request made on port 22 (that is locked by the firewall) are refused by the same firewall and the attacker cannot test password as they dont have access to the service.
Instead if you use the port 22, the attackers can test password and then (after some try) is blocked by fail2ban. But until the lock they have tested some password... while with ssh on another port they dont.
And while you lock an ip with failtoban, attackers have many other ip to use
So seems to me that you permit however the attacker to test (some) password and then you block them
With ssh on another port there is no pasword testing and the attacker is locked from the firewall
And among those million rows of warnings on the log/secure file how can you be able, in a simple way, to check if something other happens?
More if there are million ip checked by failtoban, I think you have huge use of disk, cpu and memory with possible high server load, resources that are wasted and that instead could be used for the legitimate server tasks
Or am I missing something?