Moin Moin ,
ich spiele mit dem Gedanken einen vServer hochzuziehen, würde aber gerne vorher gerne euer Feedback dazu einholen. Also ob ich etwas wichtiges vergessen habe, etwas anders machen sollte oder vllt. auch um zu sagen Bursche lass die Finger davon -> geh weiter üben - ich möchte nicht einfach sorglos einen Server ins public internet hängen, da mir bewusst ist was das für ein Risiko ist, daher habe ich auch die letzten Wochen in meiner Freizeit viel mit VMs auf meiner lokalen Maschine gearbeitet und experimentiert.
Mein eigener Hintergrund ist deutlich IT lastig - Entwickler, welcher Feuer und Flamme für alles was mit Technik zu tun hat, ist.
Hier kurz das Zielbild was ich zu Anfang erreichen möchte -> eigener gehärteter Server mit eingerichteter Nextcloud.
In Zukunft kommen noch Wekan(OS Kanban) und Bitwarden hinzu, vllt. dann auch meine eigene App wenn ich damit mal fertig werde xD
Was habe ich vor bzw. was nutze ich:
- OS = Ubuntu 20.04
- DNS Einstellung meiner Netcup-Domain so vornehmen das Server darüber erriechbar ist (* & @) -> der @ mx record bleibt auf die netcup sogo groupware gerichtet
- Root PW ändern
- Hostname anpassen
- SSH einrichten
- Nur SSH Keys erlauben (ed25519 key)
- root verbieten und eigenen User dafür anlegen
- Port verlegen
- SFTP durch SSH bleibt erst einmal on, läuft über openssh und daher auch nur mit key - sollte ich später einen einfachen User mit PW brauchen chroote ich den User auf das eigene Verzeichnis und verbiete shell zugang.
- ufw einrichten
- alles per default = deny
- nur das freigeben was wirklich gebraucht wird (ssh und https)
- fail2ban
- installieren und einrichten
- jails für ssh, apache, php-fopen und nextcloud(selbst erstelltes jail + filter -> (https://www.ksite.de/nextcloud-mit-fail2ban-absichern/))
- Apache und SSL
- SSL-Certs über lets encrypt mit acme.sh & Netcup-dns option so das automatisch die beötigten Certs generiert werden. API Key und PW sind bereits da.CronJob für regelmäßiges updaten der certs
- Apache SSL aktivieren
- vhost dateien anpassen *:443 - SSLEngine on und Certs hinterlegen
- ports.conf anpassen und nur auf https listen
- Nextcloud installation
- Installation nach nextcloud handbuch (https://docs.nextcloud.com/ser…/source_installation.html)
- abschließende nextcloudhärtung wie im handbuch beschrieben (https://docs.nextcloud.com/ser…lation/harden_server.html)
- Server/app up2date halten und logs regelmäßig prüfen
Für später habe ich noch folgende Themens ins Auge gefasst:
- systemweites Sandboxing
- Kernelhärtung
- auto. Updates
- sobald das setup einen V1 Status erreicht hat das ganze in ansibel zu gießen damit bei einer neuaufsetzung keine Fehler passieren können bzw. Schritte vergessen werden
- ganz viel später mal alle Dienste über Docker bereitstellen, bringt aber nachteile mit sich die ich zu anfang nicht haben wollte.
Was sagt ihr dazu, wo kann ich noch was besser oder anders machen? Kann ich damit erst einmal starten oder sollte ich doch noch warten und noch in bestimmte Richtungen weiter recherchieren?
Gibt es vllt. möglichkeiten den Server automatisiert (kostenlos) pentesten zu lassen ? Habe bisher nur Angebote gefunden die bei 80€ anfangen, das wollte ich zu Anfang noch nicht gleich investieren, lasse mich aber überreden wenn ihr sagt das macht definitv Sinn!
Ich bedanke mich für jedes noch so kritische Feedback! Ich habe nur die bitte höflich zu bleiben, auch wenn ich Fehler gemacht habe oder auch vollkommen ungeeinget für einen eigenen Server erscheine bitte bleibt sachlich
Viele Grüße und ein tollen Sonntag!
DevOwl