GNU/Linux >> LINUX-Kenntnisse >  >> Linux

ZFS sendet/empfangt über ssh unter Linux, ohne Root-Anmeldung zuzulassen

Ich bin heute auf das gleiche Problem gestoßen. Ich habe festgestellt, dass Sie normale Benutzer autorisieren können, bestimmte Operationen mit dem Befehl "zfs allow" auszuführen:

Führen Sie als Root Folgendes auf dem Server aus:zfs erlauben Sie Ihrem_Benutzernamen, Speicher/Fotos zu empfangen, zu erstellen, bereitzustellen

Danach können Sie mit Ihrem_Benutzernamen per SSH auf den Server zugreifen und ZFS-Berechtigungen erhalten. Siehe hier:http://docs.oracle.com/cd/E19253-01/819-5461/gfkco/index .html


Dadurch wird die Root-Anmeldung nicht vollständig entfernt, aber es werden Dinge gesichert, die über eine Anmeldung mit vollem Funktionsumfang hinausgehen.

Richten Sie eine SSH-Vertrauensstellung ein, indem Sie den öffentlichen Schlüssel des lokalen Benutzers kopieren (normalerweise ~/.ssh/id_rsa.pub ) in die Datei „authorized_keys“ (~/.ssh/authorized_keys ) für den entfernten Benutzer. Dies eliminiert Passwortabfragen und verbessert die Sicherheit, da SSH-Schlüssel schwerer durch Bruteforce zu erzwingen sind. Sie möchten wahrscheinlich auch sicherstellen, dass sshd_config hat PermitRootLogin without-password -- dies beschränkt Remote-Root-Anmeldungen nur auf SSH-Schlüssel (selbst das richtige Passwort schlägt fehl).

Sie können dann Sicherheit hinzufügen, indem Sie ForceCommand verwenden Direktive in der Datei „authorized_keys“, um nur die Ausführung des zfs-Befehls zuzulassen.


@analog900 ist auf dem richtigen Weg.

Ein Schlüssel zu erhöhter Sicherheit, einschließlich der Vermeidung der Notwendigkeit von Root-Anmeldungen, besteht darin, die integrierte Berechtigungsstruktur von ZFS zu verwenden und Ihre Sicherungsübertragungen auch umgekehrt zu strukturieren und zu ziehen Ihre Backups über das Netzwerk, anstatt sie zu pushen. Die Fähigkeit, Dateisysteme ohne Root-Zugriff zu sichern, ist eine der wichtigsten Designleistungen des ZFS-Dateisystems.

Führen Sie den Job auf destination aus und ziehen Sie die Daten aus source , vielleicht so etwas wie:

  • Auf der Quelle erstellen Sie ein nicht privilegiertes Benutzerkonto foo und verwenden Sie zfs allow um diesem Konto die Möglichkeit zu geben, Snapshots zu erstellen und zu senden:
    zfs allow foo mount,snapshot,send,hold storage/photos
  • Am Ziel erstellen Sie ein nicht privilegiertes Konto bar und geben Sie diesem Konto die Fähigkeit, Dateisysteme zu empfangen/erstellen/mounten:
    zfs allow bar mount,create,receive storage/photos
  • Am Ziel, als Benutzer bar , erstellen Sie einen SSH-Schlüssel speziell für Sicherungsjobs. Installieren Sie die öffentliche Hälfte dieses Schlüssels im .ssh Verzeichnis des Benutzers foo auf der Quellmaschine. Dies gibt dem Benutzer [email protected] Sicherer SSH-Login-Zugriff auf [email protected] Konto. Bearbeiten Sie außerdem die Datei ~bar/.ssh/config auf destination damit es automatisch den korrekten SSH-Schlüsseldateinamen (den Sie zuvor erstellt haben) und Benutzernamen verwendet:
    Host source
       Hostname FQDN.of.source.example.com
       User foo
       IdentityFile ~bar/.ssh/backup_key_id_rsa
    dt=$(date +%Y-%m-%d_%H-%M-%S)
    ssh source "zfs snap storage/[email protected]_$dt"
    ssh source "zfs send -R storage/[email protected]_$dt" | zfs receive storage/photos

Um es auf diese Weise zu tun, ist nein erforderlich Root-Zugriff.


Linux
  1. SSH-Anmeldung beim RHEL 7-Server ohne Passwort

  2. SSH-Root-Anmeldung auf dem Ubuntu 14.04-Linux-Server zulassen

  3. So richten Sie die SSH-Anmeldung ohne Passwort ein

  4. Erlauben der automatischen Befehlsausführung als root unter Linux mit SSH

  5. ZFS als Root-Dateisystem auf neuer Linux-Maschine?

So führen Sie Linux-Befehle auf einem Remote-System über SSH aus

So erweitern Sie die XFS-Root-Partition ohne LVM in Linux

So richten Sie die passwortlose SSH-Anmeldung unter Linux mit Schlüsseln ein

So deaktivieren Sie die SSH-Anmeldung für einen bestimmten Benutzer in Linux

HOWTO:Führen Sie Linux auf Android ohne Root aus

Wie deaktiviere ich die SSH-Anmeldung für den Root-Benutzer in Linux?