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

Πρώτη δημοσίευση: 2022-12-31

Τελευταία ενημέρωση: 2026-01-11

Πάντα μου άρεσε να έχω τον δικό μου mail server.

Πάντα ήταν πιο εύκολο να λες ότι θέλεις να έχεις τον δικό σου mail server, από το να τον έχεις και να δουλεύει σωστά.

Το Mail-in-a-Box ή απλά MiaB, είναι ένα υπέροχο πρότζεκτ που σου επιτρέπει να έχεις σχετικά εύκολα τον δικό σου, πλήρως λειτουργικό mail server, στο cloud. Προσέξτε: Όχι σε home server, αλλά σε κάποιον server σαν αυτούς που νοικιάζεις από DigitalOcean, 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. Λαμβάνοντας μάλιστα υπόψη το πώς χρησιμοποιώ το email και το ημερολόγιο, μπορώ να πω ότι με το Proton Mail ποτέ δεν μου έλειψε κάτι.

Επιπρόσθετα, με το Proton Mail έχεις μια πλατφόρμα που εκ των προτέρων γνωρίζεις ότι το επιχειρηματικό της μοντέλο δεν βασίζεται στην αλίευση, επεξεργασία κι εκμετάλλευση δεδομένων που αφορούν στους χρήστες και στις online τους δραστηριότητες. Αυτό και μόνο μου αρκεί ώστε να χρησιμοποιώ το Proton Mail και να 'μαι κι ευχαριστημένος. Υποθέτω μάλιστα ότι το ίδιο ισχύει και για την πλειονότητα των χρηστών του Proton Mail, κι αυτό με κάνει ακόμα πιο χαρούμενο χρήστη της πλατφόρμας.

Και παρ' όλα αυτά, ο DNS του MiaB μού έλειπε. Δεν τον είχα μεγάλη ανάγκη, είναι η αλήθεια, όμως μου έλειπε.

MiaB και πάλι

Στις αρχές της άνοιξης του '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 και φυσικά θα το κρυπτογραφούσαμε. Πριν την εγκατάσταση του MiaB, θα αρχικοποιούσαμε κατάλληλα τη μεταβλητή STORAGE_ROOT, ώστε το MiaB να χρησιμοποιήσει το κρυπτογραφημένο block device για την αποθήκευση όλων των σχετικών δεδομένων.

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

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

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

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

Δεν χρειάστηκε να ψάξω πολύ για να βρω την εναλλακτική -- και τη βρήκα στον cloud provider ονόματι Vultr. Είχα ακούσει ξανά στο παρελθόν για την εταιρεία, αυτή τη φορά όμως μπήκα στον κόπο και κοίταξα καλύτερα για το τι προσφέρει.

Η Vultr σου επιτρέπει ν' ανεβάζεις ISO images στο λογαριασμό σου. Μετά, καθώς δημιουργείς ένα νέο cloud server, αν θέλεις του εγκαθιστάς λειτουργικό σύστημα από το μηδέν, με βάση κάποιο από τα ISO images που έχεις ήδη ανεβάσει. Είναι, δηλαδή, σαν να ξεκινάς με έναν φυσικό υπολογιστή χωρίς λειτουργικό και να εγκαθιστάς από ένα USB thumb drive, στο οποίο έχεις ήδη γράψει το 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.

(Καταλαβαίνω ότι το ξεκλείδωμα επιτυγχάνεται και μέσω Dropbear SSH, αλλά δεν έχω ακόμα ασχοληθεί με το σχετικό setup.)

Ένα άλλο θετικό που έχει η Vultr είναι ότι πέρα από PayPal και πιστωτικές, για τις πληρωμές δέχεται και crypto.

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

Από τη στιγμή που είμαι επί πληρωμή χρήστης των Proton και Vultr για χρόνια, και μάλιστα δεν έχω κάποιο (σοβαρό) παράπονο με καμία από τις σχετικές υπηρεσίες, δεν έχω και κάποιο πρόβλημα με τη διαμοίραση referral URLs.

Επιλέγω όμως να μην τα δημοσιεύω απευθείας, εδώ. Κι αυτό διότι κάποια στιγμή διαπίστωσα ότι ισχύουν για περιορισμένο χρόνο και μετά αλλάζουν. Αν λοιπόν ενδιαφερόσαστε, καλύτερα να μου στείλετε ένα email κι από τη μεριά μου θα φροντίσω σας στείλω referral URLs που ισχύουν.

Ανεξάρτητα από τα referrals, θα χαρώ να τα πούμε και περί Mail-in-a-Box, Proton, cloud providers ή οτιδήποτε άλλο.