
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.conf
com 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.secrets
com, 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/rsync
e altera a RSYNC_ENABLE
linha para RSYNC_ENABLE=true
e 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.