Cloud-Speicher ist eine hervorragende Möglichkeit, Ihre Dateien zu schützen, falls etwas passiert und Ihr Computer verloren geht oder beschädigt wird. Es kann Ihnen dabei helfen, von unterwegs oder von der Arbeit aus auf Ihre Dateien zuzugreifen und alles auf Ihren Geräten synchron zu halten.

Cloud-Speicher hat jedoch einen großen Nachteil. Sie müssen einer Firma alle Ihre persönlichen Daten anvertrauen. Was passiert, wenn sie gehackt werden? Sind sie wirklich so vertrauenswürdig oder gehen sie Ihre Sachen durch, wenn Sie nicht hinsehen? Es ist nicht wirklich möglich, genau zu wissen.

Es gibt noch eine andere Option. Mit Nextcloud können Sie Ihren eigenen Cloud-Speicher hosten. Nextcloud ist eine Open-Source-Cloud-Speicherlösung, mit der Sie Ihr eigenes Cloud-Speicherunternehmen werden können. Es verfügt über eine benutzerfreundliche und übersichtliche Benutzeroberfläche und zugehörige Apps für alle Ihre Geräte, sodass Sie nicht mit gehacktem Junk zu tun haben.

Dieses Handbuch konzentriert sich auf das Hosten von Nextcloud auf einem VPS (Virtual Private Server). Sie können es jedoch auch lokal in Ihrem Heimnetzwerk ausführen. Erwarten Sie nur dann einen Zugriff von außen, wenn Sie die Portweiterleitung eingerichtet haben oder ein VPN verwenden. Einige der Schritte wären etwas anders und Sie müssen weder einen Domainnamen kaufen noch SSL-Zertifikate einrichten.

Wählen Sie einen Host

Angenommen, Sie verwenden eine echte Cloud-Lösung und möchten, dass Ihre Dateien über das Web zugänglich sind, müssen Sie einen VPS einrichten, auf dem Nextcloud gehostet wird. Es gibt einige großartige Optionen, wählen Sie also die für Sie am besten geeignete aus. Schauen Sie sich Linode, DigitalOcean und Gandi an, wenn Sie noch keinen Host im Sinn haben.

In diesem Handbuch wird Debian 9 "Stretch" als Server-Betriebssystem verwendet. Debian ist standardmäßig super stabil und ziemlich sicher. Es wird auch von den meisten Hosting-Plattformen gut unterstützt. Wenn Sie sich mit Ubuntu besser auskennen, wird das meiste auch direkt dort zutreffen, da Ubuntu auf Debian basiert.

Sie müssen auch einen Domain-Namen für Ihren Server erhalten. Da es sich nicht um eine öffentliche Website handelt, können Sie sie so gestalten, wie Sie möchten. Der Vorgang zum Kaufen und Verknüpfen eines Domainnamens ist für jeden Host- und Domainnamenanbieter unterschiedlich. Lesen Sie daher unbedingt die Dokumentation der von Ihnen ausgewählten Dienste.

Alles hier wird von der Linux-Kommandozeile aus erledigt. Wenn Sie also auf einem Mac oder Linux arbeiten, können Sie einfach ein Terminal öffnen und mit SSH auf Ihr VPS zugreifen. Wenn Sie unter Windows arbeiten, greifen Sie zu einem SSH-Client wie PuTTY.

Installieren Sie, was Sie brauchen

Es gibt viele Teile dieses Puzzles. Sie können sie jetzt auch alle nehmen, damit Sie alles haben, was Sie brauchen, um von hier aus fortzufahren. In Debian ist normalerweise sudo nicht standardmäßig installiert. Greifen Sie also zuerst zu und richten Sie es ein.

$ su -c 'apt install sudo'

Geben Sie Ihr root-Passwort ein und Sudo wird installiert. Anschließend müssen Sie Ihren Benutzer zur sudo-Gruppe hinzufügen.

$ su -c 'gpasswd -a Benutzername sudo'

Jetzt können Sie sudo verwenden. Möglicherweise müssen Sie sich erneut anmelden, wenn dies nicht sofort funktioniert. Ab diesem Zeitpunkt verwenden Sie stattdessen sudo, insbesondere da Sie Root-Anmeldungen aus Sicherheitsgründen deaktivieren.

Holen Sie sich jetzt alles aus den Debian-Repositories.

$ sudo apt install ufw mariadb-server nginx certbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring

Richten Sie Ihre Firewall ein

Ihr Server ist im Internet. Daran führt kein Weg vorbei und es bedeutet, dass Sie sich mit Angreifern auseinandersetzen müssen. Durch das Einrichten einer einfachen Firewall können viele potenzielle Bedrohungen vermieden werden.

Anstatt iptables direkt zu verwenden, können Sie UFW (Uncomplicated Firewall) zum Sichern Ihres Systems verwenden. Es hat eine einfachere Syntax und es ist viel einfacher, damit zu arbeiten.

Deaktivieren Sie zunächst alle Elemente in der Firewall. Dadurch wird die Standardrichtlinie so festgelegt, dass Verbindungen zu allen Diensten und Ports verweigert werden. Dadurch wird sichergestellt, dass Angreifer keine Verbindung zu einem vergessenen Port herstellen können.

$ sudo ufw verweigern standardmäßig eingehende

$ sudo ufw verweigert standardmäßig ausgehende Nachrichten $ sudo ufw verweigert standardmäßig die Weiterleitung

Als nächstes können Sie ufw mitteilen, welche Dienste Sie zulassen möchten. In diesem Fall benötigen Sie nur SSH und Webzugriff. Sie möchten auch NTP und DNS aktivieren, damit Ihr Server Aktualisierungen abrufen und die Uhrzeit einstellen kann.

$ sudo ufw erlauben in ssh
$ sudo ufw erlaube ssh
$ sudo ufw erlauben in http
$ sudo ufw erlaubt http
$ sudo ufw erlauben in https
$ sudo ufw erlaubt https
$ sudo ufw erlauben in ntp
$ sudo ufw erlaube ntp
$ sudo ufw erlauben in 53
$ sudo ufw erlauben aus 53
$ sudo ufw erlauben in 67
$ sudo ufw erlauben aus 67
Nextcloud UFW

Sie können Ihre Firewall jetzt starten. Es wird eine Warnung angezeigt, die Sie davor warnt, SSH zu stören. Sie haben jedoch bereits SSH zugelassen, sodass Sie in Ordnung sind.

$ sudo ufw enable

Konfigurieren Sie SSH

SSH ist einer der am häufigsten angegriffenen Dienste auf Linux-Servern. Es ist das Tor zu allem anderen auf dem Server und normalerweise nur durch ein Passwort geschützt. Aus diesem Grund ist es wichtig, sicherzustellen, dass Ihr Server für Angreifer über SSH nicht leicht zugänglich ist.

SSH-Schlüssel

Zunächst müssen Sie eine viel sicherere Alternative zu einem Kennwort einrichten, einen SSH-Schlüssel. Der Vorgang ist unter Windows anders als unter Mac und Linux. Befolgen Sie daher die Anweisungen auf Ihrem Desktop.

Windows

Wie bei Windows benötigen Sie ein weiteres Programm, um diese einfache Aufgabe auszuführen. PuTTYgen ist ein RSA-Schlüsselgenerator für PuTTY. Es ist auf der PuTTY-Download-Seite verfügbar. Laden Sie es herunter und führen Sie es aus.

Benennen Sie im folgenden Fenster Ihren Schlüssel und legen Sie ein Kennwort dafür an. Dies ist das Kennwort, mit dem Sie sich bei Ihrem Server anmelden. Wählen Sie unten SSH-2 RSA aus und legen Sie eine Schlüsselgröße von mindestens 2048 Bit fest. 4096 ist besser, aber 2048 wird etwas schneller sein. Generieren Sie dann Ihre Schlüssel und speichern Sie sowohl den öffentlichen als auch den privaten Schlüssel. Kopieren Sie schließlich den öffentlichen Schlüssel, der oben im Fenster angezeigt wird.

Verwenden Sie PuTTY, um eine Verbindung zu Ihrem Server herzustellen. Öffnen Sie eine Datei unter ~ / .ssh / authorized_keys und fügen Sie Ihren Schlüssel ein.

Zurück in PuTTY finden Sie SSH im Seitenmenü. Öffnen Sie dann "Auth". Navigieren Sie im Feld für den Pivate-Schlüssel zum Speicherort des privaten Schlüssels, den Sie gerade gespeichert haben. Wenn in PuTTY alles für Ihren Server eingerichtet ist, speichern Sie die Sitzung. Testen Sie es, um sicherzustellen, dass Sie mit Ihrem Schlüssel verbunden sind, bevor Sie fortfahren.

Mac und Linux

Mac- und Linux-Benutzer haben es hier viel leichter. Erstellen Sie zunächst einen SSH-Schlüssel, falls Sie noch keinen haben. Sie haben die Möglichkeit, ein Passwort für den Schlüssel zu erstellen. Es ist optional, das ist also Ihr Anruf.

$ ssh-keygen -b 4096 -t rsa

Senden Sie jetzt einfach Ihren Schlüssel an Ihren Server. Ersetzen Sie Ihren Benutzernamen und die IP des Servers.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub [E-Mail geschützt]

Das ist es!

Root und Passwörter nicht zulassen

Nachdem Sie Ihren Schlüssel eingerichtet haben, können Sie Kennwörter für SSH deaktivieren. Machen Sie sich keine Sorgen, wenn Sie einen Schlüssel mit einem Passwort einrichten. Das ist etwas anderes, und das wird sich überhaupt nicht auswirken. Öffnen Sie die SSH-Konfigurationsdatei unter / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Suchen Sie die Zeile mit der Aufschrift:

#PermitRootLogin Passwort verbieten

Ändern Sie es in:

PermitRootLogin Nr

Als nächstes finden Sie die beiden Zeilen:

#PasswordAuthentication yes
#PermitEmptyPasswords no

Ändern Sie sie in:

PasswordAuthentication no
PermitEmptyPasswords no

Schließlich finden Sie:

UsePAM ja

Mach es:

UsePAM-Nr

Speichern Sie Ihre Datei und schließen Sie sie. Starten Sie dann SSH neu. Dies kann zu einem Anstoß führen. Stellen Sie in diesem Fall die Verbindung erneut her.

$ sudo systemctl starte sshd neu

Konfigurieren Sie Ihre Datenbank

Als Nächstes müssen Sie Ihre Datenbank konfigurieren. Hier ist wirklich nicht viel los, also mach dir keine Sorgen. Sie müssen lediglich einen Benutzer und eine leere Datenbank einrichten, auf die Nextcloud zugreifen kann.

MariaDB Sicherheit

Tatsächlich gibt es ein praktisches Skript zum Einrichten und Sichern von MariaDB für Sie. Führen Sie es zuerst aus.

$ sudo mysql_secure_installation

Das Standard-Root-Passwort ist leer und wird bei Aufforderung mit „Enter“ bestätigt. Anschließend werden Sie aufgefordert, ein Root-Passwort einzurichten. TU das. Beantworten Sie jede folgende Frage mit "Ja".

Sie können sich mit dem soeben eingerichteten Root-Passwort bei Ihrer Datenbank anmelden.

$ sudo mysql -u root -p

Die Eingabeaufforderung wechselt zur MariaDB. Dies ist die Konsole zur Verwaltung Ihres Datenbankservers. Beginnen Sie mit dem Erstellen einer neuen Datenbank. Hier zählt die Kapitalisierung.

CREATE DATABASE nextcloud;

Als nächstes legen Sie einen Benutzer für diese Datenbank an.

CREATE USER `nextcloud` @` localhost` IDENTIFIED BY "PasswordForUser";

Erteilen Sie diesem Benutzer dann die Berechtigung, die Datenbank zu verwenden.

GRANT ALL ON nextcloud. * TO `nextcloud` @` localhost`;

Das ist es! Sie können den Datenbankserver jetzt beenden.

q

PHP konfigurieren

Nextcloud ist in PHP geschrieben. Sie haben bereits die neueste Version von PHP auf Debian Stretch installiert, zusammen mit den PHP-Erweiterungen, die Nextcloud benötigt, um richtig zu funktionieren. Sie müssen noch einige Anpassungen an Ihrer PHP-Konfiguration vornehmen, um die Arbeit mit Nginx zu vereinfachen.

Nextcloud php.ini config

Es braucht wirklich nur einige grundlegende Sicherheitsverbesserungen. Diese sind nicht besonders wichtig, tragen jedoch zur Verbesserung der Sicherheit Ihres Servers bei.

Öffnen Sie /etc/php/7.0/fpm/php.ini mit sudo und Ihrem bevorzugten Texteditor.

Die Datei ist sehr umfangreich. Verwenden Sie daher die Suchfunktion Ihres Editors, um darin zu navigieren. Wenn Sie Nano verwendet haben, ist dies Strg + W. Die erste Option, die Sie finden müssen, ist disable_functions. Add füge am Ende phpinfo, system, mail, exec hinzu.

Suchen Sie dann sql.safe_mode und aktivieren Sie es. Setzen Sie als nächstes allow_url_fopen auf off. Fügen Sie am Ende der Datei die folgende Zeile hinzu, speichern und schließen Sie sie.

register_globals = Aus

Holen Sie sich Nextcloud

Nextcloud ist noch nicht als Paket für Debian verfügbar, und das ist in Ordnung. Das brauchst du wirklich nicht. Es ist mit anderen vorgefertigten PHP-Webanwendungen wie WordPress vergleichbar und liegt in einem komprimierten Archiv vor, das Sie dort extrahieren können, wo Nextcloud installiert werden soll.

Ab sofort ist Nextcloud die neueste stabile Version. Prüfen Sie, welche Version für Sie aktuell ist, wenn Sie diese lesen. In der Anleitung wird auf 12 Bezug genommen, es wird jedoch die neueste stabile Version verwendet.

Wechseln Sie in ein Verzeichnis, in das Sie Ihr Nextcloud-Archiv herunterladen möchten. Wechseln Sie dann nach / var / www, um es zu extrahieren.

$ cd ~ / Downloads
$ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.tar.bz2
$ cd / var / www
$ sudo tar xjpf ~ / Downloads / nextcloud-12.0.3.tar.bz2

Wenn Sie dies in Zukunft lesen, finden Sie den Download-Link auf der Server-Installationsseite von Nextcloud.

Ändern Sie abschließend den Eigentümer Ihrer Nextcloud-Installation in www-data.

$ sudo chown -R WWW-Daten: WWW-Daten / var / WWW / nextcloud

Erstellen Sie SSL-Zertifikate

Das Erstellen Ihrer SSL-Zertifikate ist dank Certbot sehr einfach. Certbot generiert Ihre SSL-Zertifikate automatisch für Sie und legt sie im Webstamm der Site ab, für die Sie sie erstellen. Sie müssen nur einen einzigen Befehl ausführen.

$ sudo certbot certonly --webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com

Da Sie Certbot zum ersten Mal ausführen, werden Sie nach einer E-Mail-Adresse gefragt. Diese Adresse wird verwendet, um Sie zu warnen, wenn die Gültigkeit Ihrer Zertifikate abläuft. Sie können sie auch einfach mit einem einzigen Befehl verlängern.

$ sudo certbot erneuern

Konfigurieren Sie Nginx

Nginx ist ein leichter und dennoch leistungsstarker Webserver. Es wird die Schnittstelle bedienen, über die Sie auf Nextcloud zugreifen. Es gibt einige Konfigurationsdateien für Nginx. Die erste ist die Hauptkonfiguration in /etc/nginx/nginx.conf. Dies ist die Hauptkonfigurationsdatei, sie weist jedoch solide Standardeinstellungen auf. Sie können damit spielen, wenn Sie wissen, was Sie tun, aber Sie können es in Ruhe lassen und auch in Ordnung sein.

Nextcloud Nginx Konfiguration

Die nächste Konfiguration ist viel länger und komplexer. Zum Glück müssen Sie nicht alles schreiben. Die Nextcloud-Entwickler haben es bereits getan. Sie müssen es nur ändern. Die Konfigurationsdatei befindet sich auf der Nextcloud-Site. Besorgen Sie sich die für die Webroot von Nginx. Erstellen Sie eine neue Datei unter / etc / nginx / sites-available / nextcloud und fügen Sie sie ein.

Sobald Sie die Datei haben, müssen Sie einige einfache Änderungen vornehmen. Suchen Sie zuerst den Upstream-Block und ändern Sie ihn so:

Upstream PHP-Handler {
    Server-Unix: /run/php/php7.0-fpm.sock;
}

Suchen Sie dann eine Stelle mit der Aufschrift cloud.example.com und ändern Sie sie in Ihren Domainnamen.

Als letztes müssen Sie Nginx auf Ihre SSL-Zertifikate verweisen. Ändern Sie die Zeilen:

ssl_certificate /etc/ssl/nginx/cloud.example.com.crt;
ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

Zu:

ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

Das ist es! Als nächstes müssen Sie es verknüpfen, damit Nginx es finden kann.

$ cd / etc / nginx / sites-enabled
$ sudo ln -s / etc / nginx / sites-available / nextcoud nextcloud

Entfernen Sie die vorhandene Standardeinstellung.

$ sudo rm default

Starten Sie PHP und Nginx neu und Sie können auf Nextcloud zugreifen!

$ sudo systemctl starte php7.0-fpm neu
$ sudo systemctl starte nginx neu

Starten Sie Nextcloud

Nextcloud

Öffnen Sie Ihren Webbrowser und navigieren Sie zu Ihrem Domainnamen. Sie werden mit dem Nextcloud-Setup-Bildschirm begrüßt. Erstellen Sie sich ein Administratorkonto und geben Sie die Informationen für das von Ihnen erstellte Datenbankkonto ein.

Nextcloud benötigt einige Minuten, um sich selbst zu konfigurieren und zu installieren. Wenn dies abgeschlossen ist, werden Sie in Ihr neues Nextcloud-Dashboard verschoben. Von dort aus können Sie neue Benutzer erstellen, damit Personen, denen Sie vertrauen, auf Ihren neuen Cloud-Speicher zugreifen können. Sie können auch sofort mit dem Hochladen von Dateien beginnen.

Das ist es! Sie haben jetzt Ihre eigene private Cloud!