Làm cách nào để tạo phân vùng được mã hóa ext4 trên Ubuntu 15.04 với kernel 4.1 mới?


11

Tôi có thể tạo ext4phân vùng được mã hóa mới với kernel 4.1 trên Ubuntu 15.04 không?



Đây không phải là một bản sao vì không có câu trả lời nào hiện có về tính năng cụ thể được thêm vào kernel 4.1, tham khảo: phoronix.com/ Kẻ
LiveWireBT

Câu trả lời:


9

Trước hết từ chối trách nhiệm: Tôi chưa thực hiện điều này với Ubuntu, nhưng trên một máy có Debian "Stretch" được cài đặt bằng hạt nhân Linux 4.2.3 tùy chỉnh mà tôi đã bật EXT4_FS_ENCRYPTION.

Các hướng dẫn được cung cấp bởi kmeaw không làm việc cho tôi chính xác như được đăng. Một vài thứ bị bỏ lại (tham số dòng lệnh và các bước).

  • Cập nhật e2fsprogsnhư hình trên
  • Tạo muối ngẫu nhiên của bạn. Tôi đã sử dụng những điều sau đây để lưu trữ nó ở "nơi an toàn":

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • Để sử dụng mã hóa ext4 trên hệ thống tệp, cờ "mã hóa" phải được đặt trong siêu khối. Đây không phải là mặc định khi hệ thống tệp ext4 được tạo. Sử dụng tiện ích "Tune2fs" từ e2fsprogie 1.43 trở lên, đặt tùy chọn "mã hóa":

    sudo tune2fs -O encrypt /dev/sda4
    
  • Gắn kết hoặc kết nối lại hệ thống tệp để kernel biết về thay đổi (có thể là tự động, nhưng tôi chỉ thực hiện việc này trên một phân vùng riêng, vì vậy tôi không chắc chắn.)

  • Tạo một thư mục trên hệ thống tệp được gắn với mã hóa được kích hoạt:

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • Tạo khóa trong quá trình khóa và sử dụng nó để đặt chính sách cho thư mục được mã hóa ( sudolệnh không cần thiết ở đây):

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    $ /usr/bin/e4crypt set_policy 0132fed69f946c86 /secret/home/$USER
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
  • Sau mỗi lần khởi động lại, add_keylệnh có thể được sử dụng đặt khóa để giải mã thư mục và hậu duệ của nó:

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    

    Nhập cùng một mật khẩu được sử dụng trong bước trước đó và bạn không cần phải nhớ chuỗi hex mô tả.

  • Bạn cũng có thể sử dụng add_keytrực tiếp. Điều này sẽ sử dụng một loại muối cụ thể của hệ thống tập tin (Vì vậy, tất cả các thư mục trong phân vùng đó sẽ có cùng một loại muối)

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    

Bài viết trong Arch wiki đề nghị đọc bài đăng trên blog sau đây, tác giả đã viết một chương trình để đơn giản hóa một số bước: blog.quarkslab.com/. Tại thời điểm viết 16.04 vẫn đang được phát triển và có hai cấu hình kernel tương ứng tùy chọn được đặt, e2fspross mặc dù vẫn ở phiên bản 1.42.
LiveWireBT

Chà ... tôi đã thử các hướng dẫn đó và thư mục của tôi bị chặn ... trên một cp .. /secret/home/$USER/.tôi nhận được: «cp: không thể tạo tệp thông thường '/secret/home/alexis/test-top-secret-image.svg': Không yêu cầu khóa có sẵn » . Tôi chỉ làm theo hướng dẫn của bạn để tôi đoán có gì đó đã thay đổi.
Alexis Wilke

Trường hợp thứ hai của " /usr/bin/e4crypt" thiếu "s" trong "/ [s] bin".
Alexis Wilke

3

Linux 4.1 đi kèm với một tính năng Ext4 mới để mã hóa các thư mục của một hệ thống tập tin. Khóa mã hóa được lưu trữ trong khóa. Để bắt đầu, hãy đảm bảo bạn đã bật CONFIG_KEYSCONFIG_EXT4_FS_ENCRYPTIONtùy chọn kernel và bạn có kernel 4.1 trở lên.

Trước hết, bạn cần cập nhật e2fspross lên ít nhất là phiên bản 1.43, vẫn là WIP tại thời điểm viết bài, vì vậy chúng tôi cần tìm nạp nó từ kho git :

$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git

Nguồn e4crypt đã vô hiệu hóa một phần có liên quan trong mã nguồn của nó, cho phép nó bằng cách chỉnh sửa misc / e4crypt.c và xóa hai dòng này gần dòng 714:

    printf("arg %s\n", argv[optind]);
    exit(0);

Bây giờ xây dựng và cài đặt e2fspross mới:

$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb

Kiểm tra phiên bản của bạn ngay bây giờ, nó phải là 1.43-WIP:

# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
        Using EXT2FS Library version 1.43-WIP, 18-May-2015

Để làm việc với các khóa, chúng ta cần cài đặt keyutilsgói:

$ sudo apt-get install keyutils

Hãy tạo một thư mục mà chúng tôi sẽ mã hóa. Chính sách mã hóa chỉ có thể được đặt trên các thư mục trống:

$ sudo mkdir -p /encrypted/dir

Đầu tiên tạo ra một giá trị muối ngẫu nhiên và lưu trữ nó ở một nơi an toàn:

$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459

Bây giờ tạo và thêm một khóa mới vào khóa của bạn: bước này phải được lặp lại mỗi lần bạn tuôn khóa của bạn (khởi động lại)

$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled): 
Added key with descriptor [f88747555a6115f5]

Bây giờ bạn biết một mô tả cho chìa khóa của bạn. Đảm bảo bạn đã thêm một khóa vào móc khóa của mình:

$ keyctl show
Session Keyring
1021618178 --alswrv   1000  1000  keyring: _ses
 176349519 --alsw-v   1000  1000   \_ logon: ext4:f88747555a6115f5

Sắp xong. Bây giờ hãy đặt chính sách mã hóa cho một thư mục:

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

Đó là tất cả. Nếu bạn thử truy cập vào đĩa mà không thêm khóa vào móc khóa, tên tệp và nội dung của chúng sẽ được xem là vô nghĩa được mã hóa. Hãy cẩn thận khi chạy các phiên bản cũ của e2fsck trên hệ thống tệp của bạn - nó sẽ coi tên tệp được mã hóa là không hợp lệ.


Câu trả lời này có vấn đề định dạng nghiêm trọng. Tôi đã cố gắng cải thiện hết mức có thể, nhưng không hiểu tại sao người ta rõ ràng sẽ cố gắng sử dụng định dạng đánh dấu, xử lý các lệnh phức tạp và đồng thời thực hiện chỉnh sửa tương tự trong wiki Arch, nhưng sau đó nhìn tại thùng rác được hiển thị trong bản xem trước và quyết định để nguyên như vậy. Không có lời giải thích thỏa đáng hoặc tham khảo thêm tại sao các dòng phải được loại bỏ. Hơn nữa, chúng tôi khuyên bạn nên sử dụng debuild theo cách mà nó không có ý định (với gói không được debianized, có một gói thử nghiệm trong Debian) và không hoạt động. -1
LiveWireBT
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.