YannStatic
  • Etiquettes
  • Liens
  • Aide

rsync-a-distance-sans-acces-root

  • cli
  •  25 déc.  2019 23 nov.  2018
Afficher/cacher Sommaire

Rsync à distance sans accès root

Lorsque vous faites une sauvegarde avec rsnapshot, vous avez besoin d’accéder aux fichiers du serveur. Seul l’utilisateur root peut avoir accès à tous les dossiers sans restriction. Toutefois pour des raisons de sécurité il ne faut pas laisser l’accès SSH à l’utilisateur root. Nous allons donc voir une méthode de contournement avec un utilisateur que nous allons appeler backupuser.

Sauvegarde Linux distant sans accès root, en utilisant rsync

  • Backup remote Linux hosts without root access, using rsnapshot
  • rsnapshot : Backup d’un serveur distant par un utilisateur non root

L’astuce principale est de mettre backupuser en sudoers sur un hôte distant afin de permettre l’accès root à rsync ,exemple

  • shuttle = “serveur de sauvegarde”
  • yanfi.net = “hôte distant”

On utilise cron pour planifier les sauvegardes

serveur de sauvegarde (shuttle)

Création utilisateur backupuser et jeu de clé ssh
sudo adduser backupuser #mot de passe à saisir
Cette commande va vous demander plusieurs informations et notamment un mot de passe à noter impérativement. N’hésitez pas à définir un mot de passe compliqué, d’environ 16 caractères avec des chiffres, des lettres majuscule/minuscule et quelques caractères spéciaux car vous n’aurez à le taper réellement qu’une fois.

Création dossier .ssh sudo mkdir /home/backupuser/.ssh/ Modifier les droits sudo chown backupuser. -R /home/backupuser/.ssh/ sudo chmod 644 -R /home/backupuser/.ssh/ On se connecte en backupuser sudo su backupuser ssh-keygen -t rsa chmo 400 id_rsa* #lecture seule pour utilisateur backupuser exit # retour sur utilisateur précédent

Copier la clé publique sur l’hôte distant (yanfi.net) $ sudo cat /home/backupuser/.ssh/id_rsa.pub # copier le contenu de la clé

hôte distant

Opérations suivantes à faire sur tous les hôtes

Vérifier ou installer rsync sudo apt install rsync # debian Ajout utilisateur de backupuser qui ne peut exécuter que rsync et de la clé publique du “serveur de sauvegarde” #création utilisateur backup sudo useradd backupuser -c "limited backup user" -m -u 4210 #ajout clé publique ssh dans le fichier authorized_keys du nouvel utilisateur sudo mkdir /home/backupuser/.ssh sudo mv id_rsa.pub /home/backupuser/.ssh/authorized_keys #(debian)

ou

sudo nano /home/backupuser/.ssh/authorized_keys #coller le contenu /home/backupuser/.ssh/id_rsa.pub copié sur terminal du serveur </code> Création script bash rsync-wrapper.sh sudo nano /home/backupuser/rsync-wrapper.sh Contenu du script <file | rsync-wrapper.sh> #!/bin/sh

date > /home/backupuser/backuplog #echo $@ » /home/backupuser/backuplog /usr/bin/sudo /usr/bin/rsync “$@”; </file> Droits sur le fichier sudo chown backupuser:backupuser /home/backupuser/rsync-wrapper.sh sudo chmod 755 /home/backupuser/rsync-wrapper.sh

Edition fichier sudoers pour un accès root à l’exécution de rsync sudo -s Ajouter ligne suivante en fin de fichier,exécution en mode root de rsync echo “backupuser ALL=NOPASSWD: /usr/bin/rsync” » /etc/sudoers

<WRAP center round info 60%> Vous devez copier le fichier rsync-wrapper.sh et modifier le fichier sudoers sur tous les hôtes </WRAP>

PRÉCÉDENTrspamd-dovecot
SUIVANTseahorse-gnome-keyring_owncloud-nextcloud-client
Recherche