Nachdem m_ueberall im Forum schon an diversen Stellen "Werbung" für knockd gemacht hat, habe ich das auch schon eine Weile zum Öffnen/Schließen des SSH-Ports in Betrieb.
Beispiel knockd Sequenz für 1 Minute SSH-Port öffnen
[openSSH_IP-1min]
sequence = 10000,20000,30000
seq_timeout = 5
command = ufw allow from %IP% to any port 22 proto tcp
cmd_timeout = 60
stop_command = ufw delete allow from %IP% to any port 22 proto tcp
# Sequenz und Port 22 sind nur exemplarisch
Dieser Umstand rechtfertigt nun erstmal diesen extra Beitrag hier nicht.
Heute ist mir aber mal wieder ein kleiner Unfall passiert:
Aufgrund selbstverschuldeter Schusseligkeit habe ich mich versehentlich per SSH ohne korrekte Verwendung des Public Key Verfahrens (Schlüssel war im Dateisystem verschoben) mit einem Server verbinden wollen. Da der Schlüssel nicht an Ort und Stelle war, schaltete SSH kurzerhand auf Passwortauthentifizierung um - was aber gesperrt ist und sofort zu einem ban mittels fail2ban geführt hat.
Hab' ich mich also mal wieder ausgesperrt... 
Nun gut, in Zeiten von Smartphones mit Mobilfunknetz konnte ich mich, auch ohne die Konsole im SCP samt Passworteingabe, bequem am Handy mit der noch nicht gesperrten Mobilfunk-IP per SSH & Key einloggen und die dynamische IP des DSL-Anschlusses per unban wieder manuell freischalten.
Dabei ist mir das ohnehin verwendete Port knocking in den Sinn gekommen und ich habe mir einfach eine unban Sequenz angelegt (und auch getestet). 
Vielleicht ist das auch für jemand von Euch interessant:
knockd Sequenz für ein unban der aktuellen IP bei fail2ban
[fail2ban_IP-unban]
sequence = 50000,40000,30000,20000,10000
seq_timeout = 5
command = fail2ban-client set sshd unbanip %IP%
Wer sich mit fail2ban nicht bei SSH ausgesperrt hat sondern woanders, kann auch einfach die aktuelle IP bei allen Jails rausnehmen:
unban der aktuellen IP in allen fail2ban Jails
command = fail2ban-client unban %IP%
Die ganze Angelegenheit ist vor allem bei dynamischer IP eines DSL-Anschlusses sinnvoll.
Wer eine statische IP bekommt hat es natürlich mit einer Whitelist bzw. ignoreip in fail2ban einfacher.
Schöne Grüße,
Win98SE4ever
P.s:
Was auf meinem Windowsrechner, von dem aus ich mich per Bitvise-ssh-Client immer mit meinen Servern verbinde aber wohl von Haus aus nicht so einfach gehen wird. 
Angenommen ich würde Windows benutzen
dann würde ich an dieser Stelle auch aus eigener Erfahrung berichten können, dass folgende Batch-Datei problemlos funktioniert und z.B. Putty automatisch nach dem Port Knocking startet. Das ist schon ziemlich bequem, weil per Doppelklick sowohl das Portknocking als auch der Verbindungsaufbau automatisch erfolgen.
Das geht bestimmt auch mit dem Bitvise-ssh-Client:
Windows Batchskript für Port Knocking mit autom. Aufruf von Putty mit dem Server
@echo off
set IP=12.345.678.90
set PORTS=10000,20000,30000
echo Klopfe an %IP% auf Ports %PORTS%...
powershell -Command "%PORTS% | %%{ $c = New-Object System.Net.Sockets.TcpClient; $c.BeginConnect('%IP%', $_, $null, $null); Start-Sleep -m 200; $c.Close() }"
echo Sequenz gesendet.
start "" "Laufwerk:\Pfad-zu\putty.exe" -load "Mein fetter netcup Server"
exit