83313 Siegsdorf, Bayern
+49 173 672 0392
uwe@UweSprenger.de

Die eigene Cloud – mit Nextcloud

A post from UweS Blog

Unfortunately this page has not yet been translated. If necessary, please try the Google Translator in between.

Eine eigene Cloud haben, das wollte ich schon immer. Und das hat viele Gründe:

Da nervt die DropBox, weil ich zu viele Geräte angemeldet habe, da beschleicht mich ein ungutes Gefühl dem OneDrive zu viele Daten anzuvertrauen. Und zudem machen diese Tools fast nur Datenhaltung, kaum Collaboration. Da hab ich doch letztens was von der NextCloud gelesen, eine Open-Source-Entwicklung, die sehr viel mehr bietet? Und dann rührt sich mal wieder mein SPiel- und Basteltrieb. Nun will ich aber ungern in meinem von Windows und Android geprägten Heimnetz ein Unix System aufsetzen. Nach den hier

WordPress auf der WD My Cloud Ex2

gemachten Erfahrungen auch nicht unbedingt wieder mein unsicheres NAS System nötigen, zumal ich dann auch noch das Problem hätte, Zugriffe von außen in mein Heimnetz zu ermöglichen. Und dann fällt mir plötzlich dieses Lockvogel-Angebot auf: IONOS bewirbt einen vServer für 1€/Monat. Gibt es das? Das muss ich unbedingt ausprobieren.

Der Server für die eigene Cloud

Und so geht’s bzw. ging es bei mir:

[one_fifth]Disclaimer:[/one_fifth][four_fifth_last]Alle Preis- und sonstige Angaben zu den IONOS Servern und Domainen sind unverbindlich, die reflektieren den mir bekannten Stand vom April 2020 und können sich jederzeit ändern.[/four_fifth_last]

Also erstmal auf der Seite IONOS VPS Server  einen “VPS S” bestellen. (Achtung: scrollt nach unten, der VPS XL kostet auch 1€ aber nach 6 Monaten dann 20€, nur ein VPS S kostet dauerhaft nur 1€/Monat.  Er beinhaltet derzeit 10GB Speicher (bei mir waren es noch 20GB) und 500MB RAM könnte also knapp werden, aber man kann es ja mal versuchen. Am besten auch gleich eine “.de” Domain dazu bestellen, die kostet 1€ für das ganze erste Jahr, danach 1,30€/Monat. Alles für “ein Apple und ein Ei”.

Bei der Bestellung der Domain könnt ihr auf kostenpflichtige Zertifikate verzichten, für die Verschlüsselung richten wir später Let’s Encrypt Zertifikate ein, die sind kostenfrei.

Das macht dann in Summe 13€ für ein Jahr Spaß? Da sagt dann auch mein “Geiz ist Geil”-Herz nicht nein 🙂

Für die Konfiguration des Servers einfach ein Linux-Standard bestellen mit Standort = Deutschland, zunächst ohne Cloud-Backup! Das könnt ihr ggf. angehen, wenn ihr wirklich “produktiv” gehen wollt und keine andere Lösung für das Backup habt.

Nach der Bezahlung (schnell geht es per PayPal) wird der Server erzeugt. Ihr bekommt außerdem Zugangsdaten zum IONOS-Control Panel. Dort könnt ihr den Server administrieren, sobald das Deployment abgeschlossen ist. Das ging bei mir innerhalb einiger Stunden, inzwischen bewirbt IONOS hier 55 Sekunden. Testet es aus.

Nun kommt ein  wenig Admin Arbeit:

Sofern unter “Netzwerk – Öffentliche IP”, noch kein Eintrag existiert, erzeugt bitte eine öffentliche IP und weist diese dem Server zu.

Sofern unter “Netzwerk – Firewall-Richtlinien solltet ihr dem Server die Richtlinie Linux zuweisen. Ihr braucht die Ports 22, 80 und 443 offen.

NextCloud – OpenSource für die eigene Cloud

Als nächstes müsst ihr leider den Server “platt machen”, im Control Panel könnt ihr über die Aktion “Image neu installieren” ein passendes
Image auswählen. In diesem Fall wählt ihr kein natives Betriebssystem aus, sondern das angebotene NextCloud Image. Das spart einiges an Arbeit und es wird gleich eine funktionierende, auf CentOS basierende Installation erzeugt.

Nun dauert es wieder ein paar Minuten, bis das neue Image läuft. Im Control-Panel könnt ihr jetzt das Linux-Root Passwort und das NextCloud-Passwort auslesen.

Macht jetzt noch über die Domainverwaltung im Control Panel eine Weiterleitung der Domain auf die oben erzeugte öffentliche Adresse des Servers.

Zum jetzigen Zeitpunkt geht schon der Zugriff über Public IP mit http oder https auf die Nextcloud, euer Browser wird aber immer noch meckern. Bei der Verwendung des Domain-Namens wird NextCloud euch den Zugriff aus “untrusted Domains” verweigern. Dazu später mehr. Keine Sorge, das ist “normal”.

Jetzt ein ganz klein wenig Unix:

Ihr solltet euch WinSCP installieren und damit eine Verbindung zum Server aufbauen. Die Bearbeitung von Dateien ist über WinSCP wesentlich einfacher als mit der Unix-Shell. Zudem ist Putty integriert, und ihr müsst nicht die KVM Konsole nutzen, die ansonsten im IONOS Portal verfügbar wäre.

Hinweis: Die Freigabe von Port 22 wie oben beschrieben ist essentiell. sobald der Port offen ist, werdet ihr eine Vielzahl von Angriffsversuchen im Security-Log sehen. Verwendet ein ausreichend sicheres Passwort, oder stellt am besten gleich auf eine Public-Key Authentifizierung um. Dann ist euer vServer schon mal sicher.

Folgende Aktionen sind nun nötig, alle mit root-Rechten:

Sucht die Datei /etc/httpd/conf/httpd.conf. Dort sucht ihr den (Port-80) Eintrag des “VirtualHosts” für NextCloud, der mit der Public IP verknüpft ist. Ersetzt dort die Public IP durch euren Domain Namen. Den vorhandenen virtual Host für https (port: 443) bitte auskommentieren.

Geht in die Config-Datei der NextCloud /home/Default/html/config/config.php und ergänzt eure Domain als “Trusted Domain”. Das sieht dann in etwa so aus:


‘trusted_domains’ =>
array (
0 => ‘public ip’,
1 => ‘domainname.de’,
),

Das freie Zertifikat Let’s Encrypt

Dann wechselt ihr in die Shell (Putty aus WinSCP heraus, alternativ die KVM Konsole aus dem Control-Panel) und implementiert ein Let’s Encrypt Zertifikat. Dazu sind folgende Installationen notwendig (hier CENTOS 8).

# yum -y install epel-release  (war schon installiert)
# yum -y install yum-utils
# yum -y install certbot-apache

Mit dem folgenden Befehl sorgt ihr dann für die Einbindung eines Let’s Encrypt Zertifikates:

# certbot –apache

Das Tools scannt die CONF-Dateien des Apache-Services (httpd) durch und sollte eure oben eingetragene Domain finden. Es fragt euch ebenfalls nach eurer e-Mail Adresse, da diese zur Zertifikatserzeugung verwendet wird. Nach erfolgreicher Installation erzwingt ihr sicherheitshalber gleich den HTTPS Zugriff (entsprechende Anfrage beantworten.)

Nun muss noch über einen Eintrag in der CronTab dafür gesorgt werden, dass das Zertifikat regelmäßig erneuert wird, wenn es abgelaufen ist:

crontab -e (startet  VI)

folgende Zeile eintragen:

* */12 * * * /usr/bin/certbot renew >/dev/null 2>&1

mit :X beenden.

Damit steht die “Cloud” erstmal und kann in Betrieb genommen werden. Und hier noch eine kleine, nicht vollständige Checkliste was noch zu tun ist:

  • Umzug des Data-Directories
  • Centos auf aktuelle Version bringen
  • Automatischen Updates  einrichten auf Unix Ebene
  • Firewall auf Unix selbst einrichten
  • Anmeldung auf Zertifikatanmeldung beschränken
  • Ggf. Reverse Proxy einrichten
  • Einrichten der NextCloud User
  • Installieren benötigter Apps
  • Aktualisiere auf die neueste Version
  • Einrichten eines Backups je nach Anforderung
  • Ende zu Ende Verschlüsselung wenn nötig

Also da ist schon was zu tun, aber alles nicht so immens. Nach einer Woche habt ihr eine sichere NextCloud

Leave a Reply

Your email address will not be published. Required fields are marked *