GNU/Linux >> Linux Esercitazione >  >> Linux

Invia/ricevi ZFS su ssh su Linux senza consentire l'accesso root

Mi sono imbattuto nello stesso problema oggi. Ho scoperto che puoi autorizzare utenti regolari a eseguire determinate operazioni con il comando "zfs allow":

come root, esegui le seguenti operazioni sul server:zfs consenti a tuo_nomeutente di ricevere, creare, montare archiviazione/foto

Successivamente, sarai in grado di accedere al server tramite ssh utilizzando your_username e avrai i privilegi zfs da ricevere. Vedi qui:http://docs.oracle.com/cd/E19253-01/819-5461/gfkco/index .html


Questo non rimuove completamente l'accesso root, ma protegge le cose oltre un accesso completo.

Imposta un trust SSH copiando la chiave pubblica dell'utente locale (di solito ~/.ssh/id_rsa.pub ) nel file authorized_keys (~/.ssh/authorized_keys ) per l'utente remoto. Ciò elimina le richieste di password e migliora la sicurezza poiché le chiavi SSH sono più difficili da applicare alla forza bruta. Probabilmente vuoi anche assicurarti che sshd_config ha PermitRootLogin without-password -- questo limita gli accessi root remoti alle sole chiavi SSH (anche la password corretta fallirà).

Puoi quindi aggiungere sicurezza usando il ForceCommand direttiva nel file authorized_keys per consentire solo l'esecuzione del comando zfs.


@analog900 è sulla strada giusta.

Una chiave per una maggiore sicurezza, incluso evitare la necessità di accessi root, è utilizzare la struttura di autorizzazioni integrata di ZFS e anche strutturare i trasferimenti di backup al contrario e tirare i tuoi backup sulla rete, invece di spingerli. La capacità di eseguire il backup dei filesystem senza accesso root è uno dei principali risultati di progettazione del filesystem ZFS.

Esegui il lavoro su destination ed estrai i dati da source , forse qualcosa come:

  • Sulla fonte computer, creare un account utente non privilegiato foo e usa zfs allow per dare a quell'account la possibilità di creare e inviare istantanee:
    zfs allow foo mount,snapshot,send,hold storage/photos
  • Sulla destinazione macchina, crea un account non privilegiato bar e dai a quell'account la possibilità di ricevere/creare/montare filesystem:
    zfs allow bar mount,create,receive storage/photos
  • A destinazione, come utente bar , creare una chiave ssh specifica per i processi di backup. Installa la metà pubblica di quella chiave nel .ssh directory dell'utente foo sulla macchina di origine. Questo dà all'utente [email protected] proteggere l'accesso tramite login ssh al [email protected] account. Inoltre, modifica il file ~bar/.ssh/config su destination in modo che utilizzi automaticamente il nome file della chiave SSH corretto (che hai creato in precedenza) e il nome utente:
    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

Per farlo in questo modo è necessario no qualsiasi accesso root.


Linux
  1. Invia comandi a più sessioni SSH con Terminator

  2. Abilita l'accesso root SSH su Debian Linux Server

  3. Accesso SSH al server RHEL 7 senza password

  4. Consenti l'accesso root ssh sul server Linux Ubuntu 14.04

  5. Consentire l'esecuzione automatica dei comandi come root su Linux utilizzando SSH

Come eseguire i comandi Linux su un sistema remoto su SSH

Come estendere la partizione radice XFS senza LVM in Linux

Come configurare l'accesso SSH senza password in Linux con chiavi

Come disabilitare l'accesso SSH a un utente specifico in Linux

HOWTO:eseguire Linux su Android senza root

Come disabilitare l'accesso SSH per l'utente root in Linux?