Je recommanderais que vous utilisiez simplement le compte root en premier lieu. Si vous le configurez comme ceci:
- Configurez votre
sshd_config
sur la machine cible pour PermitRootLogin without-password
.
- À utiliser
ssh-keygen
sur la machine qui extrait la sauvegarde pour créer une clé privée SSH (uniquement si vous ne possédez pas déjà de clé SSH). Ne définissez pas de phrase secrète. Google un tutoriel si vous avez besoin de détails pour cela, il devrait y en avoir beaucoup.
- Ajoutez le contenu de
/root/.ssh/id_rsa.pub
la machine de sauvegarde à la /root/.ssh/authorized_keys
de votre machine cible.
- Désormais, votre machine de sauvegarde a un accès root sur votre machine cible, sans avoir à utiliser l'authentification par mot de passe.
alors la configuration qui en résulte devrait être assez sûre.
sudo
, surtout en combinaison avec ce NOPASSWD
qui est recommandé dans les commentaires, ne présente aucun avantage en matière de sécurité par rapport à l’utilisation du compte root. Par exemple cette suggestion:
ajoutez ce qui suit dans votre /etc/sudoers
fichier:rsyncuser ALL= NOPASSWD:/usr/bin/rsync
donne essentiellement les rsyncuser
autorisations de la racine quand même. Tu demandes:
@MartinvonWittich Facile d'obtenir un shell root complet car rsync
exécuté avec sudo
? Marche [m] e [à travers] cela s'il vous plaît.
Eh bien, simple. Avec la configuration recommandée, rsyncuser
peut maintenant être exécuté en rsync
tant que root sans même avoir à demander un mot de passe. rsync
est un outil très puissant pour manipuler des fichiers, a donc maintenant rsyncuser
un outil très puissant pour manipuler des fichiers avec des autorisations root. Trouver un moyen d'exploiter cela ne m'a pris que quelques minutes (testé sur Ubuntu 13.04, nécessite dash
, bash
n'a pas fonctionné):
martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::
Comme vous pouvez le constater, je me suis créé un shell racine; whoami
identifie mon compte en tant que root, je peux créer des fichiers /etc
et lire /etc/shadow
. Mon exploit était de définir le bit setuid sur le dash
binaire; cela oblige Linux à toujours exécuter ce binaire avec les permissions du propriétaire, dans ce cas-ci root.
Avoir une vraie racine n'est pas [recommandé] pour de bonnes raisons. - redanimalwar Il y a 15 heures
Non, travailler maladroitement autour du compte root dans des situations où il est tout à fait approprié de l'utiliser n'est pas pour de bonnes raisons. Ceci est juste une autre forme de programmation culte de cargaison - vous ne comprenez pas vraiment le concept derrière sudo vs root, vous appliquez aveuglément la croyance "la racine est mauvaise, la sudo est bonne" parce que vous l'avez lu quelque part.
D'une part, il y a des situations où il sudo
est vraiment le bon outil pour le travail. Par exemple, lorsque vous travaillez de manière interactive sur un poste de travail Linux graphique, supposons Ubuntu, alors l’utilisation sudo
est acceptable dans les rares cas où vous avez parfois besoin d’un accès root. Ubuntu a intentionnellement un compte root désactivé et vous oblige sudo
par défaut à empêcher les utilisateurs de toujours utiliser le compte root pour se connecter. Lorsque l'utilisateur souhaite simplement utiliser, par exemple, un navigateur Web, il peut être dangereux de se connecter en tant que root. et, par conséquent, ne pas avoir de compte root par défaut empêche les personnes stupides de le faire.
D’autre part, il existe des situations telles que la votre, dans lesquelles un script automatisé requiert des autorisations root sur quelque chose, par exemple pour effectuer une sauvegarde. Maintenant, sudo
travailler avec le compte root est non seulement inutile, mais aussi dangereux: à première vue, il rsyncuser
ressemble à un compte ordinaire non privilégié. Mais comme je l’ai déjà expliqué, il serait très facile pour un attaquant d’obtenir un accès complet à la racine s’il l’avait déjà fait rsyncuser
. En gros, vous avez maintenant un compte root supplémentaire qui ne ressemble pas du tout à un compte root, ce qui n’est pas une bonne chose.
root
compte en premier lieu.sudo
, spécialement combiné avec ceNOPASSWD
qui est recommandé dans les commentaires, n’améliore pas vraiment la sécurité de votre machine.