Maschinenraum/cp.uugrn.org

Aus UUGRN
Zur Navigation springen Zur Suche springen

```text

cp.uugrn.org

Bereich Wert
URL https://cp.uugrn.org
Sandbox https://sandboxcp.uugrn.org
Betriebssystem Debian 13.6 (Trixie)
CryptPad v2026.5.1
nginx 1.30.4
Node.js 24.18.1
Installation /home/cryptpad/cryptpad
Benutzer cryptpad

CryptPad dient zur verschlüsselten gemeinsamen Bearbeitung von Dokumenten. Der öffentliche Zugriff erfolgt über nginx. CryptPad selbst ist nur über Loopback erreichbar.

Betrieb

Dienste

  • CryptPad: systemctl status cryptpad
  • nginx: systemctl status nginx
  • SSH: systemctl status ssh
  • nftables: systemctl status nftables
  • Fail2ban: systemctl status fail2ban
  • Fehlerhafte Dienste: systemctl --failed

CryptPad:

  • Starten: systemctl start cryptpad
  • Stoppen: systemctl stop cryptpad
  • Neustarten: systemctl restart cryptpad
  • Log: journalctl -u cryptpad -f

nginx:

  • Konfiguration prüfen: nginx -t
  • Neu laden: systemctl reload nginx

CryptPad-Diagnose:

SSH

Administrativer Benutzer: adminBenutzer

Anmeldung:

  • ssh -4 -i ~/.ssh/ssh-rsa-private-4096-key adminBenutzer@cp.uugrn.org
  • anschließend sudo -i

SSH-Härtung:

  • direkter Root-Login deaktiviert
  • Passwort-Login deaktiviert
  • ausschließlich Public-Key-Authentifizierung
  • Zugriff nur für Mitglieder der Gruppe sshusers
  • LoginGraceTime 30
  • MaxAuthTries 3
  • MaxStartups 10:30:30
  • PerSourceMaxStartups 3

Prüfung:

  • sshd -t
  • sshd -T

Netzwerk und Firewall

Port Dienst
22/tcp SSH
80/tcp HTTP
443/tcp HTTPS

CryptPad lauscht intern auf Loopback, unter anderem auf Port 3000 und 3003.

nftables:

  • Konfiguration: /etc/nftables.conf
  • Regeln: nft list ruleset
  • Tabellen: nft list tables

Standardrichtlinien:

  • INPUT DROP
  • FORWARD DROP
  • OUTPUT ACCEPT

Fail2ban schützt zusätzlich den SSH-Dienst.

  • Konfiguration: /etc/fail2ban/jail.d/sshd.local
  • 4 Fehlversuche innerhalb von 10 Minuten
  • Sperrdauer 1 Stunde
  • Status: fail2ban-client status sshd

Nach einem Neustart von nftables auch Fail2ban neu starten:

  1. systemctl restart nftables
  2. systemctl restart fail2ban

Updates

Debian-Sicherheitsupdates werden automatisch über unattended-upgrades installiert.

Manuell aktualisiert werden:

  • normale Debian-Updates
  • Node.js
  • nginx
  • CryptPad

Automatische Neustarts sind deaktiviert.

Prüfung:

  • apt update
  • apt list --upgradable
  • unattended-upgrade --dry-run

Neustartbedarf:

  • test -f /var/run/reboot-required && cat /var/run/reboot-required

CryptPad aktualisieren

Vor jedem Update die Release Notes der Zielversion lesen und ein Backup erstellen.

  1. Wartung ankündigen
  2. /root/sichercp
  3. systemctl stop cryptpad
  4. su - cryptpad
  5. cd /home/cryptpad/cryptpad
  6. git fetch --depth 1 origin tag VERSION
  7. git checkout VERSION
  8. npm ci
  9. npm run install:components
  10. ./install-onlyoffice.sh
  11. exit
  12. systemctl start cryptpad

Danach prüfen:

Zusätzlich Anmeldung, Pads, Datei-Upload und OnlyOffice testen.

Backup

Backup-Skript:

  • /root/sichercp

Backup-Verzeichnis:

  • /root/backups/

Aufbewahrung:

  • 180 Tage

Gesichert werden insbesondere:

  • data/
  • datastore/
  • block/
  • blob/
  • config/config.js
  • customize/
  • onlyoffice-conf/
  • nginx-Konfiguration
  • SSH-Konfiguration
  • nftables
  • Fail2ban
  • APT-Konfiguration
  • systemd-Konfiguration
  • Paket- und Versionsinformationen

Nicht gesichert werden reproduzierbare Daten:

  • .git/
  • node_modules/
  • www/
  • OnlyOffice-Distribution

Aktuelle Backupgröße: etwa 133 MB.

Backup erstellen:

  • /root/sichercp

Backups anzeigen:

  • ls -lh /root/backups/

Hinweis: Die Backups liegen derzeit ausschließlich lokal auf dem Server. Gegen einen vollständigen Verlust der VM besteht damit kein Schutz.

Restore

Backup testweise entpacken:

  1. BACKUP=$(ls -1t /root/backups/cp-backup-*.tar.gz | head -1)
  2. mkdir -p /root/restore-test
  3. tar --acls --xattrs --numeric-owner -C /root/restore-test -xzf "$BACKUP"

Nach der Kontrolle:

  1. rm -rf /root/restore-test

Notfall-Restore

Bei vollständigem Serververlust:

  1. Debian 13 installieren
  2. Node.js 24 und nginx installieren
  3. passende CryptPad-Version installieren
  4. npm-Abhängigkeiten und OnlyOffice installieren
  5. CryptPad stoppen
  6. Daten aus dem Backup zurückspielen
  7. Besitzer cryptpad:cryptpad prüfen
  8. Serverkonfiguration wiederherstellen
  9. Dienste starten
  10. CryptPad vollständig testen

Wichtige Pfade

Bereich Pfad
CryptPad /home/cryptpad/cryptpad
Konfiguration /home/cryptpad/cryptpad/config/config.js
Anpassungen /home/cryptpad/cryptpad/customize/
nginx /etc/nginx/
SSH /etc/ssh/
Firewall /etc/nftables.conf
Fail2ban /etc/fail2ban/
Backup-Skript /root/sichercp
Backups /root/backups/

Regelmäßige Kontrolle

  • Dienste: systemctl --failed
  • Ports: ss -lntup
  • Firewall: nft list ruleset
  • Fail2ban: fail2ban-client status sshd
  • Updates: apt list --upgradable
  • Speicherplatz: df -h
  • Warnungen: journalctl -p warning..alert --since today

Dokumentation

```