<<

Από ένα απλό backup στο επίμονο Tails

Η αρχική ιδέα ήταν ν’ αγοράσω ένα μικρής χωρητικότητας USD thumb drive, το οποίο θα είχα διαρκώς μαζί μου. Στο thumb drive θα υπήρχε backup (του backup) πολύ συγκεκριμένων αρχείων, όπως, π.χ., μια κρυπτογραφημένη βάση του KeePassXC, ένα πλήθος SSH keypairs, ζεύγη κλειδιών που ορίζουν Onion URLs, αντίγραφα σημαντικών –και σχεδόν πάντα βαρετών– εγγράφων κ.ο.κ.

Να πω εδώ ότι, ανεξαρτήτως του είδους ενός ζεύγους κλειδιών, το αντίστοιχο ιδιωτικό κλειδί αποθηκεύεται πάντα σε κρυπτογραφημένη μορφή. Φυσικά, το ίδιο ισχύει και για εκείνα τα σχεδόν πάντα βαρετά –αλλά σημαντικά– έγγραφα. Όλοι το γνωρίζουν αυτό και η αναφορά δεν χρειαζόταν καν, αν όμως δεν γινόταν δεν θα μπορούσα να βρω ησυχία για τη συνέχεια.

Το σκεπτικό μου, λοιπόν, ήταν να έχω ένα επιλεκτικό, φορητό κι ασφαλές backup συγκεκριμένων αρχείων, το οποίο θα με ακολουθεί παντού επειδή το USB thumb drive θα είναι συνδεδεμένο, π.χ., στο μπρελόκ με τα κλειδιά (τα κλασσικά, με φυσική υπόσταση).

Έγραψα στο Twitter τι σχεδίαζα να κάνω, περίμενα ως την άλλη μέρα για feedback, πήρα τελικά feedback από τον επί σειρά ετών follower και φίλο που περίμενα ότι ίσως δώσει feedback (γεια σου επί σειρά ετών follower και φίλε, ξέρεις ποιος είσαι), και μετά ξεκίνησα τις αναζητήσεις σε υπηρεσία σύγκρισης τιμών και παραγγελιών.

Δεν άργησα να εντοπίσω ένα USB thumb drive σαν αυτό που είχα κατά νου. Το έβαλα στο καλάθι, προχώρησα στο checkout, δεν πλήρωσα με crypto, αφού κάποιοι αδιαφορούν για το τι θέλουν οι πελάτες τους, περίμενα μία ή δύο μέρες (μπορεί να ήταν και τρεις, δεν θυμάμαι), και τελικά βρήκα το ολοκαίνουργιο USB thumb drive σε τοπικό pick-up locker (ή όπως αλλιώς λέγονται αυτά).

Αλλαγή συστήματος αρχείων

Το thumb drive ήταν ήδη φορμαρισμένο κατά exFAT, ένα σύστημα αρχείων της Microsoft που προορίζεται για flash drives και κάρτες SD. Το exFAT υποστηρίζεται πλήρως (read/write) από Windows (προφανώς), Linux και macOS. Θα μπορούσα να το αφήσω ως είχε, το γεγονός όμως ότι είναι δημιούργημα της Microsoft δεν είναι κάτι που μπορώ ν’ αγνοήσω. Δηλαδή μπορώ, μόνο που μερικές μέρες μετά το θυμάμαι και θέλω κάτι να κάνω. Στην προκειμένη περίπτωση, όχι επειδή το exFAT υστερεί τεχνικά, αλλά επειδή προτιμώ συστήματα αρχείων ανοικτού κώδικα, όπως, π.χ., είναι το ext4.

Το ext4 είναι το filesystem στους cloud servers μου, στις διανομές Linux που έχω σε δύο laptop (το ένα με Qubes OS και το άλλο με Linux Mint), καθώς και σε δύο VMs ενός MacBook που χρησιμοποιώ (σχεδόν) αποκλειστικά στη nine-to-five. Διαφορετικά: Ανεξαρτήτως της διανομής Linux πάντα επιλέγω το ext4 – εκτός κι αν έχω να κάνω με το openSUSE, όπου γι’ αυτό ειδικά προσπαθώ ν’ αφήνω την προεπιλογή που είναι το Btrfs.

Για να μη μακρηγορώ άλλο, το format δεν άργησε για το thumb drive. Με συνοπτικές διαδικασίες, το μέσο πέρασε από το exFAT στο ext4 κι όλοι (ο εξής ένας) πολύ χαρήκαμε. Όσον αφορά στη συμβατότητα με υπολογιστές Windows ή macOS, η κατάσταση έχει ως ακολούθως.

  • Windows. Υποστηρίζουν πλήρως το ext4, χάρη στο Windows Subsystem for Linux (WSL). Βέβαια το WSL δεν διατίθεται και για όλες τις 129 εκδόσεις κι εκδοχές του λειτουργικού. Υπάρχει όμως και το σχετικό εμπορικό προϊόν της Paragon, το οποίο καθιστά κάθε έκδοση των Windows ικανή να διαβάζει και να γράφει σε κατατμήσεις με ext4. Κάτι άλλο που συμβαίνει με τα Windows είναι ότι έχω πάψει να τα χρησιμοποιώ εδώ και πολλά χρόνια τώρα, επομένως το να ξέρω τι ισχύει και τι δεν ισχύει όσον αφορά στην υποστήριξη του ext4 δεν είναι πολύ ψηλά στη λίστα των προτεραιοτήτων μου. Διόρθωση: δεν είναι καν στη λίστα και μπαίνει μόνο για λίγο, όταν είναι να κάνω σχετικές αναφορές.
  • macOS. Για πλήρη υποστήριξη του ext4 διατίθεται το σχετικό εμπορικό προϊόν από την Paragon. Από εκεί και πέρα υπάρχει και το open source σύστημα ext4fuse, το οποίο είναι διαθέσιμο μέσω Homebrew φόρμουλας. Τις λίγες φορές, πάντως, που χρειάστηκα πρόσβαση σε σύστημα αρχείων ext4 από υπολογιστή με macOS, απλά ξεκίνησα ένα Linux VM, συνέδεσα το σχετικό μέσο αποθήκευσης (μέσω φυσικής θύρας USB) στο VM, κι ακολούθως μετέφερα όποια αρχεία ήθελα από τον guest στον host μέσω SSH.

Backup και μετά τι;

Μετά το φορμάρισμα του thumb drive κατά ext4, σειρά είχε το επιλεκτικό backup των αρχείων που ήθελα και στο νέο φορητό μέσο. Κρυπτογράφησα ό,τι χρειαζόταν να κρυπτογραφηθεί, έφτιαξα μια βολική δομή καταλόγων, τακτοποίησα εκεί τα αρχεία του backup κι όλα ήταν μια χαρά.

Μόνο που, ήδη από την επόμενη μέρα, το thumb drive άρχισε ξαφνικά να φαντάζει ως κάτι αόριστα λάθος και ειδικά κενό. Όχι επειδή μετά το backup είχε άπλετο αποθηκευτικό χώρο διαθέσιμο – αυτό άλλωστε το περίμενα. Φαινόταν αόριστα λάθος και ειδικά κενό από τη στιγμή που σκέφτηκα ότι, πέρα από ένα φορητό και βολικό μέσο για επιλεκτικό backup, το thumb drive θα μπορούσε να έχει και κάποιον άλλο ρόλο.

Τον παλιό καλό (λέμε τώρα) καιρό, κάποιοι από εμάς φροντίζαμε να έχουμε μαζί μας ένα CD/DVD κι αργότερα ένα USB stick, στο οποίο υπήρχαν εργαλεία για data recovery, emergency boot/rescue, antivirus κι άλλα τέτοια. Ορισμένοι, αρκετά προχωρημένοι, είχαν ένα ολόκληρο live OS στο φορητό μέσο, είτε για γενική χρήση (π.χ., Slax, Puppy Linux) είτε για πιο εξειδικευμένη (π.χ., GParted, Kali Linux).

Όλες αυτές οι διανομές Linux εξακολουθούν να έχουν το ενδιαφέρον και τις πρακτικές τους εφαρμογές. Αν βέβαια λάβω υπόψη το πώς μοιάζει η τωρινή μου σχέση την τεχνολογία, τότε δεν μπορώ να φανταστώ κάτι από τα προηγούμενα που θα με ενδιέφερε σήμερα, αύριο ή στο προσεχές –μη σας πω και στο μακρινό– μέλλον.

Καμία live διανομή δεν με συγκινεί, λοιπόν, εκτός ίσως από το Tails.

Το “ίσως” σβήστε το, αφού τη στιγμή που γράφονται αυτές οι γραμμές το Tails είναι ήδη εγκατεστημένο σ’ εκείνο το USB thumb drive.

Tails και Persistent Storage

Το Tails είναι μια live διανομή Linux που εγκαθίσταται σ’ ένα φορητό μέσο αποθήκευσης, και μετά το boot τρέχει αποκλειστικά από τη μνήμη RAM του υπολογιστή χωρίς ν’ αγγίζει καν κάποια από τα διαθέσιμα μέσα αποθήκευσης. Είναι έτσι σχεδιασμένο και ρυθμισμένο, ώστε όλη ανεξαιρέτως η διαδικτυακή κίνηση λειτουργικού κι εφαρμογών να δρομολογείται αυτομάτως μέσω του δικτύου ανωνυμίας Tor. Αυτό ακριβώς το χαρακτηριστικό καθιστά το Tails άριστη επιλογή για όλους όσοι χρειάζονται να επικοινωνήσουν, να ερευνήσουν ή απλά να περιηγηθούν στο διαδίκτυο ανώνυμα και προστατεύοντας την ιδιωτικότητά τους.

Με το που κλείνουμε ή επανεκκινούμε τον υπολογιστή στον οποίο τρέχει το Tails, το περιεχόμενο της μνήμης RAM φυσικά εξαφανίζεται κι επειδή, επιπρόσθετα, το Tails δεν γράφει στα μέσα αποθήκευσης του μηχανήματος που το φιλοξενεί, τελικά δεν μένει κάποιο στοιχείο που να μαρτυρά ότι το λειτουργικό έτρεξε στο συγκεκριμένο hardware.

Μόνο που, κάποιες φορές, θέλουμε και το Tails να χρησιμοποιήσουμε και να δημιουργήσουμε αρχεία που θα επιβιώσουν ενός reboot. Ή μπορεί, στο thumb drive με το Tails, να θέλουμε κι ένα επιλεκτικό, φορητό κι ασφαλές backup (του backup) συγκεκριμένων αρχείων, το οποίο θα μας ακολουθεί παντού αφού το thumb drive θα είναι συνδεδεμένο, π.χ., στο μπρελόκ με τα κλειδιά (τα κλασσικά, με φυσική υπόσταση).

Tails επίμονο

Για περιπτώσεις σαν αυτές, το Tails έχει το Persistent Storage. Πιο συγκεκριμένα, μετά την εγκατάσταση του Tails σε κάποιο φορητό μέσο, σε όλο το χώρο που απομένει είναι δυνατόν να δημιουργηθεί μία κρυπτογραφημένη κατάτμηση. Αυτή αποτελεί το λεγόμενο Persistent Storage του Tails, κι ό,τι αποθηκεύεται εκεί δεν χάνεται μετά από reboot. Μεταξύ άλλων, λοιπόν, στο Persistent Storage μπορεί κάποιος να έχει ένα backup, σαν αυτό που με ενδιέφερε.

Τώρα, κάθε φορά που ξεκινάμε το Tails και πριν ακόμη συνδεθούμε στον προκαθορισμένο λογαριασμό χρήστη, μπορούμε αν θέλουμε να πληκτρολογήσουμε το password του Persistent Storage κι αυτό θα προσαρτηθεί κι εμείς θα έχουμε πλήρη πρόσβαση στο περιεχόμενό του. Μάλιστα δεν είναι καν υποχρεωτικό να φορτώσουμε το Tails, αν το μόνο που θέλουμε είναι να διαβάσουμε ή να γράψουμε κάτι στο Persistent Storage. Πράγματι, στη σχετική κατάτμηση είναι δυνατόν να έχουμε πλήρη πρόσβαση κι από οποιαδήποτε άλλη διανομή Linux, αρκεί βεβαίως να γνωρίζουμε το αντίστοιχο password.

Όμως ο μηχανισμός του Persistent Storage δεν προσφέρεται μόνο για περιστασιακή αποθήκευση αρχείων. Πολύ περισσότερο, αν το θέλουμε, αποθηκεύονται εκεί αυτομάτως τα passwords των ασύρματων δικτύων στα οποία έχει συνδεθεί το Tails, το πλέον πρόσφατο Tor bridge που χρησιμοποιήσαμε επιτυχώς, εκτυπωτές και οι ρυθμίσεις τους (παίζει να μη χρησιμοποιήσω ποτέ αυτή τη δυνατότητα), bookmarks του Tor Browser, email και ρυθμίσεις του Thunderbird, κλειδιά GnuPG και SSH, κ.ο.κ.

Το Persistent Storage έχει κι άλλες δύο εφαρμογές, εξαιρετικά χρήσιμες για όλους όσους όσοι δουλεύουν συχνά με το Tails.

Ως πλήρης διανομή Linux, η οποία, παρεμπιπτόντως, βασίζεται στο Debian, το Tails επιτρέπει την εγκατάσταση εφαρμογών, π.χ., με χρήση του εργαλείου apt ή του Synaptic Package Manager. Από τη στιγμή βέβαια που το Tails ζει στη μνήμη RAM, μετά από reboot όποιες εφαρμογές έχουμε εγκαταστήσει χάνονται. Εκτός κι αν έχουμε ενεργοποιήσει τη δυνατότητα για δημιουργία και τήρηση λίστας εφαρμογών στο Persistent Storage, η οποία περιλαμβάνει όλο το έξτρα software που έχουμε εγκαταστήσει. Αν λοιπόν ο σχετικός μηχανισμός είναι ενεργοποιημένος, τότε κάθε φορά που ξεκινάμε το Tails το λογισμικό της λίστας εγκαθίσταται αυτόματα.

Υπάρχει, τέλος, το θέμα με τις ρυθμίσεις που κάνουμε σε λειτουργικό κι εφαρμογές, τις οποίες συχνά θέλουμε να διατηρούνται και μετά από reboot. Η λύση που παρέχει το Tails είναι ο μηχανισμός των Dotfiles. Ρυθμίζουμε όπως θέλουμε μια όψη του περιβάλλοντος ή μια εφαρμογή και, κατά τα γνωστά, στο home directory του χρήστη μας δημιουργείται ή τροποποιείται ένα dot-file ή ένα αρχείο μέσα σε dot-directory. Προκειμένου να διατηρείται το σχετικό αρχείο, επομένως και οι ρυθμίσεις μας, μετά από κάθε reboot, το αντιγράφουμε σε έναν προκαθορισμένο κατάλογο του Persistent Storage και στο home directory δημιουργείται κατάλληλο symbolic link. Στην πραγματικότητα, το τι αντιγράφουμε και πού είναι λίγο πιο περίπλοκο. Κι αυτό διότι, αν μη τι άλλο, δεν υπάρχει ένας μόνον τρόπος για την αποθήκευση των ρυθμίσεων διαφόρων εφαρμογών. Σε κάθε περίπτωση, πάντως, αναλυτικές οδηγίες και παραδείγματα υπάρχουν, επομένως όσοι θέλουν να χρησιμοποιούν το Tails τακτικά διευκολύνονται σημαντικά – και η ομοιοκαταληξία προέκυψε (ψευδο)τυχαία.