ฉันสามารถสร้างext4
พาร์ติชันเข้ารหัสใหม่ด้วยเคอร์เนล 4.1 บน Ubuntu 15.04 ได้หรือไม่
ฉันสามารถสร้างext4
พาร์ติชันเข้ารหัสใหม่ด้วยเคอร์เนล 4.1 บน Ubuntu 15.04 ได้หรือไม่
คำตอบ:
ก่อนปิดคำปฏิเสธ: ผมไม่เคยทำแบบนี้กับอูบุนตู แต่ในเครื่องที่มี Debian "ยืด" ติดตั้งโดยใช้ลินุกซ์เคอร์เนล 4.2.3 ที่ฉันเปิดใช้งานEXT4_FS_ENCRYPTION
บน
คำแนะนำของkmeawไม่ได้ผลสำหรับฉันเหมือนที่โพสต์ไว้ มีบางสิ่งหลงเหลืออยู่ (พารามิเตอร์บรรทัดคำสั่งและขั้นตอน)
e2fsprogs
ตามที่แสดงด้านบนสร้างเกลือสุ่มของคุณ ฉันใช้สิ่งต่อไปนี้เพื่อเก็บไว้ใน "ที่ปลอดภัย":
head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
ในการใช้การเข้ารหัส ext4 ในระบบไฟล์ต้องตั้งค่าสถานะ "เข้ารหัส" ใน super-block นี่ไม่ใช่ค่าดีฟอลต์เมื่อสร้างระบบไฟล์ ext4 การใช้ยูทิลิตี "tune2fs" จาก e2fsprogs 1.43 หรือใหม่กว่าให้ตั้งค่าตัวเลือก "เข้ารหัส":
sudo tune2fs -O encrypt /dev/sda4
เมานต์หรือติดตั้งระบบไฟล์ใหม่เพื่อให้เคอร์เนลรู้เกี่ยวกับการเปลี่ยนแปลง (อาจเป็นไปโดยอัตโนมัติ แต่ฉันเพิ่งทำสิ่งนี้ในพาร์ติชันแยกต่างหากดังนั้นฉันไม่แน่ใจ)
สร้างไดเร็กทอรีบนระบบไฟล์ที่เมาท์ด้วยการเข้ารหัสที่เปิดใช้งาน:
sudo mkdir -p /secret/home/$USER
sudo chown $USER:$USER /secret/home/$USER
สร้างคีย์ในพวงกุญแจและใช้เพื่อตั้งค่านโยบายสำหรับไดเรกทอรีที่จะเข้ารหัส ( sudo
ไม่จำเป็นต้องใช้คำสั่งที่นี่):
$ /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.
หลังจากรีบูตแต่ละครั้งadd_key
สามารถใช้คำสั่งตั้งค่าคีย์สำหรับการถอดรหัสลับของไดเรกทอรีและลูกหลานของมัน:
$ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
Enter passphrase (echo disabled):
Added key with descriptor [0132fed69f946c86]
ป้อนรหัสผ่านเดียวกับที่ใช้ในขั้นตอนก่อนหน้าและคุณไม่จำเป็นต้องจำสตริง hex ตัวอธิบาย
คุณยังสามารถใช้add_key
โดยตรง นี้จะใช้เกลือเฉพาะระบบไฟล์ (ดังนั้นโฟลเดอร์ทั้งหมดภายใต้พาร์ทิชันที่จะมีเกลือเดียวกัน)
$ /usr/sbin/e4crypt add_key /secret/home/$USER
Added key with descriptor [0132fed69f946c86]
Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
cp .. /secret/home/$USER/.
ฉันได้รับ: « cp: ไม่สามารถสร้างไฟล์ปกติ '/secret/home/alexis/test-top-secret-image.svg' ได้: คีย์ไม่จำเป็นต้องใช้ ใช้ได้» ฉันเพิ่งทำตามคำแนะนำของคุณดังนั้นฉันเดาว่ามีอะไรเปลี่ยนแปลง
/usr/bin/e4crypt
" ไม่มี "s" ใน "/ [s] bin"
Linux 4.1 มาพร้อมกับคุณสมบัติ Ext4 ใหม่เพื่อเข้ารหัสไดเรกทอรีของระบบไฟล์ กุญแจการเข้ารหัสจะถูกเก็บไว้ในพวงกุญแจ ในการเริ่มต้นให้แน่ใจว่าคุณได้เปิดใช้งานCONFIG_KEYS
และCONFIG_EXT4_FS_ENCRYPTION
ตัวเลือกเคอร์เนลและคุณมีเคอร์เนล 4.1 หรือสูงกว่า
ก่อนอื่นคุณต้องอัปเดต e2fsprogs เป็นอย่างน้อยเวอร์ชัน 1.43 ซึ่งยังคงเป็น WIP ในขณะที่เขียนดังนั้นเราต้องดึงข้อมูลจากที่เก็บ git :
$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
แหล่ง e4crypt ได้ปิดการใช้งานส่วนที่เกี่ยวข้องในซอร์สโค้ดของมันเปิดใช้งานโดยการแก้ไข misc / e4crypt.c และลบสองบรรทัดนี้ใกล้กับบรรทัดที่ 714:
printf("arg %s\n", argv[optind]);
exit(0);
ตอนนี้สร้างและติดตั้ง e2fsprogs ใหม่:
$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb
ตรวจสอบเวอร์ชั่นของคุณตอนนี้ควรเป็น 1.43-WIP:
# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
Using EXT2FS Library version 1.43-WIP, 18-May-2015
ในการทำงานกับกุญแจเราจำเป็นต้องติดตั้งkeyutils
แพคเกจ:
$ sudo apt-get install keyutils
มาสร้างไดเรกทอรีที่เราจะเข้ารหัส นโยบายการเข้ารหัสสามารถตั้งค่าได้เฉพาะในไดเรกทอรีที่ว่างเปล่า:
$ sudo mkdir -p /encrypted/dir
ก่อนอื่นให้สร้างค่าเกลือแบบสุ่มและเก็บไว้ในที่ปลอดภัย:
$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459
ตอนนี้สร้างและเพิ่มคีย์ใหม่ในพวงกุญแจของคุณ: ขั้นตอนนี้ควรทำซ้ำทุกครั้งที่คุณล้างพวงกุญแจ (รีบูต)
$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled):
Added key with descriptor [f88747555a6115f5]
ตอนนี้คุณรู้จักตัวบ่งชี้สำหรับคีย์ของคุณแล้ว ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มรหัสลงในพวงกุญแจของคุณ:
$ keyctl show
Session Keyring
1021618178 --alswrv 1000 1000 keyring: _ses
176349519 --alsw-v 1000 1000 \_ logon: ext4:f88747555a6115f5
เกือบเสร็จแล้ว. ตอนนี้ตั้งค่านโยบายการเข้ารหัสสำหรับไดเรกทอรี:
$ e4crypt set_policy f88747555a6115f5 /encrypted/dir
นั่นคือทั้งหมดที่ หากคุณลองเข้าถึงดิสก์โดยไม่ต้องเพิ่มกุญแจลงในพวงกุญแจชื่อไฟล์และเนื้อหาของไฟล์นั้นจะถูกมองว่าเป็นสิ่งที่มีความหมายเข้ารหัส ระวังการรัน e2fsck เวอร์ชันเก่าบนระบบไฟล์ของคุณ - มันจะจัดการกับชื่อไฟล์ที่เข้ารหัสว่าไม่ถูกต้อง