Nesta dica não vou mostrar o funcionamento do
rsync, apenas uma forma de ter mais segurança na hora de usa-lo. A título de conhecimento, recomendo a leitura de vários outros artigos bem completos no próprio VOL.
Descrição da situação:
Como uma boa prática, é recomendado por várias literaturas que não usem o usuário root como login direto, porque desta forma o servidor ficaria mais vulnerável a um ataque.
Muitos administradores não retiram o login de root por usar algum tipo de sincronismo, ou backup, assim, muitos não dão devida importância ao fato e acabam tendo alguns prejuízos futuros.
Solução
Todas as minhas soluções foram testadas com distros
CentOS 6.5 e
Debian 7, onde tenho implementado bloqueio de login de root, SSH, console e auditoria de log.
1. Definir um usuário padrão para rsync, assim todo o sincronismo será realizado apenas por ele, que facilita quando for necessário realizar auditoria dos log e saber qual usuário realizou a ação.
2. Criar uma permissão
sudo para este usuário, apenas da aplicação rsync:
# visudo
rsyncuser ALL= NOPASSWD:/usr/bin/rsync
3. Quando for conectar com o rsync, devo informar o usuário criado junto ao servidor. Para melhorar a segurança, use chaves públicas e privadas DSA ou RSA.
rsync -p -avog --delete-excluded --rsh=ssh --progress --rsync-path="sudo rsync" /diretorio/ rsyncuser@192.168.1.30:/var/www/html/diretorio/
Obs.: desta forma você pode logar como um usuário comum, mas o rsync será como usuário root. A grande vantagem deste método é porque mantenho a minha política de segurança e passo a ter log de qual usuário fez login com rsync.