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).