Einrichten und absichern eines VServers

JPXr-eP9

Cadet 4th Year
Registriert
Okt. 2013
Beiträge
97
Hallo,

ich möchte meine Websites von einem regulären Webhoster auf einen Webserver migrieren. Außerdem würde ich gerne weitere Software darauf installieren, wie NextCloud etc., mehr Kontrolle haben und einfach neue Dinge lernen.

Ich bin Softwareentwickler und nutze Linux seit mehreren Jahren, daher kann ich bereits die Shell benutzen und Software installieren. Allerdings habe ich mit der Administration von Servern sehr wenig Erfahrung. Sicherheit ist mein größtes Anliegen.

Ich habe bereits einen VServer gemietet, Debian installiert und kann über SSH und SFTP darauf zugreifen. Was ich jetzt brauche, ist ein gutes Tutorial zum Einrichten und Sichern des Servers.

Wäre Docker hier die richtige Herangehensweise?

Danke!
 
Was ich immer gleiche mache ist Fail2Ban Jails einrichten. Gerade wo SSH/SFTP draufläuft oder dovecot und andere Services. Dazu vielleicht noch SSH-Logins auf Public/Private-Keys umstellen, aber da hat jeder andere Vorlieben für die Authentifizierung.
 
Könnte ich einfach je einen Dockercontainer für jede meiner Applikationen (Nextcloud etc.) aufsetzen? Wäre es nicht einfacher, ein voreingestelltes Image zu nehmen?
 
Zuletzt bearbeitet:
Docker hat nichts mit der Sicherheit deines Server zu tun.
Wenn jemand per Bruteforce SSH-Logins versucht und das Passwort knackt ist es egal was in Docker läuft.

Fail2Ban war schon der richtige Hinweis, generell einmal alle Ports checken und sperren was du nicht benutzt.
Per Firewall alles Blacklisten und dann nur die Ports öffnen die du auch wirklich brauchst.

Ich ändere gerne die Standard-Ports von SSH/(S)FTP. Schützt mich nicht vor richtigen "Hackern", aber die ganzen China-Bots die Logins durchtesten laufen dann schon direkt vor eine Wand (statt erst nach X Logins durch Fail2Ban).

Login mit Keys (oder 2FA per TOTP) sind auf jeden Fall sinnvoll, root-Login per SSH sollte man genauso verbieten.
Zusätzlich Login-Monitoring und Notifications, wenn jemand doch durch kommt willst du bescheid wissen.
Ein Telegram-Bot sendet mir z.B. die IP von jedem erfolgreichem Login.

Die Dienste die du per Docker dann nutzt sitzen in der Regel hinter einem reverse Proxy (Nginx/Traefik/Caddy), der sorgt dafür das der Docker Container von außen erreichbar ist und macht HTTPS mit Certbot was einfacher.
Docker hilft bei der Sicherheit nur in dem Kontext das die Container nur begrenzten Zugriff aufs System haben. Gibt es eine Lücke in z.B. Nextcloud dann kann nur beschränkt aufs Host-System zugegriffen werden (je nachdem welche Rechte der Container eben hat).

Web Server wie Nginx und Apache kann man auch noch etwas abhärten, oft sind das aber eher Kleinigkeiten wie alle . Dateien/Ordner auch wirklich verstecken (passiert erschreckend oft nicht) oder die Versions-Nummern in Headern verstecken.
h5bp hat da eine nette Config die die Basics bietet, gibt aber weitere Tools die dir solche Config erstellen.

Und natürlich Updates nicht vergessen, unattended upgrades ist da ein gutes Stichwort.
 
Besser als auf Fail2Ban bei ssh zu setzen ist password auth zu deaktivieren. Dann braucht es auch kein fail2ban. PW Auth ohne 2. Faktor ist ein riesen Problem und es gibt keinen Grund darauf zu setzen. Sudo dann bitte auf keinen Fall mit NOPASSWD: konfigurieren.
 
Zurück
Oben