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
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
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>