Hallo zusammen,
gibt es dazu Erfahrungen? Scheint ja eine recht gute Möglichkeit zu sein den SSH zu verstecken
SW
Hallo zusammen,
gibt es dazu Erfahrungen? Scheint ja eine recht gute Möglichkeit zu sein den SSH zu verstecken
SW
Ich nutze knock schon eine ganze Weile (für Verbindungen außerhalb des eigenen VPN) und bin sehr zufrieden damit, man kann sich fail2ban und/oder willkürliche Nichtstandardportauswahlen für die entsprechenden Dienste sparen. Wie bei allen Schlüsselsequenzen sollte man ggf. eine regelmäßige Änderung vorsehen.
Und wie nutze ich das dann per ssh-Client?
Und wie nutze ich das dann per ssh-Client?
Zeitnah vor der Ausführung von ssh […] [remoteuser:]remotehost […] ist einfach jeweils knock remotehost […] aufzurufen ([…]-Vorgaben lassen sich in den jeweiligen Konfigurationsdateien hinterlegen, also /etc/ssh/ssh_config bzw. ~/.ssh/config und /etc/knockd.conf).
Leider ist es meines Wissens bislang nicht direkt möglich, einen hook für ssh zu definieren, welcher automatisch für den Aufruf sorgt, wenn bestimmte Hosts kontaktiert werden. Man kann sich aber ein ssh-Wrapper-Skript erstellen, welches mittels PATH-Initialisierung oder /etc/alternatives/ssh aufgerufen wird und dies leistet.
Tipp: Insbesondere, wenn man UDP-(Teil-)Sequenzen zur Portöffnung für die anklopfende IP-Adresse verwendet und/oder das Timeout etwas knapp gewählt ist, kann natürlich auch einmal ein Paket verloren gehen, wodurch die Sequenz nicht erkannt wird; hier schadet wiederholtes Anklopfen nicht.
Zeitnah vor der Ausführung von ssh […] [remoteuser:]remotehost […] ist einfach jeweils knock remotehost […] aufzurufen
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. ![]()
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.
Laut Anleitung können BvSsh alle erforderlichen Parameter übergeben werden, um (direkt) einen bestimmten Host zu kontaktieren. Erstellt man eine Verknüpfung zu einem host-spezifischen Batch-Script, kann in die Zeile davor einfach der erforderliche knock-Aufruf. Eine Host-Auswahl per Menü ist auf diese Weise allerdings eher schwierig. (Aber es gilt ja „no pain, no gain“
)
Laut Anleitung können BvSsh alle erforderlichen Parameter übergeben werden, um (direkt) einen bestimmten Host zu kontaktieren. Erstellt man eine Verknüpfung zu einem host-spezifischen Batch-Script, kann in die Zeile davor einfach der erforderliche knock-Aufruf. Eine Host-Auswahl per Menü ist auf diese Weise allerdings eher schwierig. (Aber es gilt ja „no pain, no gain“
)
Na das mit dem Skript und dass es keine Menüauswahl gibt hatte ich auch nicht als Hürde angesehen
, sondern dass ich ja erstmal irgendwie ein "knock" auch auf Windows ausführen kann.
Na das mit dem Skript und dass es keine Menüauswahl gibt hatte ich auch nicht als Hürde angesehen
, sondern dass ich ja erstmal irgendwie ein "knock" auch auf Windows ausführen kann.
Im WSL sollte eigentlich auch das funktionieren (wenn man kein Windows-Pendant verwendet), da iptables die Windows-Firewall ansteuern kann.
Vielleicht testet das ja mal jemand und gibt hier Rückmeldung? Das von Ganzjahresgriller empfohlene Windows-Programm ist aber wohl der einfachere Weg.
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.
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:
Wer sich mit fail2ban nicht bei SSH ausgesperrt hat sondern woanders, kann auch einfach die aktuelle IP bei allen Jails rausnehmen:
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:
@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
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
Code@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
Ah. Nice.
Danke.![]()
Ich hab das Thema das ich von verschiedenen Lokationen aus nur Standard Ports nutzen kann. Ich habe meine Server bislang so abgesichert und komme damit ganz gut zurecht
Hm. Ist das mit der NC Firewall und VPNs denn wirklich noch nötig? Der sicherste SSH Port ist der, der gar nicht von außen sichtbar ist. Nichtmal für 1 Minute.
Der sicherste SSH Port ist der, der gar nicht von außen sichtbar ist. Nichtmal für 1 Minute.
Sehe ich ganz genauso. Beste Lösung wäre per Jumphost und/oder VPN.
Sehe ich ganz genauso. Beste Lösung wäre per Jumphost und/oder VPN.
Habe ich bei meinem Mailserver so gelöst. In der Firewall Port 22 alles geblockt, außer dem /64 Subnetz zuhause und den Jumphost IPs. Von zuhause aus merke ich keinen Unterschied zu vorher, weil sowieso IPv6 verwendet wird und mit der kann ich mich verbinden. Und von anderswo gehe ich dann über einen Jumphost auf den Server. Freilich verschiebt das das Problem auch nur auf den Jumphost, der dann eben sicher sein muss. Ist aber jedenfalls schön ruhig in fail2ban.
Ist aber jedenfalls schön ruhig in fail2ban.
Ich habe kein f2b, da für SSH nicht nötig (nur Zugang über Tailscale). Und meine öffentlichen Webinterfaces werden über meine https://www.bunkerweb.io/ WAF abgesichert.