GNU/Linux >> Tutoriels Linux >  >> Linux

ZFS envoie/reçoit sur ssh sous Linux sans autoriser la connexion root

Je suis tombé sur le même problème plus tôt dans la journée. J'ai découvert que vous pouvez autoriser les utilisateurs réguliers à effectuer certaines opérations avec la commande "zfs allow":

en tant que root, procédez comme suit sur le serveur :zfs autorisez votre_nom d'utilisateur à recevoir, créer, monter le stockage/les photos

Ensuite, vous pourrez vous connecter en ssh au serveur en utilisant votre_nom d'utilisateur et vous aurez les privilèges zfs à recevoir. Voir ici :http://docs.oracle.com/cd/E19253-01/819-5461/gfkco/index .html


Cela ne supprime pas complètement la connexion root, mais sécurise les choses au-delà d'une connexion complète.

Configurez une approbation SSH en copiant la clé publique de l'utilisateur local (généralement ~/.ssh/id_rsa.pub ) au fichier authorized_keys (~/.ssh/authorized_keys ) pour l'utilisateur distant. Cela élimine les invites de mot de passe et améliore la sécurité car les clés SSH sont plus difficiles à forcer brutalement. Vous voulez probablement aussi vous assurer que sshd_config a PermitRootLogin without-password -- Cela limite les connexions root à distance aux clés SSH uniquement (même le mot de passe correct échouera).

Vous pouvez ensuite ajouter de la sécurité en utilisant le ForceCommand directive dans le fichier authorized_keys pour autoriser uniquement l'exécution de la commande zfs.


@analog900 est sur la bonne voie.

L'une des clés d'une sécurité accrue, notamment en évitant le besoin de connexions root, consiste à utiliser la structure d'autorisations intégrée de ZFS, ainsi qu'à structurer vos transferts de sauvegarde dans l'autre sens et pull vos sauvegardes sur le réseau, plutôt que de les pousser. La possibilité de sauvegarder des systèmes de fichiers sans accès root est l'une des principales réalisations de conception du système de fichiers ZFS.

Exécuter la tâche sur destination et extrayez les données de source , peut-être quelque chose comme :

  • Sur la source machine, créer un compte utilisateur non privilégié foo et utilisez zfs allow pour donner à ce compte la possibilité de créer et d'envoyer des instantanés :
    zfs allow foo mount,snapshot,send,hold storage/photos
  • Sur la destination machine, créer un compte non privilégié bar et donnez à ce compte la possibilité de recevoir/créer/monter des systèmes de fichiers :
    zfs allow bar mount,create,receive storage/photos
  • À destination, en tant qu'utilisateur bar , créez une clé ssh spécifiquement pour les tâches de sauvegarde. Installez la moitié publique de cette clé dans le .ssh répertoire de l'utilisateur foo sur la machine source. Cela donne à l'utilisateur [email protected] accès sécurisé par connexion ssh au [email protected] Compte. Modifiez également le fichier ~bar/.ssh/config sur destination afin qu'il utilise automatiquement le nom de fichier de clé SSH correct (que vous avez créé précédemment) et le nom d'utilisateur :
    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

Le faire de cette façon nécessite non accès root quel qu'il soit.


Linux
  1. Envoyer des commandes à plusieurs sessions SSH avec Terminator

  2. Activer la connexion racine SSH sur le serveur Debian Linux

  3. Connexion SSH au serveur RHEL 7 sans mot de passe

  4. Autoriser la connexion racine ssh sur le serveur Linux Ubuntu 14.04

  5. ZFS en tant que système de fichiers racine sur une nouvelle machine Linux ?

Comment exécuter des commandes Linux sur un système distant via SSH

Comment étendre la partition racine XFS sans LVM sous Linux

Comment configurer une connexion SSH sans mot de passe sous Linux avec des clés

Comment désactiver la connexion SSH à un utilisateur spécifique sous Linux

HOWTO :Exécuter Linux sur Android sans racine

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?