Neues Dokument erstellen

Der Titel Ihres Dokuments (wird als H1 angezeigt)
URL-freundlicher Name (keine Leerzeichen, Bindestriche verwenden)
Pfad, unter dem das Dokument erstellt werden soll (optional, verwenden Sie Schrägstriche, um Unterverzeichnisse zu erstellen)

Dokument verschieben/umbenennen

Aktueller Speicherort des Dokuments
Neuer Pfad für das Dokument (einschließlich des Slugs)
Dies ändert nur den Pfad des Dokuments und nicht den Titel des Dokuments (H1-Überschrift).

Dokument löschen

Sind Sie sicher, dass Sie dieses Dokument löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.

Warnung: Wenn dies ein Ordner ist, wird der gesamte Inhalt einschließlich Unterordner und Dokumente gelöscht.

Message

Message content goes here.

Confirm Action

Are you sure?

Anhänge

Erlaubte Dateitypen: jpg, jpeg, png, gif, svg, webp, txt, log, csv, sfd, zip, pdf, docx, xlsx, pptx, mp4 (Max: 10MB)

Dokumentdateien

Angehängte Dateien werden geladen...

Dokumentverlauf

Frühere Versionen

Loading versions...

Vorschau

Wählen Sie eine Version zur Vorschau

Wiki-Einstellungen

Sprache für die Benutzeroberfläche
Anzahl der zu speichernden Versionen pro Dokument. Auf 0 setzen, um die Versionierung zu deaktivieren.
Maximal erlaubte Dateigröße für Uploads in MB.

Benutzerverwaltung

Neuen Benutzer hinzufügen

Leer lassen, um das aktuelle Passwort beizubehalten
Benutzer in diesen Gruppen können auf eingeschränkte Bereiche zugreifen.

Definieren Sie pfadbasierte Zugriffsregeln für Bereiche Ihres Wikis. Regeln werden in der Reihenfolge ausgewertet. Die erste Übereinstimmung gewinnt.

Aktive Regeln

Markdown-Dateien aus einem ZIP-Archiv importieren. Dateien werden verarbeitet und in der entsprechenden Dokumentstruktur gespeichert. Die Verzeichnisstruktur in der ZIP-Datei (Kategorie/Unterkategorie) wird im Wiki beibehalten.

Laden Sie ein ZIP-Archiv hoch, das Markdown-Dateien (.md) zum Importieren enthält.

Erstellen und verwalten Sie Backups Ihrer Wiki-Daten. Backups umfassen alle Dokumente, Bilder und Konfigurationsdateien.

Verfügbare Backups

Lade Backups...

Zugriffsregel hinzufügen/bearbeiten

Ausgewählt: /

Spalte hinzufügen

Borgmatic auf QNAP

Borgmatic (als einfach zu bedienender Wrapper um Borg) betreibt man auf einem QNAP am besten in einem Container - entsprechende Guides stehen auf der Borgmatic-Seite zur Verfügung.

Ist der Backup-Server jedoch dezentral (was er ja sein sollte) und per VPN verbunden, entsteht in Verbindung mit den Einschränkungen bei Netbird eine etwas vertrackte Situation: eine outgoing-Verbindung vom QNAP zum Backup-Server ist nicht möglich und ein Pull- statt Push-Backup geht zwar irgendwie bei Borg, aber wirklich vorgesehen ist es dafür auch nicht.

Container-Setup

Repo-Management

Backup via Jump-Host

Da die Backups mit Borg eh über SSH laufen, ist die Lösung hierfür ein Jump-Host. Da ich über verschiedene VPS (z.B. den "Netbird-Server") verfüge, die direkt über das Internet erreichbar sind und gleichzeitig im Netbird-VPN verbunden sind, nutze ich diesen als Jump-Host und route die Verbindung zum Backup-Server darüber - letztlich ist der beschränkende Faktor beim Backup eh mein lokaler Upload. Als Grundlage für das Setup diente der Guide von milkandhoney - der vollständigen Dokumentation halber mein Vorgehen:

$ groupadd --system sshjump
$ _random_password=$( openssl rand -base64 48 )
$ useradd --comment "SSH Jump Client" --system \
          --password "$_random_password" \
          --user-group --groups sshjump \
          --no-create-home --shell /bin/false jumper

To be fair: ob der Teil mit dem Random-Passwort notwendig war oder nicht, weiß ich nicht - er hat mir nicht wehgetan ;-) Den folgenden Teil des Guides bezüglich dem Jail habe ich weggelassen, da dieser die Auflösung des VPN-DNS verhindert - ob es da eine elegantere Lösung gibt, ist eine tiefere Betrachtung sicherlich noch wert.

Den public key für den Jump-Host habe ich in der /etc/ssh/authorized_keys/jumper hinterlegt. SSH-Hardening mache ich bereits beim initialen Ansible-Setup des Systems, sodass ich nur den Match-Teil für die sshjump-Gruppe in der /etc/ssh/sshd_config hinterlegt habe:

# --------------------------------------------------
# Restrictions for Client just junping through here
# --------------------------------------------------

Match Group sshjump

    # Allow SSH agent forwarding
    AllowAgentForwarding yes

    # Allow StreamLocal (Unix-domain socket) forwarding
    # Needed for SSH connections multiplexing from the client to the jump host
    AllowStreamLocalForwarding yes

    # TCP port forwarding is necessary for the SSH jump host functionality
    AllowTcpForwarding yes

    # Authorized keys file outside of the user's home directory and chroot
    AuthorizedKeysFile /etc/ssh/authorized_keys/%u

    # Don't allow file system access
    # ChrootDirectory /var/jail # auskommentiert, da kein jail

    # Don't allow ports forwarded back to the client, being accessible by other
    # clients
    # GatewayPorts no

    # Don't allow ports forwarded back to the client at all
    PermitListen none

    # Don't allow clients to access any terminals
    PermitTTY no

    # Don't allow clients to create (VPN) tunnels
    # PermitTunnel no

    # Don't allow user-defined environment files on the jump host
    # PermitUserEnvironment no

    # Don't allow execution of user-defined startup files on the jump host.
    PermitUserRC no

    # Remove any existing Unix-domain socket file for local or remote port
    # forwarding before creating a new one. The default is no.
    StreamLocalBindUnlink yes

    # Don't allow X11 forwarding
    # X11Forwarding no

Nach einem Neustart des SSH-Servers sudo systemctl restart sshd muss nur noch die <Container-Basedir>/borgmatic/ssh (im Container als /root/.ssh gemounted) angepasst werden:

# On top of the file - This is how we connect to our jump host
Host jump.example.net
    User jumper
    ForwardAgent yes
    
# At the end of the file -  Use the jump host, for all our netbird hosts,
# except for the jump host itself. 
Match host !jump.example.net,*.your-netbird.url 
   ProxyJump jump.example.net

Auf diesem Weg kann auch auf dem QNAP-Host die "ganz normale" Netbird-URL als Server-URL des Backup-Servers genutzt werden.

Der erste run sollte manuell ausgeführt werden - oder man muss noch auf seine known_hosts aufpassen.

Angehängte Dateien

Angehängte Dateien werden geladen...

Kommentare

Noch keine Kommentare. Seien Sie der Erste, der kommentiert!

Suchergebnisse