Tự động sao lưu dự phòng vào ổ đĩa ngoài


8

Lý lịch

Một khách hàng cần một giải pháp sao lưu tự động vào một ổ đĩa ngoài (sẽ được đưa ra ngoài cơ sở hàng tuần). Tôi thường đề xuất rsnapshot (hoặc có thể triển khai một rsynctập lệnh tùy chỉnh ), nhưng câu hỏi này có liên quan nhiều hơn một chút.

Hệ thống dựa trên Arch Linux là không đầu và do đó, giải pháp phải hoàn toàn tự động, không yêu cầu người dùng can thiệp.

Một kịch bản lý tưởng sẽ như sau:

  1. Người dùng cắm vào ổ cứng USB
  2. Một bản sao lưu gia tăng hoàn chỉnh được thực hiện
  3. Ổ cứng không đếm được
  4. Người dùng được thông báo rằng có thể rút ổ cứng

Đề nghị

Giải pháp đề xuất của tôi bao gồm:

  1. Một udevquy tắc tự động gắn ổ đĩa
  2. Việc sao lưu được bắt đầu với:

    1. udevQuy tắc tương tự cũng kích hoạt một rsnapshottập lệnh
    2. Một sự kiện tạo inotify phát hiện điểm gắn kết mới và kích hoạtrsnapshot
  3. Sau khi rsnapshotthoát, umountđược chạy trên ổ đĩa

  4. Những cách có thể để thông báo cho ổ cứng có thể được gỡ bỏ:

    1. Ổ đĩa CD mở
    2. Một âm thanh được phát qua loa PC

Nếu xảy ra lỗi tại bất kỳ thời điểm nào, hãy gửi email cho người dùng và ngắt kết nối ổ đĩa.

Câu hỏi

  1. Đề xuất của tôi có vẻ khả thi nhưng có sai sót rõ ràng? Làm thế nào tôi có thể làm cho nó mạnh mẽ?
  2. Vì mục đích bảo mật, làm thế nào tôi có thể chắc chắn rằng ổ cứng được cắm là của người dùng? sshchìa khóa? Nhãn ổ?
  3. Có các giải pháp (Linux) hiện có bao gồm điều này không?

Câu trả lời:


7

Giải pháp của bạn có vẻ tương đối phù hợp, tuy nhiên:

  • Đảm bảo rằng rsnapshottập lệnh không giả định biết thiết bị khối. Lý tưởng nhất là giải quyết hệ thống tập tin bằng UUID hoặc nhãn của nó để tránh bị tàn sát.
  • Thêm thời gian chờ. Bằng cách này, nếu có sự cố xảy ra mà chúng tôi không biết hoặc điều gì đó khiến tập lệnh không bao giờ kết thúc, nó có thể được xử lý như một lỗi thay vì tiếp tục vô thời hạn.
  • Bạn tuyên bố rằng cuối cùng "[i] f xảy ra lỗi tại bất kỳ thời điểm nào, hãy gửi email cho người dùng và ngắt kết nối ổ đĩa" - điều gì xảy ra nếu nó không thể ngắt kết nối ổ đĩa, hoặc việc ngắt kết nối là nơi nó bị lỗi? Điều gì xảy ra nếu email thất bại? Hãy chắc chắn để xây dựng failafes vào hệ thống của bạn.
  • Để bảo mật cơ bản, UUID sẽ ổn (trừ khi kẻ tấn công có thể có kiến ​​thức về UUID của bạn), tuy nhiên, nếu bảo mật quan tâm hơn, hãy cân nhắc ghi một số dữ liệu vào vùng mã của MBR (byte 0-440) và có kịch bản kiểm tra cho nó trước khi bắt đầu sao lưu. Bạn nên được cảnh báo rằng đây là bảo mật thông qua che khuất hơn bất kỳ điều gì khác, tuy nhiên trong tình huống này tôi không thấy bất kỳ phương pháp dễ dàng có sẵn nào tốt hơn. Tuy nhiên, nếu bạn muốn đi theo con đường đầy đủ, bạn có thể xác định xem ổ đĩa có được ủy quyền hay không bằng cách phân tích chứng chỉ được mã hóa được lưu trữ trên đĩa. Khi nàoudevPhát hiện ổ đĩa, tập lệnh giải mã chứng chỉ bằng khóa của nó. Chứng chỉ chứa các tham số liên quan đến ổ đĩa, chẳng hạn như số sê-ri, số kiểu, dung lượng, v.v. của ổ đĩa, sau đó so sánh các tham số được trích xuất từ ​​chứng chỉ được mã hóa với các tham số nhìn thấy khi phân tích ổ đĩa. Nếu các tham số khớp nhau, ổ đĩa được xác định là xác thực, nếu không ổ đĩa bị từ chối và tập lệnh kết thúc.

Tuy nhiên, có những giải pháp Linux hiện có trong bài nộp này, tuy nhiên, đối với các nhu cầu cụ thể của bạn, tôi nghĩ rằng bạn nên tạo ra một giải pháp bespoke thay vì đấu tranh với nguồn của các chương trình khác để khiến chúng thực hiện những gì bạn muốn.

Để ghi dữ liệu ngẫu nhiên vào vùng mã của MBR, sau đó bạn có thể kiểm tra, hãy làm một cái gì đó như thế nào dd if=/dev/urandom of=/dev/sdX bs=440 count=1.


Cảm ơn Chris. Tôi sẽ không nghĩ về việc sử dụng UUID, điều này giúp đơn giản hóa mọi thứ rất nhiều. Không quan tâm, bạn có thể chia sẻ bất kỳ liên kết của các giải pháp hiện có? Họ có thể cho tôi thêm một số ý tưởng hoặc hữu ích cho các độc giả khác.
tlvince

Tôi nghĩ rằng tôi đã nhớ một số, nhưng tôi không thể tìm thấy chúng bây giờ. Có vẻ như khá thú vị, mặc dù, có lẽ tôi sẽ tự phát triển một cái. Tôi sẽ cho bạn biết.
Chris Xuống
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.