หากคุณเป็นผู้ใช้คนเดียวในระบบและไม่มีใครสามารถเข้าถึงคอมพิวเตอร์ของคุณได้โดยไม่ได้รับอนุญาตจากนั้นคุณสามารถบล็อกการเข้าถึงโดยใช้คำสั่งนี้ตามคำตอบของ Zanna :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
ในกรณีนี้ผู้ใช้สามารถอ่านและ / หรือเขียนไฟล์root
ได้ นี่ถือว่าเป็น "ปลอดภัยเพียงพอ" ถ้าไม่มีใครสามารถบู๊ตคอมพิวเตอร์โดยไม่ได้รับอนุญาตหรือยกฮาร์ดไดรฟ์ เรากำลังใช้root
ผู้ใช้ในกรณีนี้เนื่องจากroot
ผู้ใช้สามารถอ่านไฟล์ได้แม้ว่าพวกเขาจะไม่ได้รับอนุญาตก็ตาม โดยการใช้ผู้ใช้รูทเราบังคับให้ผู้ใช้เพียงคนเดียวเท่านั้นที่สามารถเข้าถึงได้
หากคุณต้องการที่จะทำเครื่องหมายไว้เป็นไม่เปลี่ยนแปลงในทางรูปร่างหรือรูปแบบใด ๆ ที่คุณสามารถใช้i
แอตทริบิวต์การทำเครื่องหมายไฟล์ที่ไม่เปลี่ยนรูป ในกรณีนี้การอนุญาตของไฟล์จะถูกล็อคและอาจไม่สามารถเปลี่ยนแปลงได้ในทุกกรณี ดังนั้นคุณสามารถทำคำสั่งต่อไปนี้เพื่อทำให้ไฟล์ไม่สามารถเปลี่ยนแปลงได้และปกป้องมันจากการลบและการเปลี่ยนแปลงการอนุญาต:
sudo chattr +i /my/secret/file.txt
หากคุณต้องการเปลี่ยนให้แทนที่+i
ด้วย-i
เพื่อปลดล็อคไฟล์ชั่วคราว ดูคำตอบของ Rinzwindสำหรับมุมมองเชิงลึกเพิ่มเติม
ตอนนี้ถ้าคนอื่นมีสิทธิ์เข้าถึงคอมพิวเตอร์ของคุณ (ไม่ว่าจะเป็นการsudo
เข้าถึงระยะไกลหรือการเข้าถึงทางกายภาพในรูปแบบใดก็ตาม) สิ่งนี้จะแตกสลายทันที ผู้โจมตีสามารถใช้root
พลังในการอ่านไฟล์ของคุณเสียบ Live USB หรือเพียงแค่ดึงฮาร์ดไดรฟ์ของคุณ
ดังนั้นเราจำเป็นต้องเข้ารหัสไฟล์ โดยส่วนตัวแล้วผมชอบที่จะใช้ "ไฟล์คอนเทนเนอร์" เพื่อให้คุณสามารถติดมันได้มากกว่านี้และมันก็จะเติบโตตามที่ต้องการ chattr +i
ยังคงมีการแนะนำเพื่อไม่ให้ไฟล์ถูกลบโดยไม่ตั้งใจ (หรือเปลี่ยนแปลง) สุดท้ายหากคุณใช้อิมเมจเข้ารหัสคุณสามารถตั้งค่าการอนุญาตให้ผู้อื่นเข้าถึงไฟล์ย่อยที่ จำกัด มากเมื่อดิสก์ถูกเมาท์ทำให้ดีสำหรับเซิร์ฟเวอร์ เดิมคู่มือนี้มีอยู่ที่นี่และปรับให้ใช้ที่นี่
ก่อนอื่นคุณต้องการสร้างภาพดิสก์สำหรับการใช้งานของคุณ ในตัวอย่างนี้เราจะทำให้มัน 5 GB
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
จากนั้นเราต้องทำให้ภาพของคุณเข้ารหัส:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
คุณจะมีตัวเลือกที่นี่เพื่อป้อนรหัสผ่านการเข้ารหัสที่คุณต้องการ เมื่อดำเนินการเสร็จแล้วเราจำเป็นต้องเปิดเผยอุปกรณ์บล็อกดิบ:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
ตอนนี้เรามีคอนเทนเนอร์ไฟล์ที่ถอดรหัสแล้ว แต่ไม่มีระบบไฟล์และมันก็ดีเหมือนกัน มาแก้ไขกันเถอะ:
sudo mkfs.ext4 /dev/mapper/my-secret-device
ตอนนี้เราต้องมีสถานที่สำหรับติดตั้งพาร์ทิชันใหม่ของเรา /crypt
ในกรณีนี้ผมจะวางไว้ที่ ฉันคือผู้ใช้ 1000 ดังนั้นฉันจะตั้งพาร์ติชันของฉันให้อนุญาต (และรูท) เพื่ออ่าน / เขียนจากมันเท่านั้น
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
ตอนนี้ฉันสามารถใช้เครื่องมือไฟล์ของฉันเพื่อนำทางไปยัง/crypt
และฉันสามารถเก็บไฟล์ที่สำคัญทั้งหมดของฉันที่นั่น เมื่อฉันทำเสร็จแล้วฉันจะต้องถอนติดตั้งและเข้ารหัสพาร์ติชันของฉันอีกครั้ง
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
ตอนนี้ฉันจะตั้งพาร์ทิชันที่เหมาะสมในไฟล์ภาพของฉันเช่นฉันเท่านั้นและรากสามารถเข้าถึงได้และไม่สามารถเปลี่ยนแปลงได้อีกต่อไป
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
เมื่อใดก็ตามที่ฉันต้องการเปิดไฟล์นี้เพื่ออ่านฉันต้องเรียกใช้สองคำสั่งซึ่งฉันสามารถใช้นามแฝงได้อย่างง่ายดาย:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
ข้อมูลที่เข้ารหัสของฉันจะอยู่ที่ /crypt
และจะยังคงเป็นแบบอ่านอย่างเดียวและเข้าถึงได้เฉพาะฉันและราก
หากฉันต้องการแก้ไขไฟล์ฉันต้องเปลี่ยนการอนุญาตแล้วติดตั้ง:
sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
ตอนนี้คุณต้องระวังที่นี่เพราะถ้าผู้ใช้มีรูทในระบบของพวกเขาพวกเขาสามารถแก้ไข / ทำลายพาร์ติชันที่เข้ารหัสของคุณทำให้มันไร้ประโยชน์ พวกเขายังสามารถขโมยข้อมูลจากไดรฟ์ได้ แต่เมื่อเปิดเท่านั้น อย่างไรก็ตามพวกเขาไม่สามารถขโมยข้อมูลหรือเห็นว่ามีข้อมูลอยู่โดยที่คุณไม่เปิดมันอย่างชัดเจน ดังนั้นเป็นหน้าที่ของคุณที่จะต้องแน่ใจว่าระบบของคุณปลอดภัยพอที่จะไม่มีผู้ใช้รูทออนไลน์เมื่อคุณเปิดวอลลุ่มเข้ารหัสของคุณ
TL; DR :
สร้างอุโมงค์:
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mkfs.ext4 /dev/mapper/my-secret-device
เติมหลุมฝังศพ:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
ล็อคหลุมฝังศพ:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
ตรึงห้องนิรภัย:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
เปิดหลุมฝังศพ:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro