Cryptsetup: Δημιουργία κρυπτογραφημένου File Container

ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ!

Σε παλαιότερη δημοσίευση είχαμε δει πως μπορούμε να κρυπτογραφήσουμε ένα εξωτερικό μέσο, με το cryptsetup.
Σε αυτή τη δημοσίευση θα δούμε πως μπορούμε να δημιουργήσουμε ένα File Container με σύστημα αρχείων ext4, το οποίο στη συνέχεια θα κρυπτογραφήσουμε με το cryptsetup.
Τον οδηγό τον υλοποιούμε σε λειτουργικό σύστημα Ubuntu/Linux 16.04 LTS, ωστόσο περιμένω να λειτουργήσει το ίδιο σωστά σε οποιαδήποτε άλλη διανομή Linux.
Οι οδηγίες δημοσιεύονται με εντολές τερματικού έτσι ώστε να υπάρχει «κοινή γλώσσα», ανεξάρτητα από το γραφικό περιβάλλον που ενδέχεται να χρησιμοποιούμε.

ΕΛΕΓΧΟΣ ΑΡΘΡΩΜΑΤΟΣ ΚΑΙ ΕΓΚΑΤΑΣΤΑΣΗ

Για τη σωστή χρήση του cryptsetup ελέγχουμε αν το module dm_crypt είναι φορτωμένο με τη παρακάτω εντολή.

 lsmod | grep dm_crypt 

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

 sudo modprobe -v dm_crypt 

Κάνουμε εγκατάσταση του cryptsetup με τη παρακάτω εντολή:

 sudo apt-get install cryptsetup

ΔΗΜΙΟΥΡΓΙΑ ΚΡΥΠΤΟΓΡΑΦΗΜΕΝΟΥ FILE CONTAINER

Με τη παρακάτω εντολή θα δημιουργήσουμε μέσα στο προσωπικό μας κατάλογο ένα αρχείο μεγέθους 1GB, με όνομα PRIVATE, το οποίο στη συνέχεια θα χρησιμοποιήσουμε ως κρυπτογραφημένο χώρο.

 fallocate -l 1GB PRIVATE 

Με τη βοήθεια του cryptsetup κρυπτογραφούμε το αρχείο.

 cryptsetup -v luksFormat PRIVATE 

Χρησιμοποιούμε εδώ το LUKS, κατά τη γνώμη μου ως πιο αξιόπιστο.
Θα μας επιστρέψει μια προειδοποίηση στην οποία πρέπει να απαντήσουμε YES (με κεφαλαία), ώστε να συνεχίσει.
Έπειτα θα μας ζητήσει τον κωδικό (passphrase) δυο φορές.

 WARNING!
 ========
 This will overwrite data on PRIVATE irrevocably.

 Are you sure? (Type uppercase yes): YES
 Enter passphrase: 
 Verify passphrase: 
 Command successful.

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

 cryptsetup -v luksDump PRIVATE 
 LUKS header information for PRIVATE

 Version:           1
 Cipher name:       aes
 Cipher mode:       xts-plain64
 Hash spec:         sha1
 Payload offset:    4096
 MK bits:           256
 ......
 ......
 ...... 

ΑΝΟΙΓΜΑ CONTAINER ΚΑΙ ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ

Αυτό που έχουμε να κάνουμε τώρα είναι να «ανοίξουμε» τον κρυπτογραφημένο χώρο και να δημιουργήσουμε ένα σύστημα αρχείων το οποίο θα φιλοξενεί τα προσωπικά μας δεδομένα.

 sudo cryptsetup -v luksOpen PRIVATE PRIVATE 

Βλέπουμε παραπάνω ότι χρειαζόμαστε δικαιώματα διαχειριστή (sudo) και επίσης σημειώστε ότι το δεύτερο PRIVATE δεν είναι τυπογραφικό λάθος. Πρέπει να προσδιορίσουμε ένα όνομα στο οποίο θα «ανοίξει» ο κρυπτογραφημένος χώρος. Αναλόγως το όνομα που θα δώσουμε θα το εντοπίσουμε έπειτα στη διαδρομή: /dev/mapper/
Αν όλα πάνε καλά, το αποτέλεσμα της παραπάνω εντολής πρέπει να είναι όπως παρακάτω:

 [sudo] password for nicktux: 
 Enter passphrase for PRIVATE: 
 Key slot 0 unlocked.
 Command successful. 

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

 sudo mkfs -t ext4 /dev/mapper/PRIVATE 

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

 mke2fs 1.42.13 (17-May-2015)
 Creating filesystem with 243628 4k blocks and 60928 inodes
 Filesystem UUID: decf6b5c-ee51-4713-92fa-aba25a0da8d8
 Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

 Allocating group tables: done                            
 Writing inode tables: done                            
 Creating journal (4096 blocks): done
 Writing superblocks and filesystem accounting information: done

ΠΡΟΣΑΡΤΗΣΗ CONTAINER

Πλέον μπορούμε να προσαρτήσουμε το «διαμέρισμα» όπως και κάθε άλλο διαμέρισμα στο επιθυμητό σημείο προσάρτησης. Εδώ χρησιμοποιούμε το /mnt, ωστόσο μπορείτε να δημιουργήσετε το δικό σας σημείο προσάρτησης εάν θέλετε.

 sudo mount /dev/mapper/PRIVATE /mnt 
 cd /mnt && ls 

Είμαστε πλέον μέσα στο File Containter που δημιουργήσαμε και μπορούμε να δούμε τον αναμενόμενο lost+found κατάλογο.
Μπορούμε πλέον να δημιουργήσουμε καταλόγους, αρχεία, να αντιγράψουμε τα προσωπικά μας δεδομένα μέσα στο σημείο προσάρτησης /mnt.

ΑΠΟ-ΠΡΟΣΑΡΤΗΣΗ CONTAINER ΚΑΙ ΚΛΕΙΣΙΜΟ

Αφού έχουμε τελειώσει με τη δημιουργία – αντιγραφή των προσωπικών μας αρχείων, προχωράμε στη διαδικασία απορποσάρτησης και κλεισίματος του, πλέον, αποκρυπτογραφημένου container.

Για αποπροσάρτηση, όπως και για κάθε άλλο σύστημα αρχείων/σημείο προσάρτησης/, δίνουμε:

 sudo umount /mnt 

Για κλείσιμο (κρυπτογράφηση) του container δίνουμε:

 sudo cryptsetup luksClose PRIVATE 

Πλέον εάν κοιτάξουμε στη διαδρομή /dev/mapper το αρχείο PRIVATE θα έχει εξαφανιστεί (κλείσει). Έχει μείνει στον προσωπικό μας κατάλογο το αρχείο ονόματι PRIVATE που δημιουργήσαμε στην αρχή της διαδικασίας. Αυτό είναι και το κρυπτογραφημένο αρχείο-container το οποίο δεν πειράζουμε.

Για να το ανοίξουμε ξανά και να τροποποιήσουμε αρχεία, πρέπει να ακολουθήσουμε την ίδια διαδικασία, προσάρτησης και ανοίγματος.
Παράδειγμα:

 sudo cryptsetup luksOpen PRIVATE PRIVATE 
 sudo mount /dev/mapper/PRIVATE/ /mnt 

ΤΙ ΚΑΝΑΜΕ ΣΕ ΑΥΤΟ ΤΟΝ ΟΔΗΓΟ

  1. Δημιουργήσαμε ένα αρχείο μεγέθους 1GB,
  2. το διαμορφώσαμε με το cryptsetup σε ένα κρυπτογραφημένο χώρο,
  3. στη συνέχεια δημιουργήσαμε ένα σύστημα αρχείων(ext4) σε αυτό το αρχείο (μετατροπή σε container),
  4. έπειτα κάναμε προσάρτηση το container σε ένα σημείο προσάρτησης (/mnt),
    • με τη προϋπόθεση ότι έχουμε ολοκληρώσει τη δημιουργία ή αντιγραφή αρχείων στο /mnt
  5. κάνουμε αποπροσάτηση το container και κλείνουμε το σημείο πρόσβασης (κρυπτογραφούμε).
Advertisement

Συμβάλετε κι εσείς με ένα σχόλιο

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

Ο ιστότοπος χρησιμοποιεί το Akismet για την εξάλειψη των ανεπιθύμητων σχολίων. Μάθετε πως επεξεργάζονται τα δεδομένα των σχολίων σας.