Also um es zu verdeutlichen/zusammen zu fassen:
Ja man könnte einen ssh clienten Bauen, der den "anderen" Port fest wählt. Oder es an einen vorhandenen SSH per Proxy/firewall dran bauen. Es sollte aber auch klar sein, dass dann nur noch eine SSH-Verbindung aufgemacht werden kann. Deswegen macht das keiner.
Ansonsten:
1. Du kannst nicht nach User filtern, weil SSH ein verschlüsseltes Protokoll ist und entsprechend nur den SSH-Server mit
seinem Schlüssel entschlüsseln kann. Mit einer DPI Firewall könntest du den Clients gefälschte Schlüssel unterschieben. ssh würde davor mit dieser Warnung waren.
Code: Alles auswählen
The authenticity of host 'example.com (42.42.24.24)' can't be established.
ECDSA key fingerprint is SHA256:ASDF123YGHH0976434DFFFF.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Die willst du selbstverständlich nicht ignorieren, weil dann auch jeder andere Server mitlesen könnte. (Das ist ein bisschen anders wenn du keine Passwörter sondern Keys nutzt. Da hat SSH alternative Sicherheitsmethoden und du kannst das ignorieren, wenn du deine öffentlichen Schlüssel geheim hältst.)
2. Es gibt keine offiziellen Länderlisten. Nur Sammlungen von Werbenetzwerken und whois Daten. (Z.B in form von
geoip-database.) Ich hatte mal einen Provider der Privatsphäre ernst genommen hat und die Standorte seiner Nutzer nicht verkauft hat und wurde dann konsequent als russisch eingestuft. Insbesondere nervig bei Google-Diensten... Das dürfte allerdings die absolute Ausnahme sein. Was es gibt sind Zuweisungen nach Kontinent. – Leider sind die noch öfter falsch, weil viele gerade viele Europäer und Asiaten Afrikanern und seltener Amerikanern IPs abkaufen, weil es abseits von Afrika keine neuen IPv4s mehr gibt und viele Amerikaner auf nem riesen Haufen sitzen, den sie nicht nutzen. So liegen die IPv4-Adressen von amazon.de z.B. in Afrika und debianforum.de in Nordamerika.
3. Eigentlich gibt es keinen Grund für das Blocken, wenn man eh keine Passwörter zulässt bzw. stark genug hat, dass die durch ausprobieren nicht erratbar sind. Wenn einen die logs stören, schaltet man die ab. Die Ressourcen, die die meisten dynamischen lösungen brauchen sind größer als das, was sie sparen.
? Das ist die Liste ALLER öffentlichen IP Adressen nach RIR. Du kannst damit weder Ports blockieren noch sinnvoll filtern, weil ja alle keine Einschränkung sind.