<<

Mail-in-a-Box σε cloud server με κρυπτογραφημένο δίσκο

Πάντα μου άρεσε να έχω τον δικό μου mail server, και πάντα ήταν πολύ πιο εύκολο να λες ότι θέλεις τον δικό σου mail server από το να έχεις τον δικό σου mail server και μάλιστα να δουλεύει σωστά. Το Mail-in-a-Box, ή απλά MiaB, είναι ένα υπέροχο πρότζεκτ που σου επιτρέπει να έχεις σχετικά εύκολα τον δικό σου, πλήρως λειτουργικό mail server, στο cloud. Προσέξτε: Όχι σε home server, αλλά σε κάποιον virtual server σαν αυτούς που νοικιάζεις από Digital Ocean, Linode, Hetzner κι άλλους providers. Υπογραμμίζω ότι η περίπτωση εγκατάστασης στο σπίτι δεν παίζει, αφού αφενός δεν υπάρχει ISP που να μη μπλοκάρει το port 25/TCP, αφετέρου ακόμη και να υπήρχε θα έπρεπε να παρέχει και τη δυνατότητα για στατικό IP ώστε να μπορεί να οριστεί reverse DNS.

Πέρα από την ευκολία, ένα από τα έξτρα οφέλη του MiaB είναι ότι σου δίνει και τον δικό σου DNS server. Μιλάμε για DNS που μπορείς να ελέγχεις εύκολα από το σχετικό web dashboard ή ακόμη και προγραμματικά, ώστε, π.χ., να ενημερώνεις αυτόματα τις δυναμικές διευθύνσεις domains ή subdomains για ένα πλήθος sites και υπηρεσιών. Επίσης, στον ίδιο server μπορείς να φιλοξενείς ένα ή περισσότερα static sites με δωρεάν SSL certificates από το Let’s Encrypt, τα οποία ανανεώνονται αυτόματα. Επιπλέον, χάρη στο Nextcloud που εγκαθιστά το MiaB, αν θέλεις έχεις ημερολόγιο, επαφές, καθώς κι ένα χώρο για αποθήκευση και διαμοίραση αρχείων.

Τέλος πάντων, πρώτη φορά που άρχισα να χρησιμοποιώ το MiaB ήταν τέλη του 2014 ή αρχές του 2015, όταν το πρότζεκτ έτρεχε πάνω από Ubuntu 14.04 LTS. Το MiaΒ ανέκαθεν απαιτούσε μια καθαρή εγκατάσταση της εκδοχής LTS του Ubuntu, κι από εκεί και πέρα όποιος ενδιαφέρεται ακολουθεί τις σχετικές οδηγίες εγκατάστασης.

Στροφή στο Proton Mail

Η ενημέρωση πακέτων για το MiaB αλλά και για το Ubuntu γίνεται πάρα πολύ απλά κι εύκολα, μέσα από το web dashboard του MiaB. Πάντα όμως φτάνουμε σε ένα σημείο όπου για να προχωρήσουμε σε νέα major έκδοση του MiaB πρέπει πρώτα να προηγηθεί distribution upgrade του Ubuntu — κι αυτό είναι ένα βήμα που δεν γίνεται αυτόματα. Αντίθετα, ο χρήστης οφείλει να έχει ενημερωμένο backup από την εγκατάσταση του MiaB, να δημιουργήσει νέο cloud server (στον ίδιο ή σε άλλον provider) με τη νέα επισήμως υποστηριζόμενη έκδοση του Ubuntu LTS, να εγκαταστήσει εκεί την πλέον πρόσφατη έκδοση του MiaB και, τέλος, να επαναφέρει το backup στον καινούργιο server. Μετά, αφού βεβαιωθεί ότι ο νέος δουλεύει σωστά, μπορεί να αποσύρει τον παλιό server. Σίγουρα δεν πρόκειται για την πιο απλή μέθοδο αναβάθμισης, αλλά τουλάχιστον είναι τεκμηριωμένη λεπτομερώς και δουλεύει αποδεδειγμένα.

Ενώ λοιπόν το Ubuntu 14.04 LTS πλησίαζε γρήγορα στο τέλος του λεγόμενου General support (από εκεί και μετά υπάρχει μόνο το Security support για κάποια χρόνια), και το MiaB που έτρεχα ήταν ήδη πάρα πολύ πίσω σε σχέση με την πρόσφατη, ενημερωμένη και περισσότερο ασφαλή έκδοση για το Ubuntu 16.04 LTS, αποφάσισα ότι είχε έρθει η ώρα για αλλαγή. Συγκεκριμένα, αντί να περάσω σε νέο server με το Ubuntu 16.04 LTS, αναβάθμισα τον δωρεάν λογαριασμό που ήδη είχα στο Proton Mail, μετέφερα εκεί τα domains και τα email από το MiaB, έχασα λόγω βιασύνης αρκετά email, είπα ψέμματα στον εαυτό μου ότι δεν τα χρειαζόμουν, και μετά ξέχασα το MiaB κι έγινα χαρούμενος χρήστης του Proton Mail. Ούτως ή άλλως, σκέφτηκα, ο αναβαθμισμένος λογαριασμός στο Proton Mail βγαίνει πιο φθηνά ανά μήνα σε σχέση με ό,τι πλήρωνα στη DigitalOcean (ο provider στον οποίο είχα το MiaB), οπότε γιατί να μην είναι όλα καλά με το Proton Mail;

Όλα τέλεια, αλλά υπάρχει και “αλλά”

Και πράγματι, στην αρχή δεν υπήρχε κάτι που να με δυσαρεστεί με το νέο setup στο Proton Mail. Το web dashboard του, π.χ., σίγουρα υστερεί σε σύγκριση με ό,τι προσφέρει η Google. Λαμβάνοντας όμως υπόψη το πώς χρησιμοποιώ καθημερινά το email και το ημερολόγιο, μπορώ να πω ότι με το Proton Mail ποτέ δεν μου έλλειψε κάτι. Τώρα που το σκέφτομαι, ποτέ δεν μπήκα καν στον κόπο να συγκρίνω χαρακτηριστικά και δυνατότητες. Με το Proton Mail έχεις μια πλατφόρμα που εκ των προτέρων γνωρίζεις ότι το επιχειρηματικό της μοντέλο δεν βασίζεται στην αλίευση, επεξεργασία κι εκμετάλλευση δεδομένων που αφορούν στους χρήστες και στις online τους συνήθειες. Ε, αυτό και μόνο για εμένα είναι αρκετό ώστε να χρησιμοποιώ το Proton Mail και να ‘μαι κι ευχαριστημένος. Υποθέτω μάλιστα ότι το ίδιο ισχύει και για την πλειονότητα των χρηστών του Proton Mail, κι αυτό με κάνει ακόμα πιο χαρούμενο χρήστη της πλατφόρμας.

Και παρ’ όλα αυτά, ο DNS του MiaB μού έλειπε. Δεν τον είχα μεγάλη ανάγκη, είναι η αλήθεια, όμως μου έλειπε. Κάτι άλλο που κάπως με χαλούσε —και συνεχίζει να με χαλάει— με το Proton Mail, είναι ότι για να διαχειρίζεσαι την αλληλογραφία σου από κάποιον desktop client σαν το Mozilla Thunderbird ή το Apple Mail, χρειάζεσαι το Proton Mail Bridge να τρέχει στο background. Εντάξει, καταλαβαίνω ότι είναι απαραίτητο ώστε τα εξερχόμενα email να κρυπτογραφούνται αυτόματα και τα εισερχόμενα email να αποκρυπτογραφούνται αυτόματα, έχω ωστόσο μεγαλώσει σ’ έναν κόσμο όπου τέτοιου είδους γέφυρες δεν χρειάζονται για τη λήψη και την αποστολή email. Και πέρα από την πλάκα, πώς μπορείς, π.χ., να ρυθμίσεις ένα containerized Nextcloud να στέλνει email, όταν χρειάζεσαι το Proton Mail Bridge; Φαντάζομαι ότι όλο και κάποιος τρόπος θα υπάρχει, αλλά αν είχα το MiaB η όλη υπόθεση θα ήταν παιχνιδάκι. Και μη μου πείτε τώρα ότι μπορώ να χρησιμοποιήσω το Gmail ως mail relay, γιατί εδώ κάνουμε ό,τι μπορούμε ώστε να μην αγγίζουμε τις υπηρεσίες της Google — τουλάχιστον όχι χωρίς να έχουμε πρώτα λάβει τα απαραίτητα μέτρα. (Αλλά αυτή είναι μια άλλη, μεγάλη κι εξαιρετικά ενδιαφέρουσα συζήτηση.)

MiaB και πάλι

Να μην τα πολυλογώ (OK, είναι πλέον αργά γι’ αυτό), περίπου στις αρχές της άνοιξης του ‘22 επέστρεψα ξανά στο αγαπημένο MiaB, στην επίσης αγαπημένη DigitalOcean. Ούτε καν υποψιαζόμουν τότε ότι θα της γύριζα την πλάτη, αλλά ας μην προτρέχω. Στο δε Proton Mail, πάντως, δεν γύρισα την πλάτη. Αντίθετα, άφησα εκεί ένα από τα custom domains μου, το email του οποίου μάλιστα χρησιμοποιώ πολύ συχνά, ενώ όλα τα υπόλοιπα τα μετέφερα στην καινούργια εγκατάσταση του MiaB.

Όλα ήταν καλά κι εξελίσσονταν ομαλά, τουλάχιστον ως τα τέλη του Οκτωβρίου του 2022. Τότε ήταν όταν ανακοινώθηκε μια νέα έκδοση του MiaB, η οποία απαιτούσε το Ubuntu 22.04 LTS. Η δική μου εγκατάσταση έτρεχε στο 18.04 LTS και, τις πρώτες εβδομάδες μετά την ανακοίνωση, προσποιόμουν ότι δεν έχει συμβεί κάτι. Μετά βέβαια ισχυροί τριγμοί άρχισαν στον online μικρόκοσμό μου, αφού δεν ήταν δυνατόν, για δεύτερη φορά, το MiaB να τρέχει μπροστά και η εγκατάστασή μου να είναι κολλημένη τόσο πίσω. Περιττό λοιπόν να πω ότι σύντομα πήρα την απόφαση να κάνω ό,τι χρειάζεται για να το προλάβω.

Τα κατάφερα — αλλά αυτό από μόνο του είναι εντελώς αδιάφορο.

Σενάρια, ασκήσεις, αναζητήσεις

Αυτό που έχει ένα κάποιο ενδιαφέρον, τουλάχιστον για τον Yours Truly, είναι η απόφαση που πήρα πριν ακόμα εγκαταστήσω τον νέο server. Σκεφτόμουν ότι τα email που αποθηκεύονται στους servers του Proton Mail είναι κρυπτογραφημένα, χωρίς η εταιρεία να έχει δυνατότητα για αποκρυπτογράφηση. Στο δε MiaB δεν ισχύει κάτι τέτοιο, δηλαδή τα email που αποθηκεύονται εκεί δεν είναι κατ’ ανάγκη κρυπτογραφημένα. Βέβαια αυτό δεν είναι και πολύ αρνητικό, ειδικά για περιπτώσεις σαν τη δική μου όπου το MiaB χρησιμοποιείται από ένα μόνο φυσικό πρόσωπο.

Ναι, μάλλον δεν είναι αρνητικό, αρκεί να μην αρχίσεις να το σκέφτεσαι.

Στον εικονικό, μη κρυπτογραφημένο δίσκο του MiaB, ο cloud provider δύναται να έχει πρόσβαση. Σκεφτείτε το: Ακόμη κι αν ο χρήστης ζητήσει διαγραφή του server, δεν μπορεί να είναι 100% βέβαιος για το τι ακριβώς θα ακολουθήσει. Έχει όμως λόγο η DigitalOcean να κρυφοκοιτάζει στους δίσκους των cloud server των πελατών της; Φαντάζομαι πως δεν έχει, εκτός βέβαια κι αν της επιδοθεί σχετική εισαγγελική εντολή. Και πάλι, όμως, η πιθανότητα να συμβεί κάτι παρόμοιο για τον δικό μου λογαριασμό θεωρώ ότι είναι, πρακτικά, μηδέν. Αλλά ακόμη κι αν ο provider αρχίσει να κρυφοκοιτάζει, ξέρω ότι δεν θα βρει κάτι —έστω κι ελάχιστα— ενδιαφέρον. Ως άσκηση, όμως, θα ήθελα ο δίσκος του cloud server —ειδικά για το MiaB— να είναι κρυπτογραφημένος και μόνον εγώ να έχω δυνατότητα για αποκρυπτογράφηση.

Κατά τη δημιουργία νέου server στη DigitalOcean, ο χρήστης επιλέγει OS image με βάση το οποίο δημιουργείται ο δίσκος του server. Βεβαίως, κανένα από αυτά τα images δεν είναι κρυπτογραφημένο — δεν θα μπορούσε να είναι, δηλαδή. Μια εναλλακτική λύση θα ήταν να φτιάξουμε έναν καινούργιο server, και μετά να του προσαρτήσουμε ένα έξτρα volume. Ακολούθως, μέσα από το λειτουργικό του server, θα δημιουργήσουμε ένα σύστημα αρχείων πάνω στο αντίστοιχο block device και φυσικά θα το κρυπτογραφήσουμε. Μετά, πριν ακόμη ξεκινήσουμε το script εγκατάστασης του MiaB, θα αρχικοποιήσουμε κατάλληλα τη μεταβλητή STORAGE_ROOT ώστε το MiaB να χρησιμοποιεί το κρυπτογραφημένο block device για την αποθήκευση όλων των σχετικών δεδομένων.

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

  • το μηνιαίο κόστος του cloud server αυξάνεται
  • ο δίσκος εκκίνησης παραμένει μη-κρυπτογραφημένος, κι αν κολλήσεις το μικρόβιο της κρυπτογράφησης τότε απλά δεν μπορείς ν’ αγνοήσεις αυτή τη σκέψη.

Πριν λοιπόν υλοποιήσω αυτή την ατελή, όπως γρήγορα συμπέρανα, λύση, σκέφτηκα να κάνω μια αναζήτηση σε άλλους cloud providers, με την ελπίδα να βρω κάποια εναλλακτική πρόταση.

Full disk encryption, μπέιμπι!

Τελικά δεν χρειάστηκε να ψάξω πολύ για να βρω την εναλλακτική (ομοιοκαταληξία not intended) — και τη βρήκα στον cloud provider ονόματι Vultr. Είχα ακούσει ξανά στο παρελθόν για την εταιρεία, αυτή τη φορά όμως μπήκα στον κόπο και κοίταξα καλύτερα για το τι προσφέρει. Το χαρακτηριστικό που κάνει τη διαφορά, σε σχέση με ό,τι αναζητούσα, είναι ότι η Vultr σου επιτρέπει ν’ ανεβάσεις ένα ή περισσότερα ISO images στο λογαριασμό σου. Από εκεί και μετά, δημιουργείς cloud servers κι αν θέλεις τους εγκαθιστάς λειτουργικό σύστημα από το μηδέν, με βάση κάποιο από τα δικά σου ISO images. Είναι, δηλαδή, σαν να ξεκινάς με έναν φυσικό υπολογιστή χωρίς λειτουργικό και να εγκαθιστάς από ένα DVD ή USB thumb drive, στο οποίο έχεις ήδη γράψει το ISO image του λειτουργικού συστήματος που θέλεις. Κατά τη διαδικασία της εγκατάστασης, παρεμπιπτόντως, το ρόλο της οθόνης του φυσικού υπολογιστή παίζει η web console που παρέχει η Vultr.

Έτσι έκανα κι εγώ, ως νέος πελάτης της Vultr. Αφού άνοιξα λογαριασμό, ανέβασα εκεί το επίσημο ISO image του Ubuntu 22.04 Server LTS, για συστήματα αρχιτεκτονικής x86_64. Μετά έφτιαξα έναν νέο cloud server χωρίς να διαλέξω κάποιο από τα έτοιμα OS images. Αντίθετα, υπέδειξα το ISO μου. Αφού ξεκίνησα την εικονική μηχανή, άνοιξα την αντίστοιχη web console και προχώρησα στην εγκατάσταση του λειτουργικού κανονικά. Όταν ο installer ρώτησε για το πώς θα δημιουργήσει κατατμήσεις στον έναν και μοναδικό δίσκο του cloud server, ως μέθοδο επέλεξα το Guided - use entire disk and set up encrypted LVM και λίγο αργότερα όρισα ισχυρό passphrase για την (απο)κρυπτογράφηση του δίσκου. Κατά τα άλλα, η εγκατάσταση του συστήματος προχώρησε κι ολοκληρώθηκε ομαλά. Μετά συνδέθηκα στον νέο cloud server μέσω SSH, από ένα τερματικό του laptop μου, και προχώρησα με την εγκατάσταση του MiaB. Τελευταίο βήμα ήταν το restore του backup, το οποίο είχα ήδη πάρει από το προς απόσυρση MiaB στη DigitalOcean. Δεν παρουσιάστηκε κάποιο πρόβλημα με το restore, οπότε βρέθηκα με ένα ολοκαίνουριο Μail-in-a-Box, σε cloud server με πλήρως κρυπτογραφημένο δίσκο.

Κάτι που χρειάζεται προσοχή μ’ αυτή την προσέγγιση είναι η επιλογή ισχυρού passphrase, το οποίο αν ξεχάσουμε εννοείται ότι κανείς δεν θα είναι σε θέση να μας βοηθήσει ν’ ανακτήσουμε. Ευτυχώς, για περιπτώσεις σαν αυτές υπάρχουν εργαλεία όπως το υπέροχο BitWarden. Επίσης, κάθε φορά που για οποιονδήποτε λόγο επανεκκινούμε τον cloud server, εννοείται πως πρέπει να συνδεθούμε στη web console και στη σχετική προτροπή να πληκτρολογήσουμε το passphrase για την αποκρυπτογράφηση του boot disk. (Καταλαβαίνω ότι αντί της web console το ξεκλείδωμα επιτυγχάνεται και μέσω Dropbear SSH, προς το παρόν όμως δεν έχω βρει χρόνο ώστε ν’ ασχοληθώ με το σχετικό setup.)

Ένα άλλο θετικό, για εμένα τουλάχιστον, που έχει η Vultr, είναι ότι πέρα από PayPal και πιστωτικές κάρτες, για τις πληρωμές δέχεται και Bitcoin (άρα και Monero, π.χ., μέσω της υπηρεσίας “Payment” του Trocador.app.)

Referral URLs για δοκιμές;

Φυσικά και υπάρχουν:

Για οποιαδήποτε ερώτηση περί Mail-in-a-Box, Proton Mail, Digital Ocean, Vultr ή οτιδήποτε άλλο, θα χαρώ να τα πούμε.