Opinião: Permissões: Escreve mas não lê para fins de segurança?

7

Eu tenho vários sistemas conectados e estou procurando configurar um servidor separado para backups incrementais e completos.

Para evitar também a perda de todos os sistemas / backups no caso de um deles ficar comprometido, estou pensando em tornar isso um tipo de caso de caixa suspensa, com um compartilhamento somente de gravação montado em cada sistema para o qual os backups são enviados. .

Eu pretendo que, caso algo seja atacado, o backup possa ser exposto ou enviado ao sistema afetado por meio de um compartilhamento somente leitura recém-criado e restaurado a partir daí - mas o próprio sistema não pode ser acessado .

Um de nossos concorrentes recentemente perdeu todo o seu negócio porque até mesmo os backups deles estavam conectados - então eles não tinham nada para restaurar.

Também baixarei backups completos em intervalos adequados.

Por favor, insira buracos no meu plano.

Obrigado.

    
por edooze 12.09.2016 / 10:52

3 respostas

19

  

Por favor, insira buracos no meu plano.

Claro. Apenas remover a leitura não evita problemas. Qualquer tentativa de modificar requer permissões de gravação. Um invasor ainda pode gravar o arquivo vazio (ele só precisa saber onde o arquivo está).

Por que não bloquear qualquer item desse disco em relação a backups, exceto para acrescentar novos dados?

Configuração possível:

/backups/20160911/backup.tar.gz
/backups/20160912/backup.tar.gz
/backups/20160913/backup.tar.gz

Crie um script que faça

chattr -R +a /backups/
chattr -R +i /backups/*.tar.gz

+i significa "imutável"; nada pode ser feito para esses arquivos ou diretórios. Nem mesmo o root pode alterá-lo (isso inclui remover, editar, escrever, adicionar novos arquivos, qualquer coisa). Até o root precisa remover isso (com -i ) antes que o root possa fazer algo com esses arquivos.

+a significa "acrescentar"; Mesmas regras que -i com 1 exceção. Ninguém tem permissão para qualquer alteração no arquivo ou diretório exceto adicionar a ele . E novamente: mesmo o root precisa remover isso (com -a ) antes que o arquivo ou diretório possa ser alterado onde a mudança não está anexando coisas a ele.

(acima pode precisar de alguns ajustes. 1 grande arquivo de backup pode ser ehm não é a melhor abordagem. Algo com sub-diretórios e arquivos pode ser melhor. Então, isso precisaria de um ajuste para essas duas linhas: por exemplo diretórios e fazer "hoje" manualmente quando o backup é feito. Então isso se torna

chattr -R +i /backups/{not_today}
chattr -R +a /backups/{today}

Esse script é executado em intervalos, portanto, se a qualquer momento alguém alterar algo dentro de /backups/ , isso redefinirá as permissões de todos os backups.

Diretórios e arquivos podem ser adicionados a "hoje" e após o backup ser feito, você pode adicionar o + i manualmente. Crie uma boa senha de administrador e ninguém, mas o administrador vai tocar nesses arquivos. Sempre.

A propósito: considere também armazenar backups on-line. Nós temos nossos backups em várias instâncias do google (temos 3 sistemas ativos em 3 continentes que compartilham os dados, cada um criando uma instância de fallback em outro continente e aqueles que compartilham um sistema de backup).

    
por Rinzwind 12.09.2016 / 11:32
4

Remova a permissão read dos arquivos ou diretórios que você deseja que não sejam lidos.

As permissões são:

u - Owner
g - group
o - others

Desative a leitura para todos e para todos que você deseja ter acesso de gravação.

$ chmod -R ugo-r [path]

O diretório [path] e todos os seus arquivos e subdiretórios terão este atributo. Nesse caso, o -r (sem acesso de leitura).

    
por L. D. James 12.09.2016 / 11:06
3

Nada é tão seguro quanto os backups desconectados. Faça o download de seus backups em uma unidade externa e desconecte-a da rede depois de copiar o backup nela. Obtenha um número de unidades e gire-as.

Por exemplo, compre 5 unidades de 1 TB (custo total & lt; US $ 300). Atribuir 3 deles como backups diários; cada dia conecte um e copie o backup nele, depois diconnect. Atribua um como backup semanal e um como mensal e faça o mesmo.

Guarde algumas das unidades em um segundo local em caso de incêndio ou roubo.

Essa abordagem protege você contra muitas ameaças diferentes de perda de dados.

Se o seu sistema é todo baseado em servidor, use um equivalente na nuvem. Configure alguns servidores em provedores diferentes (amazon, google, azure). Diariamente conecte-se a outro servidor e transfira seu backup para esse servidor e então desconecte-o. Mantenha várias cópias para que você não faça o backup de uma boa cópia.

No entanto, nada é tão inacessível quanto uma cópia física que você desconecta de qualquer rede e mantém em um local externo.

    
por Thoma 13.09.2016 / 02:30