Utilisation Rsnapshot et SSH


Original: http://troy.jdmz.net/rsnapshot/
Touches et configuration
Ce document couvre les détails de la mise en place de la partie SSH d’une sauvegarde de la configuration à distance Rsnapshot automatisé, donc je n’ai pas à réapprendre à faire la prochaine fois.
Exigences
On suppose que le point de départ est une configuration Rsnapshot correctement installé et configuré, vous aurez donc besoin de ces paquets installés:

  •      rsnapshot
  •      rsync
  •      openssh

J’ai terminé ma configuration sur un serveur Red Hat Fedora Core 3, mais je vais essayer de garder cette instruction comme «médicament générique» que possible. Il ya beaucoup qui n’est pas couvert ici en ce qui concerne la configuration de Rsnapshot parce qu’il est couvert si bien dans le HOWTO Rsnapshot. S’il vous plaît passer à connaître et à aimer ce document avant de lire celui-ci.
Une grande partie de ce qui est expliqué ici est expliqué d’une manière plus générale dans un autre document que j’ai écrit sur ​​l’utilisation de Rsync et SSH, mais il dispose d’aucune information spécifique Rsnapshot.
Dans les exemples que je vais être la configuration Rsnapshot que l’utilisateur root sur ​​localhost.example.com de faire des sauvegardes que remoteuser pour remotehost.example.com.
Choisir l’utilisateur root pour exécuter Rsnapshot de localhost.example.com est plus dangereux que d’utiliser un utilisateur non privilégié pour faire la même chose, mais je pense qu’il s’agit de la configuration par défaut (pour quelques bonnes raisons [1]). Choisir l’utilisateur root sur ​​remotehost.example.com serait beaucoup plus dangereux, et doit être évitée autant que possible, je ne vais pas vous connecter en tant que root dans ces exemples.
Création d’une clé SSH sans mot de passe
Création d’une clé SSH sans mot de passe n’est pas quelque chose on doit considérer à la légère. Si vous pouvez utiliser la touche pour se connecter automatiquement et copier les fichiers importants à partir d’un hôte distant (qui est le point de tout cela), le potentiel existe pour les autres à le faire aussi. Envisager sérieusement si vous voulez supporter le risque que cela implique, et de protéger la clé de tous les yeux si vous le faites.
Pour générer la clé sans mot de passe SSH, utilisez cette commande ou quelque chose comme ça (en utilisant “man ssh-keygen ‘comme guide):
[[email protected] ~]# ssh-keygen -t dsa -b 2048 -f /root/cron/localhost-rsnapshot-key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]
Your identification has been saved in /root/cron/localhost-rsnapshot-key.
Your public key has been saved in /root/cron/localhost-rsnapshot-key.pub.
The key fingerprint is:
2e:28:d9:ec:8d:21:e7:ff:73:df:2e:0a:78:fb:d0:a0 [email protected]
et les deux fichiers seront créés dans les endroits mentionnés ci-dessus [2]. La clé publique (celle avec l’extension de fichier ‘.pub ») sera copié remotehost.example.com et inséré dans un fichier authorized_keys (que l’appartenance à remoteUser, en particulier), comme on peut le voir ici. Le fichier de clé privée sera utilisée pour établir la connexion SSH depuis localhost.example.com, et est la clé qui exige la plus grande sécurité.
Faire un hôte SSH entrées de la configuration
Dans un fichier de configuration de SSH, vous pouvez créer une étiquette de texte pour une connexion, et affecter différentes options de configuration pour elle, sans interfereing avec les options définies pour les autres connexions. Le fichier par défaut pour racine sur localhost.example.com est /root/.ssh/config. Créer le fichier s’il n’existe pas déjà, et ajoutez la ligne suivante à la fin du fichier (en utilisant vos noms d’hôtes et les emplacements des fichiers à la place des exemples de contenu):
Host remotehost-rsnapshot
Hostname remotehost.example.com
IdentityFile /root/cron/localhost-rsnapshot-key
Vous pouvez utiliser ces commandes pour s’assurer que le fichier dispose des autorisations et des contenus corrects (encore une fois, en utilisant vos noms d’hôtes et les emplacements des fichiers):
# if [ ! -d ~/.ssh ]; then mkdir ~/.ssh ; chmod 700 ~/.ssh ; fi
# cd ~/.ssh/
# if [ ! -f config ]; then touch config ; chmod 600 config ; fi
# echo Host remotehost-rsnapshot >> config
# echo Hostname remotehost.example.com >> config

Ces options de configuration s’assurer que la désignation de l’hôte dans le fichier de configuration Rsnapshot va utiliser la bonne clé et n’auront pas passer quelque chose pour ‘ssh’ (via l’option ‘-i’ en ligne de commande) pour s’assurer que l’utilisation du clavier utilisé. La désignation d’accueil »remotehost-rsnapshot ‘peut être utilisé sur la ligne de commande, mais le rsnapshot’ dans le nom doit rappeler futurs éditeurs de fichiers de configuration pour ce l’hôte et la clé sont utilisés.
Ajout de known_hosts

Pour éviter tout problème avec la reconnaissance clé d’hôte interactif, une clé d’hôte pour le remotehost doit être ajouté à known_hosts le dossier de l’initiateur de SSH (habituellement $ HOME / .ssh / known_hosts). Sur un système configuré pour ajouter automatiquement des clés pour known_hosts Lors de la première connexion, après demande à l’utilisateur de le faire, tout ce que vous devez faire est de se connecter au système distant comme l’utilisateur qui sera exécuté Rsnapshot (racine dans ce cas):

[[email protected] ~]# ssh [email protected]
The authenticity of host ‘remotehost.example.com (2.3.4.5)’ can’t be established.
RSA key fingerprint is 34:c1:29:42:67:b3:8d:ad:ba:50:34:d1:ab:d5:9a:aa.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘remotehost.example.com,2.3.4.5’ (RSA) to the list of known hosts.
[email protected]’s password:
Last login: Sun Apr 9 22:21:09 2006 from localhost.example.com
[[email protected] ~]#
Il est important d’ajouter remotehost.example.com le fichier known_hosts pour racine sur localhost.example.com ou Rsnapshot échouera parce que la connexion ne sera pas autorisé jusqu’à ce que la question est résolue. Ce fichier se trouve ici: /root/.ssh/known_hosts. La raison la question est posée est la configuration de SSH option ‘StrictHostKeyChecking “qui est par défaut à« demander »dans de nombreuses installations. Le moyen facile (et moins sûr) d’éviter ce problème consiste à définir «StrictHostKeyChecking ‘à’ no ‘. Cela peut être fait en vertu de la partie «RemoteHost-rsnapshot” du fichier de configuration /root/.ssh/config.
Si les clés d’hôtes SSH doivent être ajoutés au fichier known_hosts manuellement, consultez les pages de manuel, pour ssh et sshd pour avoir des informations de formatage.
Restreindre la clé
Restrictions clés SSH sont faites sur une base per-clé, et ils se trouvent dans le fichier authorized_keys:

from=”10.1.1.1″,command=”/home/remoteuser/cron/validate-rsync” ssh-dss AAAAB3Nza
C1kc3MAAAEBAKYJenaYvMG3nHwWxKwlWLjHb77CT2hXwmC8Ap+fG8wjlaY/9t4uA+2qx9JNorgdrWKhH
SKHokFFlWRj+qk3q+lGHS+hsXuvta44W0yD0y0sW62wrEVegz+JVmntxeYc0nDz5tVGfZe6ydlgomzj1
bhfdpYe+BAwop8L+EMqKLS4iSacNjoPlHsmqHMnbibn3tBqJEq2QJjEPaiYj1iP5IaCuYBhuTKQGa+oy
H3mXEif5CKdsIKBj46B0tCy0/GC7oWcUN92QdLrUyTeRJZsTWsxKpRbMliD2pBh4oyX/aXEf8+HZBrO5
vQjDBCfTFQA+35Xrd3eTVEjkGkncI0SAeUAAAAVAMZSASmQ9Pi38mdm6oiVXD55Kk2rAAABAE/bA402V
uCsOLg9YS0NKxugT+o4UuIjyl6b2/cMmBVWO39lWAjcsKK/zEdJbrOdt/sKsxIK1/ZIvtl92DLlMhci5
c4tBjCODey4yjLhApjWgvX9D5OPp89qhah4zu509uNX7uH58Zw/+m6ZOLHN28mV5KLUl7FTL2KZ583Kr
cWkUA0Id4ptUa9CAkcqn/gWkHMptgVwaZKlqZ+QtEa0V2IwUDWS097p3SlLvozw46+ucWxwTJttCHLzU
mNN7w1cIv0w/OHh5IGh+wWjV9pbO0VT3/r2jxkzqksKOYAb5CYzSNRyEwp+NIKrY+aJz7myu4Unn9de4
cYsuXoAB6FQ5I8AAAEBAJSmDndXJCm7G66qdu3ElsLT0Jlz/es9F27r+xrg5pZ5GjfBCRvHNo2DF4YW9
MKdUQiv+ILMY8OISduTeu32nyA7dwx7z5M8b+DtasRAa1U03EfpvRQps6ovu79mbt1OE8LS9ql8trx8q
yIpYmJxmzIdBQ+kzkY+9ZlaXsaU0Ssuda7xPrX4405CbnKcpvM6q6okMP86Ejjn75Cfzhv65hJkCjbiF
7FZxosCRIuYbhEEKu2Z9Dgh+ZbsZ+9FETZVzKBs4fySA6dIw6zmGINd+KY6umMWyJNej2Sia70fu3XLH
j2yBgN5cy8arlZ80q1Mcy763RjYGkR/FkLJ611HWIA= [email protected]
Il ya 4 champs ici, le tout sur une seule ligne, tous séparés par des espaces: restriction, type clé, texte clé, et la clé de commentaire. À l’origine, lorsque la clé a été générée par “ssh-keygen”, il n’y avait que les trois derniers champs. La première est ajouté sur le devant de limiter ce genre de connexions peut être fait avec cette clé. Deux restrictions sont séparées dans le domaine de la restriction de cet exemple de souligner que le séparateur entre eux est un caractère de virgule (,) et un espace non. Vous ne serez pas en mesure de se connecter avec une clé qui a trop, ou trop peu de champs, à cause d’une touche de ligne mal editted. SSH échouera tout simplement pour authentifier avec cette clé, puis passer et vous demander votre mot de passe [3].
Le “de =” 10.1.1.1 “‘une partie seulement permet des connexions à venir à partir d’un certain adresse IP,” 10.1.1.1 “dans cet exemple. Le “command = / home / remoteuser / cron / valider-rsync” partie exécute la commande uniquement désigné. Cela peut sembler très contraignant, mais vous pouvez écrire le script vous-même et permettre à de nombreuses commandes différentes. Vous avez même la ligne de commande réelle donnée à SSH pour travailler avec la forme de la variable d’environnement $ SSH_ORIGINAL_COMMAND. Un exemple de script se trouve ici: validate-rsync; et d’autres options sont incluses dans les notes environnantes.
Configuration Rsnapshot
Le fichier de configuration Rsnapshot est, par défaut, /etc/rsnapshot.conf. Il contient quelques options de configuration, la plupart d’entre eux dans “l’option [tabulation] valeur” le format. Retirer le caractère ‘commentaire’ (‘de #’) à gauche de l’option ‘cmd_ssh’ de sorte qu’une partie du fichier ressemble à ceci:

# Uncomment this to enable remote ssh backups over rsync.
cmd_ssh /usr/bin/ssh
Vérifiez que la commande ‘ssh’ est l’endroit où le fichier dit qu’il devrait être (avec le ‘qui ssh’ commande).
Faites un peu et assurez-vous que la configuration de l’option ‘ssh_args de est décommentée et contient les éléments suivants [4]:

ssh_args -o BatchMode=yes

La seule raison que je peux voir pour ne pas vouloir le faire est si vous prévoyez d’utiliser Rsnapshot interactive et vous souhaitez fournir des informations d’identification SSH pour certaines connexions. C’est une situation inhabituelle et probablement le meilleur adressée par ‘rsnapshot.conf’ fichier séparé et personnalisé.
Plus bas dans le fichier, insérer une nouvelle ligne «de sauvegarde» qui ressemble à ceci:

backup [email protected]:/usr/local/apache/htdocs/ remotehost/

Notez le ‘RemoteHost-rsnapshot «texte à partir du fichier de configuration SSH, où, normalement, un nom d’hôte serait trouvée.
Pour s’assurer qu’il n’y a pas de Rsnapshot erreurs liées dans le fichier de configuration, exécutez la commande suivante quand Editting est terminée:

# rsnapshot configtest
Syntax OK
La deuxième ligne doit apparaître comme ci-dessus, si tout est correct.
Options de SSH Server
Options du serveur SSH, dans le cadre de cette configuration de Rsnapshot, sont fixés sur remotehost [5]. Le fichier de configuration du serveur SSH se trouve habituellement dans / etc / ssh / sshd_config et contient par défaut la plupart des options de configuration définies à leurs valeurs par défaut et commentées. Ce fichier contrôle les connexions SSH sur le serveur, donc soyez prudent de ne pas «garantir loin” fonctions que vous ou d’autres avez réellement besoin.
PermitRootLogin peut être utilisé pour effectuer une installation de SSH plus sûr dans l’une des deux façons. Lorsqu’il est réglé sur «non»:
PermitRootLogin=no
pas de connexions peuvent être faites en tant qu’utilisateur racine. Lorsque l’option «-commandes forcées seule”:
PermitRootLogin=forced-commands-only
connexions peuvent être faites en tant que root, mais seulement à partir de connexions à l’aide des touches autorisées associées à une commande dans le fichier authorized_keys (comme mentionné ci-dessus).
Les «AllowUsers», «AllowGroups», «DenyUsers», et les mots clés «DenyGroups» peuvent être utilisés pour restreindre l’accès SSH aux utilisateurs et aux groupes particuliers. Elles sont documentées dans la page de manuel de “sshd_config”, mais je vais mentionner que tous peuvent utiliser ‘*’ et ‘?’ que les jokers pour autoriser ou refuser l’accès aux utilisateurs et groupes qui correspondent à des modèles. «AllowUsers» et «DenyUsers» peut également restreindre par l’hôte lorsque le motif est en forme de user @ host.
Vous pouvez créer un groupe appelé sshusers, ajouter seuls les utilisateurs qui lui sont nécessaires, mettre ceci:
AllowGroups sshusers
dans votre fichier / etc / ssh / sshd_config, puis donner à votre serveur SSH un redémarrage et le tester.
Test
Effectuez une sauvegarde toutes les heures pour tester la configuration:

# rsnapshot hourly

Si les choses ne fonctionnent pas, vous pouvez avoir à essayer de lancer un horaire à plusieurs reprises de sauvegarde. Pour éviter de gâcher des sauvegardes de Rsnapshot vous pouvez déjà avoir en place, vous pouvez déplacer le courant horaire de la route avant le test. Supprimer (ou déplacer) chaque test avant de lancer la prochaine afin de ne pas déplacer les sauvegardes horaires normaux. Si vous avez une configuration Rsnapshot longue course, vous pouvez commenter quelques-unes des sauvegardes, ou peut-être utiliser un fichier de configuration de test Rsnapshot tout à fait distincte.
[6]
Notes:
[1] Je pense Rsnapshot est généralement configuré pour s’exécuter en tant qu’utilisateur racine, afin que tous les fichiers, en particulier ceux qui ne sont accessible par l’utilisateur root, sont sauvegardés sans peine. De nombreux problèmes, et une quantité considérable de rigoler, on évite en exécutant Rsnapshot en tant que root.
[2] Le ‘/ / root’ répertoire est le répertoire personnel de l’utilisateur root. Pour utiliser un autre utilisateur, remplacez «/ root / ‘si vous voyez avec l’emplacement de l'(espérons-le) répertoire personnel de l’utilisateur non privilégié (comme« / home / thisuser / »pour l’utilisateur’ thisuser ‘).
[3] Vous pouvez voir ce qui échoue et ce qui réussit lors d’une connexion SSH en utilisant les options de ligne de commande ‘verbose’: ‘v’, ‘-vv », ou« -vvv’ (plus de v qui signifie plus de verbosité).
[4] Merci à Martin Shroder pour cette précision.
[5] Pour affecter les paramètres pour le client SSH sur les changements ‘localhost’ devraient être apportées au fichier ‘de /root/.ssh/config »mentionné ci-dessus, ou si des changements plus globaux sont nécessaires, le« / etc / ssh / ssh_config’ déposer.
[6] Ce document n’est pas vraiment complète, mais nous espérons qu’il pourra être de quelque utilité pour l’instant.

Liens:
Rsnapshot
Rsnapshot HOWTO
Sauvegarde centrale Rsnapshot page
OpenSSH
Rsync
Tutoriel rsync
Fedora Core Linix
Recherche Google
L’utilisation de Rsync et SSH

Comments are closed.