Rsync - Configurando o usuário rsync e suas permissões

Rsync - Configurando o usuário rsync e suas permissões

Estarei configurando o rsync entre dois servidores web. Meu objetivo é fazer backup dos dados do meu servidor primário no secundário, caso o servidor primário trave. Minha pergunta está relacionada à configuração de uma conta de usuário no servidor primário para fins de rsync.

Por razões óbvias, não quero usar minha conta de usuário “root” aqui. Portanto, pretendo configurar outra conta que será usada apenas para fins de rsync. Pelo que entendi, esse usuário precisará de permissões de leitura para todos os arquivos que precisarei transferir (configuração do Apache, arquivos Linux do usuário, www-data).

Qual a melhor forma de configurar essas permissões? Devo conceder privilégios de root ao usuário rsync ou existe alguma maneira mais segura de criar um usuário para esse backup?

Responder1

Se a rede que conecta os dois servidores for segura (por exemplo, uma rede local no seu escritório), você poderá usar o rsync no modo daemon para conectar-se como root. Dessa forma você não usa ssh para fazer a conexão.

No sistema secundário, crie um arquivo /etc/rsyncd.confcom o seguinte conteúdo:

[all]
  path = /
  read only = no
  uid = 0
  gid = 0
  hosts allow = primary-host
  auth users = backupuser
  secrets files = /etc/rsyncd.secrets
  exclude = /tmp/ /var/tmp/ /var/cache/ /proc/ /sys/ /dev/ /run/ /boot/

Agora crie um arquivo /etc/rsyncd.secretscom, por exemplo:

backupuser:thisisasecretpassword

Torne o arquivo legível apenas pelo root:

# chown root /etc/rsyncd.secrets; chmod 400 /etc/rsyncd.secrets

Agora você precisa garantir que o rsync seja iniciado como um daemon; isso depende da sua distribuição, com o Debian você edita /etc/default/rsynce altera a RSYNC_ENABLElinha para RSYNC_ENABLE=truee executa /etc/init.d/rsync start(se estiver executando o systemd, execute systemctl enable rsync; systemctl start rsync).

Agora você pode executar o rsync no host primário e enviar o que for necessário para replicar para o secundário, por exemplo:

# rsync -ai /var/www/ backupuser@secondary-host::all/var/www/

O Rsync solicitará a senha secreta neste caso.

informação relacionada