Vorbesprechung


  • Die eigene Cloud schützt die Privatsphäre und reduziert die Abhängigkeit von großen Monopolisten
  • Der Kurs begleitet Sie vom Hardwaresetup und dem Linux Betriebssystem über die Grundkonfiguration des Servers bis hin zur Installation und Konfiguration des eigenen Cloudservers
  • Sie müssen jede Woche Selbstlernmaterial durcharbeiten, auf ILIAS einen Test durchführen und die praktischen Aufgaben absolvieren
  • Am Ende des Kurses müssen Sie noch einen Abschlussbericht verfassen
  • Für den Kurs erhalten Sie 3 ECTS-Punkte

Hardware und BetriebssystemDie Hard- und SoftwarePraktische UmsetzungWeitere Quellen


  • Für viele Heimanwender und Kleinprojekte reichen Mini-PCs (SoC) aus.
  • Für große Projekte wird spezialisierte Serverhardware benötigt
  • In diesem Kurs wird auf einem Raspberry Pi mit Linux-Betriebssystem die Cloud-Software Nextcloud installiert.
  • Die Installation des Betriebssystems erfolgt mit dem Raspberry Pi Imager
  • Der Raspberry Pi mit dem Raspberry Pi OS kann sowohl wie ein herkömmlicher PC, als auch wie ein Server genutzt werden

Linux Schnellstart


  • Raspberry Pi OS ist das Linux-Betriebssystem unserer Wahl

  • Das Dateisystem unter Linux besteht aus einem einzigen Verzeichnisbaum. “/” ist dabei die obersterte Ebene

  • Software wird unter Linux zentral verwaltet. Die Verwaltung erfolgt bei der Debian-Familie mit den Programmen apt-get oder apt

  • Ein Linux-Server wird i.d.R. über die Kommandozeile gesteuert. Dabei erfolgt die Arbeit ohne Maus. Programmsteuerung, Dateioperationen und die Dateierstellung werden per Tastatur erledigt.

Remote Access: das SSH-Protokoll


  • das SSH-Protokoll erlaubt den Zugriff auf die Kommandozeile entfernter Computer

  • zur Erhöhung der Sicherheit empfiehlt sich die Nutzung eines Schlüsselpaares anstatt eines Passworts

  • zur Reduzierung der Angriffsfläche sollte die Konfiguration des SSH-Servers angepasst werden

  • ein privater (SSH-)Schlüssel darf niemals das eigene Gerät verlassen

  • der Aufbau der SSH-Verbindung geschieht wie folgt: ssh -p <Portnummer> -i <Pfad-zum-privaten-Schlüssel> <user>@<server>

Sicherheit: Benutzer und Dateirechte


  • der root-Account ist der Adminstrator des Systems

  • Mitglieder der sudo-Gruppe haben administrative Rechte, welche sie mit dem sudo-Kommando nutzen können

  • Dateien und Ordner sind immer einem Benutzer und einer Gruppe zugeordnet. Die Besitzverhältnisse können mit chown geändert werden.

  • Dateien und Ordner haben einen mode, welcher die Rechte von Besitzer und besitzender Gruppe steuert, er kann mit chmod geändert werden

Sicherheit: Firewall und Fail2Ban


  • Computer kommunizieren im Netzwerk nach Standards, das OSI-Schichten-Modell stellt einen Leitrahmen für diese Standards dar

  • Versendete Daten im Netzwerk haben immer einen Absender- und einen Empfänger (in Form von MAC-Adresse, Netzwerk-ID, IP-Adresse und Port)

  • Mit einer Firewall können Ports geöffnet und geschlossen werden

  • Mit Fail2Ban können fehlerhafte Loginversuche festgestellt und blockiert werden

Installationsvorbereitung 1


  • Zur Sicherung des gesamten Systems kann die SD-Karte an einem zweiten PC geklont werden

  • Datenträger können unter Linux an einer beliebigen Stelle des Verzeichnisses Baumes eingehängt werden

  • Einmaliges mounten erfolgt mit dem mount-Befehl, dauerhaftes mounten durch Eintragung in der Datei /etc/fstab

  • Nextcloud bietet unterschiedliche Installationsvarianten- und Komponenten. In diesem Kurs wird die manuelle Installation mit MariaDB und Apache gewählt.

Installationsvorbereitung 2


  • Um den Raspberry Pi aus dem Internet zu erreichen müssen mehrere Schritte unternommen werden.

  • es muss eine DDNS-Domain reserveriert werden und ein DDNS-Dienst auf dem Raspberry Pi konfiguriert werden.

  • es muss eine Portweiterleitung auf dem Router des Heimnetzwerks eingerichtet werden. Dies muss vom Internetanbieter unterstützt werden.

  • die Firewall des Raspberry Pi muss angepasst werden.

Installationsvorbereitung 3


  • Nextcloud benötigt weitere Programme zur Funktion: PHP, Datenbank und Webserver

  • Mit MariaDB muss ein Datenbankuser und eine Datenbank für Nextcloud erstellt werden

  • Die heruntergeladenen Dateien müssen mittels Konfigurationsdatei durch Apache zur Verfügung gestellt werden

Installationsvorbereitung 4


  • Unverschlüsselte HTTP-Verbindungen müssen vermieden werden.

  • Für verschlüsselte HTTPS-Verbindungen wird ein TLS-Zertifikat benötigt.

  • Mit Certbot können kostenlose Zertifikate von Letsencrypt erhalten werden.

  • Für eine HTTPS-Verbindung müssen die Konfiguration des Webservers, der Firewall und des Routers angepasst werden.

Installation und Konfiguration


  • Die Installation von Nextcloud kann im Webbrowser erfolgen

  • Im Anschluss an die Installation muss das System auf Fehler überprüft werden

  • Die Konfiguration des Servers kann im Browser, mit dem occ-Programm oder mit der Konfigurationsdatei erfolgen

  • Für eine bessere Leistung empfiehlt sich die Implementierung eines Caching-Dienstes

Backup


  • inkrementelle Backups sind speicherplatz- und zeitsparend

  • besser ein mittelmäßiges Backup als gar kein Backup

  • Per Bash-Skript und cron-Job kann der Nextcloud-Server automatisch gesichert werden

Konfiguration 2


  • Die Aktualisierung kann mit dem Build-In Updater im Browser oder per CMD erfolgen

  • Nach Abschluss der Aktualisierung muss die Datenank migriert werden und ggf. weitere Schritte durchgeführt werden

  • Die Performance des Servers kann durch Konfigurationsänderungen in PHP verbessert werden

  • Die Sicherheit kann durch Änderungen an der Apache-Konfiguration, mit Fail2Ban und urandom erhöht werden