Installation von Nextcloud mit Tailscale und TLS auf Debian 13
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
- Laden Sie das Debian 13 ISO-Image von Debian.org herunter.
- Erstellen Sie ein bootfähiges Installationsmedium (z. B. USB-Stick) und installieren Sie Debian 13. Folgen Sie den Anweisungen im Installationsassistenten.
- Installieren Sie den SSH-Server, um Remote-Zugriff zu ermöglichen:
sudo apt updatesudo apt install openssh-server -ysudo systemctl enable sshsudo systemctl start ssh
- Überprüfen Sie, ob der SSH-Server läuft:
sudo systemctl status ssh
Schritt 2: Tailscale installieren
- 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/nullcurl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.listsudo apt updatesudo apt install tailscale -y
- Starten und authentifizieren Sie Tailscale:
sudo tailscale up
Folgen Sie dem angezeigten Link, um sich mit Ihrem Tailscale-Konto anzumelden.
- Aktivieren Sie MagicDNS in Ihrem Tailscale Admin-Panel (unter DNS-Einstellungen), um eine Tailscale-Domain (z. B.
ihre.tailscale-Domain.net) zu erhalten. - Notieren Sie sich die Tailscale-Domain für die spätere Konfiguration.
Schritt 3: Nextcloud mit C-Rieger-Skript installieren
- 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.shchmod +x zero.sh
- 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.
- Führen Sie das Skript aus:
./zero.sh
- Notieren Sie sich die Anmeldedaten, die nach der Installation angezeigt werden.
Schritt 4: TLS-Zertifikat mit Let’s Encrypt konfigurieren
- Installieren Sie
certbotfür Let’s Encrypt:
sudo apt install certbot python3-certbot-nginx -y
- Falls Sie Tailscale MagicDNS verwenden, generieren Sie ein Let’s Encrypt-Zertifikat mit dem Tailscale-Befehl:
sudo tailscale cert ihre.tailscale-Domain.netDie Zertifikate werden in/var/lib/tailscale/certs/gespeichert (z. B.ihre.tailscale-Domain.net.crtundihre.tailscale-Domain.net.key).
- Alternativ können Sie
certbotverwenden, falls Tailscale nicht für die Zertifikatsausstellung genutzt wird:
sudo certbot --nginx -d ihre.tailscale-Domain.net
Schritt 5: Nginx-Konfiguration anpassen
- Bearbeiten Sie die Nginx-Konfigurationsdatei für Nextcloud:
sudo nano /etc/nginx/conf.d/nextcloud.conf
- 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 Sieihre.tailscale-Domain.netdurch Ihre Domain und passen Sie den PHP-FPM-Socket (z. B.php8.2-fpm.sock) an die installierte PHP-Version an.
- Testen Sie die Nginx-Konfiguration:
sudo nginx -t
- Laden Sie Nginx neu:
sudo systemctl reload nginx
Schritt 6: Nextcloud aufrufen
- Öffnen Sie Ihren Browser und rufen Sie Ihre Nextcloud-Instanz auf:
https://ihre.tailscale-Domain.net
- Melden Sie sich mit den zuvor notierten Anmeldedaten an.
Schritt 7: Sicherheitsmaßnahmen
- Aktivieren Sie eine Firewall (z. B.
ufw):
sudo apt install ufw -ysudo ufw allow 22sudo ufw allow 80sudo ufw allow 443sudo ufw enable
- 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;
- Ü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!