Usando o rsync para fazer backup dos arquivos do Windows Server 2008 R2 para o Ubuntu, usando o plink para SSH

1

Estou tentando configurar o rsync para fazer backup de arquivos em uma caixa do Windows Server 2008 R2 em uma caixa do Ubuntu. Todos os dados (sem teste) devem ser criptografados.

Consegui fazê-lo funcionar usando apenas o rsync, recebendo a data da porta 873, mas estou tendo problemas para usar o plink também.

Aqui está minha configuração:

Ubuntu

rsyncd.conf:

log file = /var/log/rsync.log
[ukwindb1backup]
   path = /home/ukwindb1/rsync
   comment = Backup
   uid = ukwindb1
   gid = ukwindb1
   use chrott = true
   read only = false
   auth users = ukwindb1
   secrets file = /etc/rsyncd.secrets

O deamon do Rsync foi iniciado e há uma conta "ukwindb1", com uma chave pública SSH para autenticação. Todo o tráfego SSH está em uma porta diferente, não 22.

A senha para "ukwindb1", armazenada no arquivo rsyncd.secrets, não é a mesma que para a conta do Ubuntu (embora as senhas estejam desabilitadas para o login SSH).

Windows Server

Eu tenho o cygwin instalado e consegui fazer o rsync funcionar, usando este arquivo em lote:

rsync.exe -qrtz --password-file=/home/Administrator/secret --delete "/cygdrive/c/Backups" ukwindb1@[removed-ip]::ukwindb1backup
pause

Eu também tenho os programas Putty instalados e quero usar o plink para conectar ao outro servidor, para que eu possa usar o Pageant para gerenciar minhas chaves com senha.

Eu tentei esse arquivo em lote para me conectar ao servidor SSH usando plink e funcionou bem:

plink -ssh -P [removed-port] -l ukwindb1 -i C:\ukwindb1.ppk [removed-ip]
pause

Agora, quando experimentei esse arquivo em lotes para colocar os dois juntos, ele falhou:

rsync.exe -qrtz -e "plink -ssh -P [removed-port] -l ukwindb1 -i C:\ukwindb1.ppk [removed-ip]" --delete "/cygdrive/c/Backups" ukwindb1@[removed-ip]::ukwindb1backup
pause

Alguma ideia? O que exatamente estou fazendo errado?

Além disso:

Eu realmente preciso do daemon rsync rodando?

Posso especificar um diretório no servidor, do lado do cliente, em vez de ":: ukwindb1backup"?

    
por Lewis Bassett 05.11.2011 / 19:22

1 resposta

1

Eu acho que você pode pular rsyncd e plink inteiramente, reorganizando um pouco sua arquitetura (o que terá outros benefícios).

Acredito que o rsyncd daemon não precise estar em execução para fazer um rsync básico para fins de backup. rsync normalmente apenas se conecta à outra caixa através de SSH, dispara uma instância de rsync no lado mais distante, e os dois rsync s conversam sobre ssh - o daemon rsyncd não está realmente envolvido. rsyncd é normalmente usado para servir conteúdo para download por vários clientes (como um servidor espelho).

Nesta configuração, suponho que a caixa que recebe o backup (a caixa do Ubuntu) é o sistema mais "confiável" (do ponto de vista da segurança) --- não porque seja o Ubuntu, mas porque os servidores de backup naturalmente precisam armazenar dados para vários hosts confidenciais. Como tal, eu recomendaria iniciar a caixa rsync do Ubuntu e definir a relação de confiança de chave para que seja a caixa do Windows que confia na caixa do Ubuntu, e não o contrário. Isso significaria configurar o sshd no Cygwin e bloqueá-lo (com um firewall baseado em host) que apenas as conexões do seu servidor de backup são permitidas.

Você poderia então simplesmente executar:

rsync -qrtz windowsbox:/path/to/files /path/to/ubuntu/backups

... que também demonstra como especificar o diretório no lado servidor.

Como a próxima etapa de solução de problemas, descartaria a tentativa de usar rsyncd , deixando temporariamente de fora a autenticação baseada em chave, como você fez na solução de problemas anterior, e tente um simples rsync (de alguns arquivos de teste) usando autenticação baseada em senha.

Quando a sincronização básica estiver funcionando, você também desejará ver a opção rsync --modify-window , que ignorará o pequeno desvio nos timestamps que pode resultar das diferenças na forma como o Windows e o Unix-likes manipular segundos em registros de data e hora. Caso contrário, os arquivos que poderiam ser ignorados serão copiados várias vezes.

Também recomendo enfaticamente deixar a opção --delete até que você tenha terminado de depurar e testar sua solução. Um erro de digitação e você pode excluir muito mais do que pretendia.

    
por 12.12.2011 / 02:05