rsnapshot um servidor remoto - melhor prática para permissões

1

Estou tentando configurar o login com base em ssh para um servidor remoto para o rsnapshot diariamente. A chave que estou usando é uma chave de usuário normal, mas obviamente não tem acesso root, portanto, quando o rsnapshot se conecta ao servidor com a chave de usuário, não será feito o backup do / root, por exemplo. Qual é a melhor maneira de configurar o rsnapshot da maneira mais simples possível? Devo apenas criar um usuário de backup normal e adicioná-lo ao grupo wheel e acabar com ele?

    
por J. Doe 20.07.2017 / 16:03

1 resposta

2

Uma maneira talvez não tão simples é se conectar como root , mas limitar a chave usada para conectar-se a apenas executar invocações específicas de rsync ; isso requer uma entrada /root/.ssh/authorized_keys ao longo das linhas de

 from="192.0.2.*",command="/root/limit-rsnap" ssh-rsa AAAAB3N...

que limita a origem esperada do backup (isso pode não ser ideal para todas as configurações) e, mais importante, o script /root/limit-rsnap no sistema que está sendo conectado somente chamadas específicas para rsync são permitidas:

#!/bin/bash

shopt -s extglob

test -n "$SSH_ORIGINAL_COMMAND" || exit 1

case "$SSH_ORIGINAL_COMMAND" in
  'rsync --server --sender -'+([vnlHogDtprRxe.isfLS])' --numeric-ids . '*)
    RSYNCPATH="${SSH_ORIGINAL_COMMAND#rsync --server --sender -+([vnlHogDtprRxe.isfLS]) --numeric-ids . }"
    test -e "$RSYNCPATH" && exec $SSH_ORIGINAL_COMMAND || exit 1
    ;;
  *)
    exit 1
  ;;
esac
    
por 20.07.2017 / 16:39

Tags