VPS Server absichern?

Hey,

wie habt ihr eure Server abgesichert?

und wie überprüft ihr das?

Was ich schon gemacht habe, ssh kein root und anderer Port und nur Key.

Firewall nur ssh Port und Wireguard offen.

Gruß

Bruno

Moin Bruno,

Das ist doch schon mal eine gute Basis :slight_smile:
Obwohl das mit dem anderen SSH-Port so eine Sache ist, der wird von den ganzen Bots, die rumrennen, trotzdem gefunden (gerade in der heutigen Zeit mit KI). Das ist aber auch nicht schlimm. Hab da noch nie Probleme mit gehabt…

Ich habe bspw. noch fail2ban am Laufen auf meinen Servern(hab da gar nicht so viele, die im Internet stehen). Einfach mal danach googeln…

(Je nachdem, welches Linux du verwendest,)
Man kann noch ziemlich an der SSH-Konfiguration drehen, was Algorithmen an allen möglichen Stellen angeht. Da war ich seit kurzem mal dran und hab da so einiges angeschaut…
Weil ich irgendwie (leider jetzt erst) doch vom „klassichen“ Netzwerker auch in Richtung Cyber-Security reingerutscht bin (so halb). Das gehört zwar schon immer so ganz dicht nebeneinander, aber jetzt mit KI geht das ja richtig los…

mal ne Frage zu fail2ban, ich hab da unter Port meinen Port eingetragen 3456, danach wurde ich aber komplett rausgeschmissen und bin nur noch über die Konsole reingekommen.

holt er sich den port über die Config oder läuft es doch alles über das auth files?

Was bitte? :sweat_smile:
So genau kenne ich mich mit fail2ban tatsächlich nicht aus, weil ich noch nie den SSH-Port irgendwo geändert habe… Aber das sollte in deren Doku stehen, wie das geht…

Ich verwende zudem (neben dem Key) noch 2FA (TOTP) zum Login per ssh.

FLASHBACK! Ich hab mich damit abgemüht, um zu verstehen, wie ich denn einem OpenSSH füttere, dass er bitte beides prüfen soll, aber nicht auf Passwort zurückfallen soll… :sweat_smile:


Aber im Ernst, man kann es auch irgendwo übertreiben, weil bis jemand deinen Private-Key hat (der das Gerät nie verlassen sollte und der verschlüsselt sein sollte), dauert es schon etwas oder?

da gehen die Wege tatsächlich ziemlich weit auseinander – am Ende hängt es immer davon ab, was genau auf dem Server läuft und wen das interessieren könnte. Bei einem „normalen“ VPS ist das Risiko ja oft schon überschaubar.

Zu deinem Setup:

A)
SSH ohne Root, anderer Port und nur Key ist schon sehr solide. Wenn du zusätzlich noch fail2ban laufen lässt, bist du für die meisten Angriffe eigentlich schon gut aufgestellt.

B)
Du kannst das Ganze auch noch „härter“ machen und SSH komplett dicht lassen und stattdessen nur über WireGuard draufgehen. Dann ist dein Server von außen im Prinzip gar nicht erreichbar – außer du bist im VPN.
Trotzdem würde ich auch dann weiterhin SSH mit Key nutzen.

Ist halt die Frage: Wie hardcore willst du es? :grinning_face_with_smiling_eyes:
Überleg dir einfach: Was wäre im schlimmsten Fall? Und: Kommst du im Notfall noch irgendwie drauf?
Also z. B. ob dein Hoster dir eine VNC/Console bietet, falls WireGuard mal zickt.

Viele Wege führen nach Rom – aber so wie du es aktuell gemacht hast, bist du aus meiner Sicht schon auf einem sehr guten Sicherheitsniveau.

Mit 2FA für SSH habe ich selbst übrigens noch keine praktische Erfahrung gesammelt.

LG

Dann hast du sehr wahrscheinlich die Anpassungen der /etc/pam.d/sshd übersehen.

[...]
# Standard Un*x authentication.
#@include common-auth
[...]
# Google Authenticator
auth required pam_google_authenticator.so

Doch, das hatte ich drin… Das lag an irgendwelchen Parametern in der sshd_config… Weil es gibt ja

KbdInteractiveAuthentication (wo auch 2FA-Eingabe drunter fällt)
Password
PublicKey

Und irgendwas hatte ich da verdreht… Ich muss das nochmal machen und dann genau nachlesen

Auch @include common-auth auskommentiert. Das hatte ich mal vergessen und dann passiert genau das was du beschrieben hast. Fallback auf Passwort.

ich hab mal fail2ban nachinstalliert.

Da ich bei hetzner bin hab ich grundsätzlich die VNC zur Verfügung :wink:

Ansonsten dient der VPS nur für wireguard um ipv4 und ipv6 erreichbar zu sein, sonst da nix drauf… Wobei wenn einer ins System kommt, kann er ja weiter ins heimische Netzwerk.

Welche Tools nutzt ihr zum checken eurer Absicherung? Port Scan? oder sonst noch etwas?

Fail2ban hab ich ausprobiert, wurde dann geblockt

netstat -tulpen
(No info could be read for „-p“: geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 992 5879 -
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 0 6420 -
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 992 5877 -
tcp6 0 0 :::2222 :::* LISTEN 0 6422 -
udp 0 0 0.0.0.0:51820 0.0.0.0:* 0 6056 -
udp 0 0 127.0.0.54:53 0.0.0.0:* 992 5878 -
udp 0 0 127.0.0.53:53 0.0.0.0:* 992 5876 -
udp 0 0 XX.XXX.XXX.149:68 0.0.0.0:* 998 6358 -
udp6 0 0 :::51820 :::* 0 6057 -

mmhh was hat es mit Port 68 auf sich?

22/tcp closed ssh reset ttl 63
2222/tcp open ssh

und 22 Hatte ich geändert, warum taucht beim Portscan kein Wireguard auf?

Weil:

  1. UDP/68 ist DHCP client
  2. Wireguard antwortet auf keine Portscans

mmh den dhcp kann ich doch deaktivieren, gibt ja eigentlich nix…

kann man ssh auch so einstellen, das auf port scan nicht reagiert wird?

Soweit ich weiß nicht, weil der muss ja auf Anfragen auf dem gewählten Port antworten zwecks Verbindungsaufbau…
Aber das wirst du auch nicht verhindern können, dass die Leute mitkriegen, dass der SSH-Port offen ist.

was ist eigentlich mit sowas: Single Packet Authorization? Hat das jemand?

Hab ich noch nie von gehört und man muss es auch nicht übertreiben… Man muss immer auch schauen, was hat man davon wirklich