Permissões de backup para todo o sistema de arquivos

4

Aqui está o skinny: Eu tenho um Linode VPS que eu quero fazer backup para o meu laptop local via rsync. Acabei de gerar chaves ssh para a comunicação e deixei uma senha em branco para a chave privada para que eu possa rsync via cron sem se preocupar com senhas.

Para segurança extra, também neguei logins ssh de root. Idealmente eu gostaria de fazer backup de tudo de / para baixo, mas isso simplesmente não é possível usando um usuário regular, a menos que eu dê acesso rwx a um usuário específico para tudo.

Qual é a melhor maneira de fazer backup de um sistema de arquivos inteiro via rsync sem permitir logins root?

    
por user970638 10.01.2013 / 10:19

3 respostas

1

Use a conta root: Somente o uid 0 pode ler todo o sistema de arquivos.

Agora, como você deseja melhorar a segurança, veja o que você pode fazer:

  • Desabilitar a raiz para login com senha via ssh (PermitRootLogin sem senha na configuração sshd).
  • Use a autenticação de chave para backups.

De acordo com man 5 sshd_config :


"     PermitRootLogin
             Specifies whether root can log in using ssh(1).  The argument
             must be ''yes'', ''without-password'', ''forced-commands-only'',
             or ''no''.  The default is ''yes''.

             If this option is set to ''without-password'', password
             authentication is disabled for root.

             If this option is set to ''forced-commands-only'', root login
             with public key authentication will be allowed, but only if the
             command option has been specified (which may be useful for taking
             remote backups even if root login is normally not allowed).  All
             other authentication methods are disabled for root.

             If this option is set to ''no'', root is not allowed to log in."

Nunca tentei o parâmetro "forced-commands-only", mas parece interessante.

    
por 10.01.2013 / 10:55
1

Você pode executar o rsync no modo daemon no servidor remoto e fazer backup da partição / pasta desejada usando o seguinte comando no lado do cliente:

rsync -au rsync://[email protected]:/folder /path/to/dest

No entanto, você precisa do seguinte:

  1. Execute o rsync no modo daemon no servidor remoto.
  2. Você precisa ter a porta 873 aberta entre você e o servidor remoto.
  3. Você precisa definir o módulo [folder] no servidor remoto em /etc/rsyncd.conf .

Para lidar com a parte de segurança / criptografia, você pode configurar algum túnel ou VPN. Por exemplo, você pode configurar o SSH de encapsulamento usando o seguinte comando:

sudo ssh -L 873:your.server.ip.addr:873 [email protected]

Uma vez que o túnel é estabelecido, você pode usar o rsync localmente e a conexão será encaminhada para o servidor remoto através do túnel.

rsync -au rsync://user@localhost:/folder /path/to/dest

Neste caso, você não precisa ter a porta 873 aberta ao público, pois a conexão é sintonizada via SSH na porta 22.

    
por 10.01.2013 / 11:00
0

Que tal colocar o usuário no grupo raiz?

Eu acredito que o grupo raiz será capaz de ler outros arquivos, semelhantes ao root.

    
por 10.01.2013 / 10:48