Viết một lần, đọc nhiều (WORM) bằng hệ thống tệp Linux


8

Tôi có yêu cầu ghi tệp vào hệ thống tệp Linux mà sau đó không thể ghi đè, gắn vào, cập nhật theo bất kỳ cách nào hoặc bị xóa. Không phải bởi một sudo-er, root, hoặc bất cứ ai. Tôi đang cố gắng đáp ứng các yêu cầu của quy định dịch vụ tài chính để lưu trữ hồ sơ, FINRA 17A-4, về cơ bản yêu cầu các tài liệu điện tử được ghi vào các thiết bị WORM (viết một lần, đọc nhiều). Tôi rất muốn tránh phải sử dụng DVD hoặc các thiết bị EMC Centera đắt tiền.

Có một hệ thống tệp Linux, hoặc SELinux có thể hỗ trợ yêu cầu cho các tệp được hoàn thành bất biến ngay lập tức (hoặc ít nhất là sớm) sau khi viết không? Hoặc có ai biết về cách tôi có thể thực thi điều này trên một hệ thống tệp hiện có bằng quyền Linux, v.v.?

Tôi hiểu rằng tôi có thể đặt quyền chỉ đọc và thuộc tính không thay đổi. Nhưng tất nhiên tôi hy vọng rằng một người dùng root sẽ có thể hủy đặt những cái đó.

Tôi đã cân nhắc việc lưu trữ dữ liệu vào các khối lượng nhỏ không được đếm và sau đó chỉ đọc lại, nhưng sau đó tôi nghĩ rằng root vẫn có thể ngắt kết nối và ghi lại như có thể ghi lại được.

Tôi đang tìm kiếm bất kỳ ý tưởng thông minh nào và trường hợp xấu nhất tôi sẵn sàng thực hiện một chút mã hóa để 'nâng cao' một hệ thống tệp hiện có để cung cấp điều này. Giả sử có một hệ thống tập tin là một điểm khởi đầu tốt. Và đặt một máy chủ Linux được cấu hình cẩn thận để hoạt động như loại thiết bị lưu trữ mạng này, không làm gì khác.

Sau tất cả điều đó, mã hóa trên các tập tin cũng sẽ hữu ích!


4
Những gì bạn đang yêu cầu không thể được thực hiện. Nếu bạn có quyền truy cập root vào máy, bạn có thể thực hiện các thao tác cấp khối trực tiếp trên đĩa. Vì vậy, không có vấn đề gì về hệ thống tập tin ở trên cùng, bạn không thể bảo vệ bất cứ thứ gì từ root, bạn chỉ có thể làm chậm nó hoặc làm cho nó tối nghĩa đến mức có vẻ an toàn.
Regan

Sau khi đọc bản giải thích của SEC sec.gov/rules/interp 432-47806.htm tôi sẽ đồng ý với @Regan. Tuy nhiên, toàn bộ điều này là hơi vô lý. Ví dụ, làm thế nào để xóa một CD? Với lửa, tất nhiên.
Đánh dấu Wagner

Tôi hoàn toàn đồng ý rằng các yêu cầu là 'hơi vô lý'. Họ đang cố gắng làm cho nó rõ ràng đến mức đã có một nỗ lực che giấu sự thật rằng không có anh chàng IT nào đồng ý làm những gì một người thực thi không tốt đang yêu cầu. Đánh vào xóa trên một thư mục lớn là root rõ ràng là quá dễ dàng đối với ai đó. Sự hủy diệt vật lý trở thành cách duy nhất để che đậy mọi thứ trong các quy tắc của SEC.
phil_ayres

chattr + i tên tệp, bạn cần đưa ra lệnh này mỗi khi bạn tạo tệp
c4f4t0r

@ c4f4t0r không dừng lại: chattr -i filenamesau đó rm
phil_ayres

Câu trả lời:


2

Bạn có thể sắp xếp làm điều này với OpenAFS và khối lượng chỉ đọc. Đó là rất nhiều cơ sở hạ tầng để cài đặt để làm cho nó hoạt động tuy nhiên và có thể không đáp ứng các yêu cầu.

http://www.openafs.org/

Về cơ bản, có một tập có thể ghi và một hoặc nhiều bản sao chỉ đọc của tập. Cho đến khi bạn giải phóng khối lượng có thể ghi, các bản sao chỉ đọc là không thể thay đổi cho khách hàng. Phát hành âm lượng đòi hỏi đặc quyền quản trị viên.

Có vẻ như bất kỳ giải pháp nào cũng cần có phần cứng chuyên dụng hoặc hệ thống tệp mạng trùng lặp ngữ nghĩa của phần cứng chuyên dụng.


Liệu OpenAFS thực sự ngăn chặn root ghi vào ổ đĩa chỉ đọc. Tôi không thể tìm thấy một định nghĩa dứt khoát trong các tài liệu.
phil_ayres

Nó chắc chắn ngăn chặn root trên máy khách ghi vào khối lượng ro. Nói chung, root không ngụ ý bất kỳ quyền đặc biệt nào trong OpenAFS.
Fred the Magic Wonder Dog

1

Dường như không có cách nào để làm điều này mà không cần viết mã hệ thống / kernel tùy chỉnh.

Một giải pháp khả thi dường như là sử dụng Amazon Glacier với tùy chọn lưu trữ lưu trữ WORM. Theo Blog chính thức của AWS tại: https://aws.amazon.com/bloss/aws/glacier-vault-lock/

[...] một tính năng Glacier mới cho phép bạn khóa kho tiền của mình bằng nhiều điều khiển tuân thủ được thiết kế để hỗ trợ trường hợp sử dụng lưu giữ hồ sơ quan trọng này. Bây giờ bạn có thể tạo chính sách Khóa Vault trên kho tiền và khóa nó. Sau khi khóa, chính sách không thể được ghi đè hoặc xóa. Glacier sẽ thực thi chính sách và sẽ bảo vệ hồ sơ của bạn theo các điều khiển (bao gồm cả thời gian lưu giữ được xác định trước) được chỉ định trong đó.

Bạn không thể thay đổi chính sách Khóa Vault sau khi khóa. Tuy nhiên, bạn vẫn có thể thay đổi và định cấu hình các điều khiển truy cập không liên quan đến tuân thủ bằng cách sử dụng chính sách truy cập vault riêng. Ví dụ: bạn có thể cấp quyền truy cập đọc cho các đối tác kinh doanh hoặc bên thứ ba được chỉ định (đôi khi được yêu cầu theo quy định).

Đối với tôi, điều này cung cấp chính xác những gì cần thiết mà không phải trả chi phí cho phần cứng NetApp hoặc EMC, trong khi dường như đáp ứng các yêu cầu duy trì hồ sơ.


Không có sự khác biệt logic từ giải pháp của tôi. Quản trị viên máy chủ, trong trường hợp này là Amazon, vẫn có thể xóa hoặc giả mạo một số hoặc tất cả các tệp. Sự khác biệt duy nhất ở đây là nhà cung cấp lưu trữ tệp ...?
nrc

Bạn có chính xác trong giả định của bạn rằng nhà cung cấp lưu trữ là sự khác biệt thực sự. Với một quản trị viên máy chủ nội bộ, cơ quan quản lý tin rằng họ có thể bị thao túng bởi một người cao cấp hơn trong cùng một tổ chức để xóa hoặc thay đổi hồ sơ. Tất nhiên, bạn có thể yêu cầu ai đó ở Amazon phá hủy mọi thứ, nhưng giả định là sẽ có một dấu vết giấy và có nhiều khả năng một yêu cầu bất ngờ sẽ bị từ chối. Không hoàn toàn tốt như ký quỹ chính thức, nhưng trách nhiệm riêng biệt cung cấp nhiều sự bảo vệ cần thiết.
phil_ayres

1
Bạn vẫn có thể xóa các tập tin bằng cách ngừng trả tiền cho việc lưu trữ.
Tomas Zubiri

0

Nếu bạn chỉ cần truy cập các tệp từ một hệ thống trong đó người dùng không thể ghi đè lên chúng, bạn có thể gắn một ổ đĩa từ xa mà bạn không có quyền ghi. Cách dễ nhất để làm điều này là gắn kết một chia sẻ samba / cifs chỉ đọc.

Mặt khác, nếu bạn cần một cách để cho phép người dùng viết các tệp mới (không thể ghi đè hoặc sửa đổi), một giải pháp là gắn đường dẫn FTP với FUSE curlftpfs.

Bạn có thể đặt thư mục proftpd của mình với các chỉ thị sau:

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

Theo cách này, các tệp mới có thể được lưu trữ trong thư mục được gắn, nhưng chúng không thể được sửa đổi hoặc loại bỏ nữa.

liên kết: CurlFtpFS , ProFTPD


Tôi hiểu những gì bạn đang nói, và nó dường như là một lựa chọn. Nhưng nếu tôi là quản trị viên của máy chủ tệp, tôi có thể xóa mọi thứ. Mục đích là để ngăn chặn ngay cả quản trị viên (ít nhất là những người không có quyền truy cập vào ổ đĩa vật lý) xóa các tệp.
phil_ayres

Máy chủ FTP hoạt động như một thiết bị WORM giá rẻ. Nhưng có, quản trị viên của máy chủ FTP từ xa có thể truy cập các tệp và thay đổi chúng. Một giải pháp là ký vào tệp khi tạo, với hệ thống khóa bất đối xứng, để ngăn chặn bất kỳ quản trị viên hệ thống nào có thể gây rối với các tệp. Quản trị viên vẫn có thể xóa các tệp nhưng không thể sửa đổi tệp nữa mà không được chú ý.
nrc

Thật không may, chỉ cần ký vào tệp để chứng minh (thiếu) giả mạo là không đủ theo quy định của SEC. Do đó câu hỏi về việc làm cho các tập tin hoàn toàn bất biến.
phil_ayres

0

Đây là một biến thể của vấn đề " Sao lưu Infalible " và cách duy nhất để thực hiện nó là với nhiều hệ thống tệp worm từ xa sử dụng và chia sẻ tổng kiểm tra và không có quyền truy cập vật lý hoặc quản trị. Điều này đảm bảo mọi thứ được ghi một lần, trùng lặp, có thể chứng minh tính toàn vẹn và trong trường hợp một khối bị xóa, thay đổi hoặc bị hỏng, có thể phục hồi.

Plan9 hoặc các dẫn xuất của nó có thể bao gồm tất cả các tính năng cần thiết. Xem Plan9Venti

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.