Maschinenraum/cp.uugrn.org

Aus UUGRN
Zur Navigation springen Zur Suche springen

cp.uugrn.org

Bereich

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

    • TOC**

Betrieb

Wichtige Dienste:

  • CryptPad: systemctl status cryptpad
  • nginx: systemctl status nginx
  • SSH: systemctl status ssh
  • Firewall: 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 anzeigen: journalctl -u cryptpad -f

nginx:

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

Diagnose:

SSH

Administrativer Benutzer: adminBenutzer

Anmeldung:

Härtung:

  • direkter Root-Login deaktiviert
  • Passwort-Login deaktiviert
  • ausschließlich Public-Key-Authentifizierung
  • SSH 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

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

nftables:

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

Standardrichtlinien:

  • INPUT DROP
  • FORWARD DROP
  • OUTPUT ACCEPT

Zusätzlich erlaubt sind Loopback, bestehende Verbindungen, ICMP, ICMPv6 und DHCPv4.

Fail2ban

Konfiguration:

  • /etc/fail2ban/jail.d/sshd.local

SSH-Jail:

  • 4 Fehlversuche innerhalb von 10 Minuten
  • Sperrdauer 1 Stunde
  • Backend systemd
  • Sperren über nftables
  • DNS-Auflösung deaktiviert

Status:

  • fail2ban-client status sshd

nftables enthält normalerweise:

  • table inet filter
  • table inet f2b-table

Nach einem manuellen Neustart von nftables:

  1. systemctl restart nftables
  1. systemctl restart fail2ban

Updates

Debian-Sicherheitsupdates werden automatisch mit unattended-upgrades installiert.

Nicht automatisch aktualisiert werden:

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

Automatische Neustarts sind deaktiviert.

Manuelle Kontrolle:

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

Neustart erforderlich:

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

CryptPad aktualisieren

Vor einem Update:

  1. Release Notes lesen.
  1. Wartung ankündigen.
  1. Backup mit /root/sichercp erstellen.
  1. CryptPad stoppen.
  1. Update durchführen.
  1. CryptPad starten.
  1. Funktion prüfen.

Update:

  1. systemctl stop cryptpad
  1. su - cryptpad
  1. cd /home/cryptpad/cryptpad
  1. git fetch --depth 1 origin tag VERSION
  1. git checkout VERSION
  1. npm ci
  1. npm run install:components
  1. ./install-onlyoffice.sh
  1. exit
  1. systemctl start cryptpad

Anschließend 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:

  • 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

Backup starten:

  • /root/sichercp

Backups anzeigen:

  • ls -lh /root/backups/

Die Backups liegen derzeit nur lokal auf dem Server. Gegen einen vollständigen Verlust der VM besteht damit noch kein Schutz.

Restore

Backup testweise entpacken:

  1. BACKUP=$(ls -1t /root/backups/cp-backup-*.tar.gz | head -1)
  1. mkdir -p /root/restore-test
  1. 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.
  1. Node.js 24, nginx und CryptPad in passender Version installieren.
  1. npm-Abhängigkeiten und OnlyOffice installieren.
  1. CryptPad stoppen.
  1. CryptPad-Daten aus dem Backup zurückspielen.
  1. Besitzer cryptpad:cryptpad prüfen.
  1. Serverkonfiguration wiederherstellen.
  1. Dienste starten.
  1. CryptPad vollständig testen.

Wichtige Pfade

Bereich

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