Sécuriser les transferts avec rrsync

De Adadov.net wiki
Révision datée du 18 septembre 2020 à 08:57 par Adadov (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Ecrit Par : Adadov

Les transferts automatiques vers un serveur posent souvent un problème de sécurité. En effet laisser une clé SSH utilisable sans mot de passe n'est pas la meilleure idée, elle pourrait être détournée si le détenteur était compromis...

Pour corriger ce petit soucis, on peut limiter son usage via le fichier authorized_keys, mais là encore c'est pas suffisant si on autorise rsync... Elle pourrait servir a obtenir des informations sensibles.

Sécuriser rsync avec rrsync

Rrsync permet de limiter le sens de fonctionnement de rsync ainsi que le dossier source/destination.

Le paramètre -wo permet de limiter rsync à l'écriture sur le serveur, aucune lecture des fichiers présents ne sera autorisée.
Le paramètre -ro permet de limiter rsync à la lecture des fichiers présents sur le serveur, aucune écriture ne sera autorisée.

Le dossier spécifié ensuite dans la commande servira de base pour les transferts un peu comme un chroot.

Exemple: Si vous ajouté la commande rrsync -wo /tmp, la commande rsync passwd root@serveur.example.com:/etc/passwd n'écrasera pas le fichier de mot de passe du serveur mais écrira simplement le fichier /tmp/etc/passwd sur le serveur.

Sécuriser la clé SSH avec le fichier authorized_keys

Pour sécuriser l'utilisation de la clé SSH, il suffit d'ajouter quelques informations avant la clé publique. On peut définir une liste d'option obligatoire ainsi qu'une commande si on le souhaite.

Dans notre cas on a ajouté la commande rrsync avec les paramètres appropriés.

command="/usr/share/doc/rsync/support/rrsync [-wo|-ro] <folder>",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa