Como configurar um backup rsync para o Ubuntu com segurança?

7

Tenho acompanhado vários outros tutoriais e postagens de blog sobre como configurar uma máquina Ubuntu como um "servidor" de backup (vou chamá-lo de servidor, mas está apenas executando o desktop do Ubuntu) para o qual envio novos arquivos com o rsync. Agora, eu posso conectar ao servidor do meu laptop usando rsync e ssh com uma chave RSA que eu criei e nenhum prompt de senha quando meu laptop está conectado ao meu roteador doméstico ao qual o servidor também está conectado. Eu gostaria de poder enviar arquivos do meu laptop quando estou longe de casa. Alguns dos tutoriais que eu olhei tiveram algumas sugestões breves sobre segurança, mas não se concentraram neles.

O que preciso fazer para permitir que meu laptop envie arquivos para o servidor sem que seja mais fácil invadir o servidor?

Aqui está o que eu fiz até agora:

  • Executei ssh-keygen e ssh-copy-id para criar um par de chaves para o meu laptop e servidor.

  • Criei um script no servidor para gravar seu endereço IP público em um arquivo, criptografar o arquivo e fazer o upload para um servidor ftp ao qual eu tenha acesso (sei que eu poderia me inscrever para uma conta de DNS dinâmica gratuita para esta parte, mas desde que eu tenho a conta ftp e realmente não preciso fazer o ip publicamente acessível eu pensei que isso poderia ser melhor).

Aqui estão as coisas que vi sugeridas:

  • Encaminhamento de porta: sei que preciso atribuir ao servidor um endereço IP fixo no roteador e, em seguida, instruir o roteador a encaminhar uma porta ou portas para ele. Devo usar apenas a porta 22 ou escolher uma porta aleatória e usá-la?

  • Ligue o firewall (ufw). Isso fará alguma coisa ou meu roteador já bloqueará tudo, exceto a porta que eu quero?

  • Execute o fail2ban.

Todas essas coisas valem a pena? Eu deveria fazer mais alguma coisa? Posso configurar o servidor para permitir conexões somente com a chave RSA (e não com uma senha) ou o fail2ban fornecerá proteção suficiente contra tentativas de conexão mal-intencionadas? É possível limitar os tipos de conexões que o servidor permite (por exemplo, apenas ssh)?

Espero que isso não seja muitas perguntas. Eu sou bem novo no Ubuntu (mas uso os scripts shell e bash no OSX). Eu não preciso ter a configuração mais segura absoluta. Eu gostaria de algo que seja razoavelmente seguro sem ser tão complicado que poderia facilmente quebrar de uma maneira que seria difícil para mim corrigir.

    
por ws_e_c421 17.12.2012 / 16:08

1 resposta

6

Ok, acho que você está tentando arquitetar um pouco. O SSH é um dos protocolos de transferência de arquivos mais seguros e, se você já está rsyncing sobre o ssh, seus 90% estão lá. Seu roteador está agindo como um firewall básico, portanto, você não precisa ativar o iptables para um servidor de backup pessoal.

Cole a porta 22. Isso tornará a vida muito mais fácil.

O fail2ban é um bom script para servidores públicos, especialmente onde logins baseados em senha são ativados. No seu servidor, ele vai causar mais problemas e, em seguida, corrigirá. Eu não recomendaria executá-lo. Aqui estão minhas sugestões:

  • Siga em frente e obtenha o IP dinâmico, ele ficará mais fácil e, no momento em que você for viajar, seu script de ftp falhará por algum motivo realmente estranho. Basicamente, KISS.
  • Desativar logins de senha para ssh. Em / etc / sshd_config, altere PasswordAuthentication yes para PasswordAuthentication no e verifique se challengeresponse está definido como no . Isso vai impedir qualquer um sem sua chave privada de fazer login.

Outro então que é praticamente coberto por padrão. O ssh criptografa o tráfego e verifica o host / cliente. Não sobrou muito depois disso.

    
por coteyr 17.12.2012 / 16:35