Назад | Перейти на главную страницу

Пишите один раз, читайте много (WORM) с использованием файловой системы Linux

У меня есть требование записывать файлы в файловую систему Linux, которые нельзя впоследствии перезаписать, добавить, обновить или удалить. Не с помощью sudo-er, root или кого-либо еще. Я пытаюсь выполнить требования правил финансовых услуг для ведения учета, FINRA 17A-4, которые в основном требуют, чтобы электронные документы записывались на устройства WORM (писать один раз, читать много). Я бы очень хотел избежать использования DVD или дорогих устройств EMC Centera.

Существует ли файловая система Linux или SELinux может поддерживать требование о том, чтобы файлы были полностью неизменными сразу (или, по крайней мере, вскоре) после записи? Или кто-нибудь знает, как я могу применить это к существующей файловой системе, используя разрешения Linux и т.д.?

Я понимаю, что могу установить разрешения только для чтения и неизменяемый атрибут. Но, конечно, я ожидаю, что пользователь root сможет их отключить.

Я рассматривал возможность хранения данных на небольших томах, которые были отключены, а затем перемонтированы только для чтения, но потом я думаю, что root все еще может размонтировать и снова подключить как доступный для записи.

Я ищу любые умные идеи, и в худшем случае я готов немного кодировать, чтобы «улучшить» существующую файловую систему, чтобы обеспечить это. Предполагая, что существует файловая система, это хорошая отправная точка. И установите тщательно сконфигурированный сервер Linux, который будет действовать как сетевое запоминающее устройство этого типа, ничего не делая.

После всего этого было бы полезно шифрование файлов!

Вы можете сделать это с помощью OpenAFS и томов только для чтения. Однако нужно установить много инфраструктуры, чтобы она работала, и она может не соответствовать требованиям.

http://www.openafs.org/

Обычно существует записываемый том и одна или несколько копий тома, предназначенных только для чтения. Пока вы не освободите записываемый том, копии, доступные только для чтения, не могут быть изменены для клиентов. Для освобождения тома требуются права администратора.

Похоже, что для любого решения потребуется либо специализированное оборудование, либо сетевая файловая система, которая дублирует семантику специализированного оборудования.

Похоже, что нет способа сделать это без написания собственного кода файловой системы / ядра.

Жизнеспособным решением является использование Amazon Glacier с архивным хранилищем WORM. Согласно официальному блогу AWS по адресу: https://aws.amazon.com/blogs/aws/glacier-vault-lock/

[...] новая функция Glacier, которая позволяет заблокировать хранилище с помощью различных средств управления соответствием, разработанных для поддержки этого важного варианта использования хранения записей. Теперь вы можете создать политику блокировки хранилища для хранилища и заблокировать его. После блокировки политика не может быть перезаписана или удалена. Glacier будет применять политику и защищать ваши записи в соответствии с указанными в ней элементами управления (включая заранее определенный срок хранения).

Вы не можете изменить политику блокировки Vault после ее блокировки. Однако вы по-прежнему можете изменять и настраивать элементы управления доступом, не связанные с соответствием, с помощью отдельной политики доступа к хранилищу. Например, вы можете предоставить доступ для чтения деловым партнерам или назначенным третьим лицам (как иногда требуется по закону).

На мой взгляд, это обеспечивает именно то, что нужно, без затрат на оборудование NetApp или EMC, но при этом, похоже, соответствует требованиям к хранению записей.

Это вариация на тему "Надежная резервная копия"проблема, и единственный способ ее реализовать - использовать несколько удаленных файловых систем-червей, которые используют и совместно используют контрольные суммы и не имеют общего физического или административного доступа. Это гарантирует, что все будет записано один раз, дублировано, целостность подтверждена, а в случае единственного блок, который стирается, изменяется или повреждается, может быть восстановлен.

Plan9 или его производные могут включать все необходимые функции. Видеть Plan9 и Venti

Если вам просто нужен доступ к файлам из системы, в которой пользователи не могут их перезаписать, вы можете смонтировать удаленный том, на котором у вас нет прав на запись. Самый простой способ сделать это - смонтировать общий ресурс samba / cifs только для чтения.

В противном случае, если вам нужен способ разрешить пользователям записывать новые файлы (которые нельзя перезаписывать или изменять), решение - смонтировать путь FTP с помощью FUSE curlftpfs.

Вы можете установить свой каталог proftpd с помощью следующих директив:

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

Таким образом, новые файлы могут быть сохранены в смонтированном каталоге, но их больше нельзя изменить или удалить.

ссылки: CurlFtpFS, ProFTPD