Escreva uma vez, leia muitos (WORM) usando o sistema de arquivos Linux

8

Eu tenho um requisito para gravar arquivos em um sistema de arquivos Linux que não pode ser substituído, anexado, atualizado de alguma forma ou excluído. Não por um sudo-er, raiz ou qualquer um. Estou tentando atender aos requisitos dos regulamentos de serviços financeiros para manutenção de registros, FINRA 17A-4, que basicamente exige que os documentos eletrônicos sejam gravados em dispositivos WORM (escreva uma vez, leia muitos). Eu gostaria muito de evitar ter que usar DVDs ou dispositivos caros do EMC Centera.

Existe um sistema de arquivos Linux ou o SELinux suporta o requisito de que os arquivos sejam imutáveis imediatamente (ou pelo menos em breve) após a gravação? Ou alguém está ciente de uma maneira que eu poderia impor isso em um sistema de arquivos existente usando permissões do Linux, etc?

Entendo que posso definir permissões somente leitura e o atributo imutável. Mas é claro que espero que um usuário root seja capaz de desfazer isso.

Eu considerei armazenar dados em pequenos volumes que são desmontados e depois remontados somente para leitura, mas eu acho que o root ainda pode desmontar e remontar como gravável novamente.

Estou à procura de ideias inteligentes e, na pior das hipóteses, estou disposto a fazer uma pequena codificação para "aprimorar" um sistema de arquivos existente para fornecer isso. Supondo que exista um sistema de arquivos que seja um bom ponto de partida. E colocar em prática um servidor Linux cuidadosamente configurado para atuar como esse tipo de dispositivo de armazenamento em rede, sem fazer mais nada.

Depois de tudo isso, a criptografia nos arquivos também seria útil!

    
por phil_ayres 25.10.2013 / 23:08

4 respostas

1

Parece que não há como fazer isso sem escrever código do sistema de arquivos / kernel personalizado.

Uma solução viável parece ser usar o Amazon Glacier com a opção de armazenamento em arquivo WORM. De acordo com o blog oficial da AWS em: link

[...] a new Glacier feature that allows you to lock your vault with a variety of compliance controls that are designed to support this important records retention use case. You can now create a Vault Lock policy on a vault and lock it down. Once locked, the policy cannot be overwritten or deleted. Glacier will enforce the policy and will protect your records according to the controls (including a predefined retention period) specified therein.

You cannot change the Vault Lock policy after you lock it. However, you can still alter and configure the access controls that are not related to compliance by using a separate vault access policy. For example, you can grant read access to business partners or designated third parties (as sometimes required by regulation).

Para mim, isso fornece exatamente o que é necessário sem a despesa de hardware da NetApp ou EMC, embora pareça atender aos requisitos de retenção de registros.

    
por 02.11.2015 / 20:16
2

Você pode fazer isso com o OpenAFS e volumes somente leitura. É muita infraestrutura para instalar, no entanto, para que funcione e pode não atender aos requisitos.

link

Basicamente, há um volume gravável e uma ou mais cópias somente leitura do volume. Até você liberar o volume gravável, as cópias somente leitura são imutáveis para os clientes. Liberar o volume requer privilégios de administrador.

Parece que qualquer solução exigiria hardware especializado ou um sistema de arquivos de rede que duplica a semântica de hardware especializado.

    
por 26.10.2013 / 05:07
0

Se você simplesmente precisar acessar arquivos de um sistema no qual os usuários não podem sobrescrevê-los, você poderá montar um volume remoto no qual não tem permissão de gravação. A maneira mais fácil de fazer isso é montar um compartilhamento samba / cifs somente leitura.

Caso contrário, se você precisar de uma maneira de permitir que os usuários gravem novos arquivos (que não podem ser sobrescritos ou modificados), uma solução é montar um caminho FTP com o curlftpfs do FUSE.

Você pode definir seu diretório proftpd com estas diretivas:

AllowOverwrite off
<Limit WRITE>
  DenyAll
</Limit>
<Limit STOR>
  AllowAll
</Limit>

Desta forma, novos arquivos podem ser armazenados no diretório montado, mas eles não podem mais ser modificados ou removidos.

links: CurlFtpFS , ProFTPD

    
por 11.01.2014 / 19:51
0

Essa é uma variação do problema " backup infalível " e a única maneira de implementá-lo é com vários sistemas de arquivos worm remotos que usam e compartilham somas de verificação e não têm acesso físico ou administrativo compartilhado. Isso garante que tudo seja gravado uma vez, duplicado, com integridade comprovada e no caso de um único bloco ser apagado, alterado ou corrompido, recuperável.

O Plan9 ou seus derivados podem implementar todos os recursos necessários. Consulte Plan9 e Venti

    
por 28.03.2018 / 00:40