LUKS: Κρυπτογράφηση δεδομένων σκληρού δίσκου Linux με υποστήριξη NTFS σε Linux


Το ακρωνύμιο LUKS σημαίνει Linux Unified Key Setup που είναι μια ευρέως μέθοδος κρυπτογράφησης δίσκου που χρησιμοποιείται από το Linux Kernel και υλοποιείται με το πακέτο cryptsetup.

Η γραμμή εντολών cryptsetup κρυπτογραφεί έναν δίσκο τόμου εν κινήσει χρησιμοποιώντας συμμετρικό κλειδί κρυπτογράφησης που προέρχεται από την παρεχόμενη φράση πρόσβασης που παρέχεται κάθε φορά που τοποθετείται ένας δίσκος τόμου, ένα διαμέρισμα και επίσης ένας ολόκληρος δίσκος (ακόμη και ένα στικ USB) ιεραρχία συστήματος αρχείων και χρησιμοποιεί κρυπτογράφηση aes-cbc-essiv:sha256.

Επειδή το LUKS μπορεί να κρυπτογραφήσει ολόκληρες συσκευές μπλοκ (σκληρούς δίσκους, USB sticks, δίσκους Flash, διαμερίσματα, ομάδες τόμου κ.λπ.) σε συστήματα Linux, συνιστάται σε μεγάλο βαθμό για την προστασία αφαιρούμενων μέσων αποθήκευσης, σκληρών δίσκων φορητών υπολογιστών ή αρχείων ανταλλαγής Linux και δεν συνιστάται για αρχεία κρυπτογράφηση επιπέδου.

Το NTFS (New Technology File System) είναι ένα ιδιόκτητο σύστημα αρχείων που αναπτύχθηκε από τη Microsoft.

Το Ubuntu 14.04 παρέχει πλήρη υποστήριξη για κρυπτογράφηση LUKS και επίσης εγγενή υποστήριξη NTFS για Windows με τη βοήθεια του πακέτου ntfs-3g.

Για να αποδείξω την άποψή μου σε αυτό το σεμινάριο, πρόσθεσα έναν νέο σκληρό δίσκο (4ος) στο πλαίσιο Ubuntu 14.04 (η αναφορά συστήματος στον σκληρό δίσκο που προστέθηκε πρόσφατα είναι /dev/sdd ) το οποίο θα χωριστεί σε δύο τμήματα.

  1. Ένα διαμέρισμα (/dev/sdd1 -κύριο) που χρησιμοποιείται για την κρυπτογράφηση LUKS.
  2. Το δεύτερο διαμέρισμα (/dev/sdd5 – εκτεταμένο) μορφοποίησε NTFS για πρόσβαση σε δεδομένα τόσο σε συστήματα που βασίζονται σε Linux όσο και σε Windows.

Επίσης, τα διαμερίσματα θα τοποθετηθούν αυτόματα στο Ubuntu 14.04 μετά την επανεκκίνηση.

Βήμα 1: Δημιουργία κατατμήσεων δίσκου

1. Αφού προστεθεί φυσικά ο σκληρός σας δίσκος στο μηχάνημά σας, χρησιμοποιήστε την εντολή ls για να παραθέσετε όλα τα /dev/devices (ο τέταρτος δίσκος είναι /dev/sdd).

ls /dev/sd*

2. Στη συνέχεια, ελέγξτε τον σκληρό δίσκο που προστέθηκε πρόσφατα με την εντολή fdisk.

sudo fdisk –l /dev/sdd

Επειδή δεν είχε γραφτεί κανένα σύστημα αρχείων, κάτι που ο δίσκος δεν περιέχει ακόμη έγκυρο πίνακα κατατμήσεων.

3. Τα επόμενα βήματα τεμαχίζουν τον σκληρό δίσκο για ένα αποτέλεσμα δύο διαμερισμάτων χρησιμοποιώντας το βοηθητικό πρόγραμμα δίσκου cfdisk.

sudo cfdisk /dev/sdd

4. Στην επόμενη οθόνη ανοίγει η διαδραστική λειτουργία cfdisk. Επιλέξτε Ελεύθερος χώρος στον σκληρό σας δίσκο και μεταβείτε στην επιλογή Νέο χρησιμοποιώντας τα βέλη αριστερού/δεξιού πλήκτρου.

5. Επιλέξτε τον τύπο του διαμερίσματός σας ως Κύριο και πατήστε Enter.

6. Σημειώστε το επιθυμητό μέγεθος διαμερίσματος σε MB.

7. Δημιουργήστε αυτό το διαμέρισμα στην Αρχή του ελεύθερου χώρου στον σκληρό δίσκο.

8. Στη συνέχεια, μεταβείτε στην επιλογή κατάτμησης Τύπος και πατήστε Enter.

9. Η επόμενη προτροπή παρουσιάζει μια λίστα με όλους τους τύπους συστημάτων αρχείων και τον αριθμητικό τους κωδικό (Hex number). Αυτό το διαμέρισμα θα είναι κρυπτογραφημένο Linux LUKS, επομένως επιλέξτε κωδικό 83 και πατήστε ξανά Enter για να δημιουργήσετε διαμέρισμα.

10. Δημιουργείται το πρώτο διαμέρισμα και η προτροπή του βοηθητικού προγράμματος cfdisk επιστρέφει στην αρχή. Για να δημιουργήσετε το δεύτερο διαμέρισμα που χρησιμοποιείται ως NTFS επιλέξτε τον υπόλοιπο Ελεύθερο χώρο, μεταβείτε στην επιλογή Νέο και πατήστε το πλήκτρο Enter .

11. Αυτή τη φορά το διαμέρισμα θα είναι Εκτεταμένο λογικό. Επομένως, μεταβείτε στην επιλογή Λογικό και πατήστε ξανά Enter.

12. Εισαγάγετε ξανά το μέγεθος του διαμερίσματός σας. Για να χρησιμοποιήσετε τον ελεύθερο χώρο που απομένει ως νέο διαμέρισμα, αφήστε την προεπιλεγμένη τιμή στο μέγεθος και απλώς πατήστε Enter.

13. Επιλέξτε πάλι τον κωδικό τύπου διαμερίσματος. Για το σύστημα αρχείων NTFS επιλέξτε 86 κωδικό τόμου.

14. Αφού ελέγξετε και επαληθεύσετε τα διαμερίσματα, επιλέξτε Εγγραφή, απαντήστε ναι στην επόμενη διαδραστική ερώτηση και, στη συνέχεια, Τερματίστε για να αποχωρήσετε από ναι Βοηθητικό πρόγραμμα b>cfdisk.

συγχαρητήρια ! Οι κατατμήσεις σας δημιουργήθηκαν με επιτυχία και είναι τώρα έτοιμα για μορφοποίηση και χρήση.

15. Για να επαληθεύσετε ξανά τον δίσκο Πίνακας διαμερισμάτων, εκδώστε ξανά την εντολή fdisk που θα εμφανίσει λεπτομερείς πληροφορίες πίνακα κατατμήσεων.

sudo fdisk –l /dev/sdd

Βήμα 2: Δημιουργία συστήματος αρχείων κατάτμησης

Σύστημα αρχείων NTFS

16. Για να δημιουργήσετε σύστημα αρχείων NTFS σε δεύτερο διαμέρισμα, εκτελέστε την εντολή mkfs.

sudo mkfs.ntfs /dev/sdd5

17. Για να γίνει διαθέσιμο το διαμέρισμα, πρέπει να προσαρτηθεί στο σύστημα αρχείων σε ένα σημείο προσάρτησης. Τοποθετήστε το δεύτερο διαμέρισμα στον τέταρτο σκληρό δίσκο στο σημείο προσάρτησης /opt χρησιμοποιώντας την εντολή mount.

sudo mount /dev/sdd5 /opt

18. Στη συνέχεια, ελέγξτε εάν το διαμέρισμα είναι διαθέσιμο και παρατίθεται στο αρχείο /etc/mtab χρησιμοποιώντας την εντολή cat.

cat /etc/mtab

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

Απαντήστε με κεφαλαία ΝΑΙ στην ερώτηση "Είστε σίγουροι;" και εισαγάγετε τρεις φορές τη φράση πρόσβασης που θέλετε.

Σημείωση: Ανάλογα με το μέγεθος και την ταχύτητα HDD του διαμερίσματός σας, η δημιουργία του συστήματος αρχείων μπορεί να διαρκέσει λίγο.

22. Μπορείτε επίσης να επαληθεύσετε την κατάσταση της συσκευής κατάτμησης.

sudo cryptsetup luksDump  /dev/sdd1

23. Το LUKS υποστηρίζει τον μέγιστο αριθμό 8 κωδικών πρόσβασης που έχουν προστεθεί. Για να προσθέσετε έναν κωδικό πρόσβασης χρησιμοποιήστε την ακόλουθη εντολή.

sudo cryptsetup luksAddKey /dev/sdd1

Για να αφαιρέσετε έναν κωδικό πρόσβασης χρησιμοποιήστε.

sudo cryptsetup luksRemoveKey /dev/sdd1

24. Για να είναι ενεργό αυτό το διαμέρισμα Κρυπτογραφημένο πρέπει να έχει μια καταχώριση ονόματος (να αρχικοποιηθεί ) στον κατάλογο /dev/mapper με τη βοήθεια του πακέτο cryptsetup.

Αυτή η ρύθμιση απαιτεί την ακόλουθη σύνταξη της γραμμής εντολών:

sudo cryptsetup luksOpen  /dev/LUKS_partiton  device_name

Όπου "όνομα_συσκευής" μπορεί να είναι οποιοδήποτε περιγραφικό όνομα που σας αρέσει! ( Το ονόμασα δικό μου crypted_volume). Η πραγματική εντολή θα μοιάζει όπως φαίνεται παρακάτω.

sudo cryptsetup luksOpen  /dev/sdd1 crypted_volume

25. Στη συνέχεια, επαληθεύστε εάν η συσκευή σας περιλαμβάνεται στη λίστα /dev/mapper, κατάλογο, συμβολικό σύνδεσμο και κατάσταση συσκευής.

ls /dev/mapper
ls –all /dev/mapper/encrypt_volume

sudo cryptsetup –v status encrypt_volume

26. Τώρα, για να κάνετε τη συσκευή διαμερίσματος ευρέως διαθέσιμη, προσαρτήστε την στο σύστημά σας κάτω από ένα σημείο προσάρτησης χρησιμοποιώντας την εντολή προσάρτησης.

sudo mount  /dev/mapper/crypted_volume  /mnt

Όπως φαίνεται το διαμέρισμα είναι προσαρτημένο και προσβάσιμο για εγγραφή δεδομένων.

27. Για να το καταστήσετε μη διαθέσιμο, απλώς αποσυνδέστε το από το σύστημά σας και κλείστε τη συσκευή.

sudo umount  /mnt
sudo cryptsetup luksClose crypted_volume

Βήμα 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

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

30. Για να λάβετε τη συσκευή UUID χρησιμοποιήστε την ακόλουθη εντολή.

sudo blkid

31. Για να προσθέσετε επίσης τον τύπο διαμερίσματος NTFS που δημιουργήθηκε νωρίτερα, χρησιμοποιήστε την ίδια σύνταξη όπως παραπάνω σε μια νέα γραμμή στο fstab ( Εδώ η ανακατεύθυνση προσάρτησης αρχείου Linux χρησιμοποιείται ).

sudo su -
echo "/dev/sdd5	/opt	ntfs		defaults		0              0"  >> /etc/fstab

32. Για να επαληθεύσετε τις αλλαγές επανεκκινήστε το μηχάνημά σας, πατήστε Enter μετά το μήνυμα εκκίνησης "Έναρξη διαμόρφωσης συσκευής δικτύου" και πληκτρολογήστε φράση πρόσβασης της συσκευής σας.

Όπως μπορείτε να δείτε και τα δύο διαμερίσματα δίσκου προσαρτήθηκαν αυτόματα στην ιεραρχία του συστήματος αρχείων του Ubuntu. Ως συμβουλή, μην χρησιμοποιείτε αυτόματα κρυπτογραφημένους τόμους από το αρχείο fstab σε φυσικά απομακρυσμένους διακομιστές, εάν δεν μπορείτε να έχετε πρόσβαση στην ακολουθία επανεκκίνησης για την παροχή του κρυπτογραφημένου κωδικού πρόσβασης τόμου.

Οι ίδιες ρυθμίσεις μπορούν να εφαρμοστούν σε όλους τους τύπους αφαιρούμενων μέσων όπως USB stick, μνήμη Flash, εξωτερικός σκληρός δίσκος κ.λπ. για την προστασία σημαντικών, μυστικών ή ευαίσθητων δεδομένων σε περίπτωση υποκλοπής ή κλοπής.