LUKS: הצפנת נתוני דיסק קשיח בלינוקס עם תמיכה ב-NTFS בלינוקס

LUKS מילת הראשי תועלת מאפיין מאוחד של הגדרת מפתח בלינוקס אשר היא אחת השיטות הנרחבות להצפנת דיסק המשמשת על ידי לינוקס קרנל ומיושמת עם החבילה cryptsetup.

פקודת ה־cryptsetup מצפנת את נפח הדיסק בזמן אמת באמצעות מפתח הצפנה סימטרי המיוצר מהסיסמה שסופקת בכל פעם שהנפח, המחיצה וגם כל דיסק שלם (גם מקל USB) מחובר ביישות הקובץ ומשתמש במחזיר קסום aes-cbc-essiv:sha256.

Linux Hard Disk Encryption Using LUKS

בגלל ש־LUKS יכול להצפין את כל מכשירי הבלוק (דיסקים קשיחים, מקלות USB, דיסקים ניידים, מחיצות, קבוצות נפח וכו') במערכות לינוקס, מומלץ בהרבה להגן על מדיה ניידת, דיסקים קשיחים של מחשב נייד או קבצי החילוף של לינוקס ולא מומלץ להצפין ברמת קובץ.

NTFS (מערכת קבצים טכנולוגית חדשה) היא מערכת קבצים בבעלות סגורה שפותחה על ידי מיקרוסופט.

אובונטו 14.04 מספקת תמיכה מלאה להצפנת LUKS וגם תמיכה ישרה ב־NTFS למערכת הפעלה של Windows בעזרת חבילת ntfs-3g.

להוכיח את הנקודה שלי במדריך זה הוספתי דיסק חדש (ה-4) לתיבת אובונטו 14.04 (הפתקיית המערכת מתייחסת לדיסק הקשיח החדש כ־/dev/sdd) שיחולק לשני מחיצות.

  1. המחיצה הראשונה (/dev/sdd1 – ראשית) משמשת להצפנת LUKS.
  2. המחיצה השנייה (/dev/sdd5 – מורחבת) מוצפנת NTFS לגישה לנתונים במערכות הפעלה הנדרשת בלינוקס וגם בחלונות.

גם המחיצות יותקעו באופן אוטומטי באובונטו 14.04 לאחר אתחול מחדש.

שלב 1: יצירת מחיצות בדיסק

1. לאחר שהדיסק הקשיח שלך מתווסף פיזית למכונה שלך, השתמש בפקודת ls כדי לרשום את כל /dev/devices (הדיסק הרביעי הוא /dev/sdd).

# ls /dev/sd*
List Partitions in Linux

2. לאחר מכן, בדוק את הדיסק הקשיח החדש שלך בעזרת הפקודה fdisk.

$ sudo fdisk –l /dev/sdd
Check Linux Hard Disk

מכיוון שלא נכתב כל סוג של מערכת קבצים, הדיסק אינו מכיל טבלת מחיצות תקפה עדיין.

3. השלבים הבאים מחלקים את הדיסק הקשיח לתוצאת שתי מחיצות בעזרת כלי הפירוט cfdisk.

$ sudo cfdisk /dev/sdd

4. המסך הבא יפתח מצב אינטראקטיבי של cfdisk. בחר את השטח הפנוי בדיסק הקשיח ונווט לאפשרות חדש באמצעות חצים ימינה/שמאלה.

cfdisk Interactive Mode

5. בחר את סוג המחיצה שלך כ-ראשיתית והקש על Enter.

Select Your Partition Type

6. רשום את גודל המחיצה שאתה רוצה ב-MB.

Write Down Partition Size

7. צור את המחיצה הזו ב-תחילת שטח הפנוי בדיסק הקשיח.

Create a Partition

8. המשך לאפשרות Type של המחיצה והקש על Enter.

Partition Type

9. היריד הבא מציג רשימה של כל סוגי מערכות הקבצים והקוד מספר שלהם (מספר בסיסי ב- Hex). מחיצה זו תהיה מוצפנת Linux LUKS כך שבחר בקוד 83 ולחץ על Enter שוב כדי ליצור את המחיצה.

Enter File System Type

10. המחיצה הראשונה נוצרה וההוראה באמצעות כלי cfdisk חוזרת להתחלה. כדי ליצור את המחיצה השנייה המשמשת כ- NTFS, בחר ב- Free space הנשאר, נווט לאפשרות New ולחץ על מקש Enter.

Create New Partition

11. הפעם המחיצה תהיה מסוג Extended Logical. לכן, נווט לאפשרות Logical ושוב לחץ על Enter.

Select Logical Partition Type

12. הכנס שוב את גודל המחיצה שלך. אם ברצונך להשתמש בשאר השטח החופשי כמחיצה חדשה השאר את הערך הברירת מחדל על גודל ופשוט לחץ Enter.

Enter Size of Partition

13. בחר שוב את קוד סוג המקטע שלך. עבור מערכת קבצים NTFS, בחר בקוד כרך 86.

Select Partition Type

14. לאחר ביקורת ואימות המקטעים, בחר Write, ענה yes על שאלת ההתנגשות האינטראקטיבית הבאה ואז Quit כדי לצאת מכלי ה- cfdisk.

Write Partition Table to Disk
Confirm Changes
Quit to leave cfdisk utility

ברכות! המחיצות שלך נוצרו בהצלחה ומוכנות להיות מעוצבות ולשימוש.

15. כדי לאמת שוב את Partition Table הדיסק, הרץ שוב את פקודת fdisk שתציג מידע מפורט על טבלת המחיצות.

$ sudo fdisk –l /dev/sdd
Confirm Parition Table

שלב 2: צור מערכת קבצים למחיצה

מערכת קבצים NTFS

16. כדי ליצור מערכת קבצים NTFS על המחיצה השנייה, הרץ פקודת mkfs.

$ sudo mkfs.ntfs /dev/sdd5
Create NTFS Filesystem

17. כדי להפוך את המחיצה לזמינה, עליך לעצוב אותה כמחצה על מערכת הקבצים בנקודת העגינה. תעצב את המחיצה השנייה על הדיסק הרביעי ל /opt עגינה באמצעות פקודת mount.

$ sudo mount /dev/sdd5 /opt

18. לבדוק אם המחיצה זמינה ומופיעה בקובץ /etc/mtab באמצעות השימוש בפקודת cat.

$ cat /etc/mtab
Check Partition Availability

19. כדי לנתק את המחיצה, השתמש בפקודה הבאה.

$ sudo umount /opt
EXT4 LUKS

20. ודא שחבילת cryptsetup מותקנת במערכת שלך.

$ sudo apt-get install cryptsetup		[On Debian Based Systems]

# yum install cryptsetup				[On RedHat Based Systems]

21. עכשיו הגיע הזמן לפורמט את המחיצה הראשונה על הדיסק הרביעי עם קובץ מערכת ext4 על ידי ביצוע הפקודה הבאה.

$ sudo luksformat  -t ext4  /dev/sdd1

השיבו באותיות גדולות YES על שאלת "האם אתה בטוח?" והכניסו שלוש פעמים את הסיסמה הרצויה.

Format Partition

הערה: תלוי בגודל המחיצה שלך ובמהירות הדיסק, ייצור המערכת עשוי לקחת זמן.

22. ניתן גם לוודא את מצב מכשיר המחיצה.

$ sudo cryptsetup luksDump  /dev/sdd1
Verify Partition Status

23. LUKS תומך במקסימום 8 סיסמאות. כדי להוסיף סיסמה, השתמש בפקודה הבאה.

$ sudo cryptsetup luksAddKey /dev/sdd1
Add a Password

כדי להסיר סיסמה, השתמש בפקודה הבאה.

$ sudo cryptsetup luksRemoveKey /dev/sdd1
Remove a Password

24. כדי שהמחיצה המוצפנת תהיה פעילה, יש ליצור רשומת שם (לאתחל) לכיוון התיקייה /dev/mapper בעזרת חבילת cryptsetup.

סינטקס של קווי פקודה צריך להיות כדלקמנו:

$ sudo cryptsetup luksOpen  /dev/LUKS_partiton  device_name

כאשר "שם_המכשיר" יכול להיות כל שם תיאורי שתבחרו! (בחרתי לקרוא לו crypted_volume). הפקודה הממוצעת תיראה כך:

$ sudo cryptsetup luksOpen  /dev/sdd1 crypted_volume
Active Encrypted Partition

25. לאחר מכן, ודא שהתקן שלך מופיע ב־/dev/mapper, ספריית הסמליים ובסטטוס התקן.

$ ls /dev/mapper
$ ls –all /dev/mapper/encrypt_volume
Verify Encrypted Partition
$ sudo cryptsetup –v status encrypt_volume
Encrypted Partition Status

26. עכשיו על מנת להפוך את המכשיר לזמין בכל המערכת, עליך לצמצם אותו במערכת שלך תחת 'נקודת תחבורה' באמצעות הפקודת ההרכבה.

$ sudo mount  /dev/mapper/crypted_volume  /mnt
Mount Encrypted Partition

כפי שניתן לראות, המחיצה ממוקמת ונגישה לכתיבת נתונים.

27. כדי להפוך את המכשיר לא זמין, פשוט תוציא אותו מהמערכת שלך ותסגור את המכשיר.

$ sudo umount  /mnt
$ sudo cryptsetup luksClose crypted_volume
Umount Encrypted Partition

שלב 3: צמצום המחיצה באופן אוטומטי

אם אתה משתמש בכונן קשיח קבוע ואתה זקוק ששתי המחיצות יתמצאו באופן אוטומטי במערכת לאחר האתחול, עליך לעקוב אחר שלבים אלו.

28. התחל על ידי עריכת קובץ /etc/crypttab והוסף את הנתונים הבאים.

$ sudo nano /etc/crypttab
  1. שם המטרה: שם תיאורי עבור התקן שלך (ראה את הנקודה למעלה 22 על 'EXT4 LUKS').
  2. הכונן המקורי: המחיצה בכונן הקשיח פורמטת לצופן LUKS (ראה את הנקודה למעלה 21 על 'EXT4 LUKS').
  3. קובץ המפתח: בחר באפשרות ללא
  4. אפשרויות: ספציפי ציין luks

השורה הסופית תיראה כך כפי שמוצג למטה.

encrypt_volume               /dev/sdd1          none       luks
Mount Partition Automatically

29. לאחר מכן ערוך את /etc/fstab וספק את שם התקן שלך, נקודת ההרכבה, סוג מערכת הקבצים ואפשרויות אחרות.

$ sudo nano /etc/fstab

בשורה האחרונה השתמש בתחביר הבא.

/dev/mapper/device_name (or UUID)	/mount_point     filesystem_type     options    dump   pass

והוסף את התוכן המיוחד שלך.

/dev/mapper/encrypt_volume      /mnt    ext4    defaults,errors=remount-ro     0     0
Add Partition Entry in Fstab

30. כדי לקבל את UUID של התקן, השתמש בפקודה הבאה.

$ sudo blkid
Get Device UUID

31. להוסיף גם את סוג מחיצת NTFS שנוצרה מעליה בשימוש בתחביר זהה למעליו בשורה חדשה בקובץ fstab (כאן משתמשים בהפנית הוספה של קובץ בלינוקס).

$ sudo su -
# echo "/dev/sdd5	/opt	ntfs		defaults		0              0"  >> /etc/fstab
Add NTFS Partition in fstab

32. לוודא שהשינויים restart למחשב שלך, ללחוץ Enter לאחר התצורת "מכשירי הרשת בתהליך הפעלה" ולהזין את סיסמת המכשיר שלך.

Reboot Machine
Verify Partition is Mounted Automatically

כפי שניתן לראות, שתי מחיצות דיסק הותקנו באופן אוטומטי במערכת הקבצים של אובונטו. כהמלצה אל תשתמש בנפחי האחסון המוצפנים אוטומטית מקובץ ה-fstab בשרתים מרוחקים במידה ואין לך גישה לתהליך האתחול לספק את סיסמת הנפח המוצפן שלך.

הגדרות זהות יכולות להתרחש גם על נשיאים שונים של מדיה נשלפת כגון מקל USB, זיכרון פלאש, כונן קשיח חיצוני וכדומה לצורך הגנה על נתונים חשובים, סודיים או רגישים במקרה של ריגול או גניבת מידע.

Source:
https://www.tecmint.com/linux-hard-disk-encryption-using-luks/