Bạn có thể sao lưu một container đã mã hóa như một đối tượng duy nhất, hoặc gắn nó và sao lưu các tệp bên trong. Cả hai đều đi qua VPN một cách dễ dàng, và đó là nơi sự giống nhau kết thúc. Chúng khôi phục những thứ khác nhau, phụ thuộc vào những khóa khác nhau, tốn lượng không gian khác nhau, và thất bại theo những cách khác nhau khi ai đó cần dữ liệu trở lại. Chọn đối tượng khôi phục trước, rồi đến vận chuyển, rồi đến mã hóa của bản sao được lưu. Danh sách dưới đây đi theo thứ tự đó, vì gần như mọi tranh chấp về sao lưu thực chất là bất đồng về việc quyết định nào trong ba quyết định ấy được đưa ra trước.

Hai đối tượng, hai hình thức khôi phục

Bản sao lưu cấp ảnh khôi phục một container: bạn lấy lại ổ đĩa đã mã hóa và vẫn cần vật liệu khôi phục của nó để mở. Bản sao lưu cấp tệp khôi phục tệp và cây thư mục, và bất kỳ mã hóa nào bảo vệ chúng là thuộc tính của kho sao lưu chứ không phải của container gốc. Một bản sao đơn giản vào thư mục từ xa là trường hợp thứ ba, và nó thừa hưởng mức bảo vệ mà thư mục đó tình cờ có.

ObjectWhat a restore gives youWhere the encryption question lands
Encrypted container imageThe volume, still lockedThe container format and its recovery key material
Mounted files into a backup toolSelected files and metadataThe backup repositorys own keys and design
Plain copy to a remote folderWhatever the copy process keptWhatever protects that storage afterwards

Hàng giữa là hàng người ta đọc nhầm. Đó có thể là một thiết kế hoàn toàn tốt: chương trình sao lưu đọc văn bản rõ tại chỗ và ghi một kho đã mã hóa, có xác thực. Khi đó an toàn dựa vào chương trình ấy và thông tin đăng nhập của nó, không dựa vào mật khẩu của container gốc, và không nên mô tả hai thứ đó như cùng một biện pháp kiểm soát.

Kiểm tra 1: việc khôi phục phải dựng lại cái gì?

Hãy đặt câu hỏi theo hình thức khôi phục, không phải sao lưu. Nếu yêu cầu là “đưa dịch vụ này trở lại trên một máy chủ khác”, thì ảnh cùng vật liệu khôi phục của nó là câu trả lời nhất quán. Nếu yêu cầu là “lấy lại bảng tính tài chính của tháng Ba”, thì khôi phục một ảnh vài gigabyte chỉ để trích ra một tệp là câu trả lời đắt đỏ. Cả hai đều là khôi phục hợp lý, và chúng không phải những ngân sách có thể hoán đổi cho nhau. Một kế hoạch chỉ nêu tên một trong hai sẽ sớm muộn bị thử thách bởi cái còn lại.

Ghi mục tiêu khôi phục vào kế hoạch: toàn bộ ổ đĩa, một cây thư mục hay từng tệp riêng lẻ. Sau đó ghi chú những siêu dữ liệu nào phải đi kèm, vì quyền sở hữu, quyền truy cập, thuộc tính mở rộng và mốc thời gian là một phần của khôi phục cấp tệp và thường bị mất trong các quy trình dựa trên sao chép vốn có vẻ đủ khi thử nghiệm.

Cũng cần quyết định ai thực hiện khôi phục. Một kho cấp tệp mà bất kỳ người vận hành nào cũng có thể gắn là mô hình truy cập khác với một ảnh đòi hỏi sự có mặt của người giữ khóa, và không cái nào tự động tốt hơn. Điều quan trọng là lựa chọn được thực hiện có chủ đích và được ghi lại.

Kiểm tra 2: điều gì bảo vệ bản sao được lưu?

VPN bảo vệ một đoạn vận chuyển. Nó không nói gì về bản sao được lưu sau khi quá trình truyền kết thúc, và “nó đã đi qua đường hầm” không phải là phát biểu về khả năng của người vận hành sao lưu trong việc đọc dữ liệu của bạn. Nếu phía từ xa do người khác vận hành, câu hỏi là họ có thể đọc được gì, chứ không phải đường truyền có được mã hóa hay không.

Với một ảnh, điều đó có nghĩa là bảo vệ vật liệu khóa của container tách biệt khỏi chính ảnh. Mất phần đầu là mất ổ đĩa, nên hãy sao lưu phần đầu ở nơi không có ảnh:

cryptsetup luksHeaderBackup /dev/vg0/data --header-backup-file data-header.img
cryptsetup luksDump /dev/vg0/data | head -20

Với một kho cấp tệp, hãy kiểm tra xem công cụ có mã hóa và xác thực nội dung cùng siêu dữ liệu trước khi chúng rời máy chủ hay không, và tìm hiểu ai giữ khóa. Tài liệu thiết kế của Restic nói rõ rằng nó giả định một máy chủ nguồn đáng tin cậy và rằng mã hóa không ngăn ai đó có quyền truy cập kho lưu trữ xóa các bản sao lưu. Cả hai lưu ý đều quan trọng: một kho có thể bí mật và vẫn bị phá hủy.

Kiểm tra 3: bản sao có nhất quán không?

Một bản sao lưu ghi lại hệ thống tệp đang thay đổi là một bản sao, không phải điểm khôi phục. Với một ảnh, hãy dùng phương pháp được hỗ trợ của công cụ ổ đĩa để có ảnh chụp nhanh ổn định, thường có nghĩa là thao tác ảnh chụp nhanh hoặc ngắt gắn, chứ không phải đọc một tệp lớn trong khi nó đang thay đổi:

lvcreate -L 5G -s -n data-snap /dev/vg0/data
cryptsetup open /dev/vg0/data-snap data-snap --readonly

Với các tệp đã gắn, hãy dùng quy trình nhất quán được ứng dụng hỗ trợ cho cơ sở dữ liệu đang hoạt động và dữ liệu phối hợp khác. Một bản sao ở cấp hệ thống tệp và một điểm khôi phục nhất quán với ứng dụng là những mô tả khác nhau, và sự khác biệt chỉ trở nên rõ khi bạn thử khởi động ứng dụng từ bản sao đã khôi phục.

Giữ vật liệu khôi phục trên một tuyến được bảo vệ độc lập. Mất máy gốc không bao giờ được kéo theo việc mất thông tin đăng nhập duy nhất mở bản sao lưu của nó, và đó chính là điều xảy ra khi tệp khóa nằm trên ổ đĩa đang được sao lưu. Hãy thử nghiệm sự tách biệt đó một cách có chủ đích: khôi phục trên một máy chủ chưa từng thấy bản gốc, chỉ dùng những gì kế hoạch nói là có sẵn.

Kiểm tra 4: phát hiện thay đổi có đúng cho đối tượng này không?

Một container đã mã hóa trông như một tệp lớn, không trong suốt đối với hầu hết công cụ truyền, nên một chỉnh sửa nhỏ ở văn bản rõ có thể gây đọc lại lớn hoặc tải lên lại toàn bộ tùy công cụ và định dạng. Chia khối kích thước thay đổi và loại bỏ trùng lặp, như restic ghi lại, có thể giảm điều đó, nhưng đó là thuộc tính của công cụ ấy chứ không phải của container đã mã hóa nói chung.

Hãy đo thay vì giả định. So sánh lần chạy đầu với lần chạy thứ hai sau một thay đổi nhỏ và vô hại, và ghi lại số byte đã truyền cùng thời gian đã trôi qua. Giữ một bản sao lưu đã biết là tốt trong khi thử nghiệm, để một bài kiểm tra không tiêu hết điểm khôi phục duy nhất của bạn.

Sau đó kết thúc danh sách bằng bài kiểm tra duy nhất có ý nghĩa: khôi phục mà không có máy gốc. Mở một container đã khôi phục, hoặc khôi phục các tệp đã chọn cùng siêu dữ liệu của chúng, và xác nhận rằng ứng dụng hoặc người dùng có thể dùng kết quả. Một lần truyền nhanh và được mã hóa tốt mà không trả lời được bài kiểm tra ấy là bản sao dữ liệu của bạn, không phải bản sao lưu của nó.

Bài viết liên quan