Installation von Nextcloud mit Tailscale und TLS auf Debian 13

Aus Volla Wiki
Zur Navigation springen Zur Suche springen

Installation von Nextcloud mit Tailscale und TLS auf Debian 13

Diese Anleitung beschreibt die Installation von Nextcloud auf einem Debian 13 Server (AMD64-Maschine/VM) mit Tailscale für sicheren Zugriff und einem TLS-Zertifikat von Let’s Encrypt für HTTPS.

Voraussetzungen

  • AMD64-kompatible Maschine oder virtuelle Maschine (VM)
  • Internetzugang
  • Grundkenntnisse in Linux-Terminalbefehlen

Schritt 1: Debian 13 Server installieren

  1. Laden Sie das Debian 13 ISO-Image von Debian.org herunter.
  2. Erstellen Sie ein bootfähiges Installationsmedium (z. B. USB-Stick) und installieren Sie Debian 13. Folgen Sie den Anweisungen im Installationsassistenten.
  3. Installieren Sie den SSH-Server, um Remote-Zugriff zu ermöglichen:
 sudo apt update
 sudo apt install openssh-server -y
 sudo systemctl enable ssh
 sudo systemctl start ssh
  1. Überprüfen Sie, ob der SSH-Server läuft:
 sudo systemctl status ssh

Schritt 2: Tailscale installieren

  1. Installieren Sie Tailscale, um einen sicheren VPN-Zugang zu Ihrer Nextcloud-Instanz zu ermöglichen:
 curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
 curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
 sudo apt update
 sudo apt install tailscale -y
  1. Starten und authentifizieren Sie Tailscale:
 sudo tailscale up
 Folgen Sie dem angezeigten Link, um sich mit Ihrem Tailscale-Konto anzumelden.
  1. Aktivieren Sie MagicDNS in Ihrem Tailscale Admin-Panel (unter DNS-Einstellungen), um eine Tailscale-Domain (z. B. ihre.tailscale-Domain.net) zu erhalten.
  2. Notieren Sie sich die Tailscale-Domain für die spätere Konfiguration.

Schritt 3: Nextcloud mit C-Rieger-Skript installieren

  1. Laden Sie das Nextcloud-Installationsskript von Carsten Rieger herunter (prüfen Sie die neueste Version unter [1]):
 wget https://www.c-rieger.de/downloads/zero.sh
 chmod +x zero.sh
  1. Bearbeiten Sie die Konfigurationsdatei zero_v2.cfg:
 nano zero_v2.cfg
 Passen Sie die folgenden Parameter an:

NEXTCLOUDDNS="ihre.tailscale-Domain.net" UPLOADSIZE="40G" RESOLVER="100.100.100.100 127.0.0.1"

 Ersetzen Sie ihre.tailscale-Domain.net durch Ihre Tailscale-Domain.
  1. Führen Sie das Skript aus:
 ./zero.sh
  1. Notieren Sie sich die Anmeldedaten, die nach der Installation angezeigt werden.

Schritt 4: TLS-Zertifikat mit Let’s Encrypt konfigurieren

  1. Installieren Sie certbot für Let’s Encrypt:
 sudo apt install certbot python3-certbot-nginx -y
  1. Falls Sie Tailscale MagicDNS verwenden, generieren Sie ein Let’s Encrypt-Zertifikat mit dem Tailscale-Befehl:
 sudo tailscale cert ihre.tailscale-Domain.net
 Die Zertifikate werden in /var/lib/tailscale/certs/ gespeichert (z. B. ihre.tailscale-Domain.net.crt und ihre.tailscale-Domain.net.key).
  1. Alternativ können Sie certbot verwenden, falls Tailscale nicht für die Zertifikatsausstellung genutzt wird:
 sudo certbot --nginx -d ihre.tailscale-Domain.net

Schritt 5: Nginx-Konfiguration anpassen

  1. Bearbeiten Sie die Nginx-Konfigurationsdatei für Nextcloud:
 sudo nano /etc/nginx/conf.d/nextcloud.conf
  1. Stellen Sie sicher, dass die TLS-Zertifikatspfade korrekt sind. Beispielkonfiguration:

server { listen 80; server_name ihre.tailscale-Domain.net; return 301 https://$server_name$request_uri; }

server { listen 443 ssl; server_name ihre.tailscale-Domain.net;

ssl_certificate /var/lib/tailscale/certs/ihre.tailscale-Domain.net.crt; ssl_certificate_key /var/lib/tailscale/certs/ihre.tailscale-Domain.net.key; ssl_trusted_certificate /var/lib/tailscale/certs/ihre.tailscale-Domain.net.crt;

root /var/www/nextcloud; index index.php;

location / { try_files $uri $uri/ /index.php?$args; }

location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

 Ersetzen Sie ihre.tailscale-Domain.net durch Ihre Domain und passen Sie den PHP-FPM-Socket (z. B. php8.2-fpm.sock) an die installierte PHP-Version an.
  1. Testen Sie die Nginx-Konfiguration:
 sudo nginx -t
  1. Laden Sie Nginx neu:
 sudo systemctl reload nginx

Schritt 6: Nextcloud aufrufen

  1. Öffnen Sie Ihren Browser und rufen Sie Ihre Nextcloud-Instanz auf:
 https://ihre.tailscale-Domain.net
  1. Melden Sie sich mit den zuvor notierten Anmeldedaten an.

Schritt 7: Sicherheitsmaßnahmen

  1. Aktivieren Sie eine Firewall (z. B. ufw):
 sudo apt install ufw -y
 sudo ufw allow 22
 sudo ufw allow 80
 sudo ufw allow 443
 sudo ufw enable
  1. Aktivieren Sie HSTS in Ihrer Nginx-Konfiguration, indem Sie folgende Zeile in den server-Block (Port 443) einfügen:
 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
  1. Überprüfen Sie die Nextcloud-Sicherheitseinstellungen im Admin-Bereich nach der Anmeldung.

Hinweise

  • Tailscale-Zertifikate erscheinen in der Let’s Encrypt Certificate Transparency Log, da sie öffentliche Domains verwenden.
  • Halten Sie Ihre Nextcloud-Instanz und Debian-Pakete regelmäßig aktuell:
 sudo apt update && sudo apt upgrade -y

Viel Spaß mit Ihrer gesicherten und persönlichen Nextcloud!