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 ) το οποίο θα χωριστεί σε δύο τμήματα.
- Ένα διαμέρισμα (/dev/sdd1 -κύριο) που χρησιμοποιείται για την κρυπτογράφηση LUKS.
- Το δεύτερο διαμέρισμα (/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
- Όνομα στόχου: Ένα περιγραφικό όνομα για τη συσκευή σας (δείτε παραπάνω σημείο 22 στο EXT4 LUKS).
- Δίσκος προέλευσης: Το διαμέρισμα σκληρού δίσκου διαμορφωμένο για LUKS (δείτε παραπάνω σημείο 21 στο EXT4 LUKS).
- Αρχείο κλειδιού: Επιλέξτε κανένα
- Επιλογές: Προσδιορίστε 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, εξωτερικός σκληρός δίσκος κ.λπ. για την προστασία σημαντικών, μυστικών ή ευαίσθητων δεδομένων σε περίπτωση υποκλοπής ή κλοπής.