Τι νόημα έχει να έχεις το δικό σου domain και να μην μπορείς να λάβεις ή να στείλεις mail από αυτό; Καλό και άγιο το gmail, αλλά ήρθε η ώρα να στήσουμε το δικό μας mail service.
<story time>
Κάποτε θυμάμαι, όταν ήμουν νέος, ήμουν εκ των admins για κάποιους servers που είχαμε στο προϊόν που δουλεύαμε. Όχι φοβερά πράγματα, CI, static code analysis κλπ. Έπρεπε λοιπόν να μπορούμε να στέλνουμε mail ανάλογα με τα αποτελέσματα, είτε σε local users, ή σε άλλες διευθύνσεις μέσα στην εταιρία.
Μας έδωσαν λοιπόν από το IT μια διεύθυνση για έναν smtp server στο intranet, που δεχόταν mail χωρίς ταυτοποίηση, στήσαμε κι εμείς έναν postfix στο server μας που έκανε relay τα mail μέσω του smtp, και όλα δούλεψαν ρολόι.
</story time>
Ξεκινάω λοιπόν να στήσω έναν postfix. Ψάχνω στο google για ρυθμίσεις, φτιάχνω κλειδιά με το lets encrypt, απαγορεύω τα unauthenticated relays, φτιάχνω και username aliases, και λέω είμαστε έτοιμοι! Κι ενώ μπορώ να στείλω και να λάβω mail, το gmail μαρκάρει τα μηνύματα από το domain μου ως ύποπτα για spam.
Κατάλαβα εν τέλει, ότι όταν δεν είσαι στο αποστειρωμένο περιβάλλον του intranet μιας εταιρίας, το mail spam είναι τεράστιο πρόβλημα. Έτσι, σαν admin πρέπει να λάβεις επιπλεόν μέτρα για να εξασφαλίσεις ότι τα μηνύματα σου δεν θα εκλαμβάνονται εκ προοιμίου σαν ανεπιθύματα (όσον αφορά τη google και το gmail τουλάχιστον).
Πρώτο στα πράγματα που πρέπει να φροντίσεις είναι το DNS SPF record. Πρέπει στα dns records του domain σου να προσθέσεις ένα record που να υποδεικνύει από ποιους hosts μπορούν να φεύγουν mails με διεύθυνση αποστολέα από το domain σου, και τι να κάνει ο παραλήπτης αν λάβει mail από host που δεν είναι στο spf record.
Μετά έχουμε το DKIM. Είναι κι αυτό ένα ή περισσότερα dns records, που περιέχουν ένα αναγνωριστικό και ένα κλειδί. Κάθε mail που φεύγει από το domain σου πρέπει να περιέχει ένα αναγνωριστικό και μια υπογραφή. Ο παραλήπτης παίρνει από το dns record το κλειδί που αντιστοιχεί στο αναγνωριστικό, και επαληθεύει την υπογραφή του μηνύματος.
Τέλος, έχουμε το DMARC. Το dmarc είναι μια μέθοδος που παρέχεται στους παραλήπτες μηνυμάτων με διεύθυνση αποστολέα από το domain σου. Οταν κάποια από τα μηνύματα αυτά αποτυγχάνουν στους ελέγχους dkim ή/και spf, οι παραλήπτες hosts μπορούν μέσω του dmarc να στείλουν feedback στον postmaster του domain σου, ότι κάτι δεν πάει καλά.
Για το spf αρκεί να προσθέσουμε το dns record, ενώ για τα dkim/dmarc, χρειάζονται αντίστοιχοι servers, π.χ opndkim και opendmarc.
Κι ενώ το internet είναι γεμάτο με οδηγίες για το πως να τα ρυθμίσεις όλα αυτά, κάπως τα κατάφερα και μου πήρε μέρες μέχρι να καταλάβω τι παίζει με το dkim. Αλλά στο τέλος, θρίαμβος!
Από κει και πέρα, χρειάστηκα δύο ακόμα προσθήκες.
Η μία ήταν ο dovecot server, που δίνει pop3/imap πρόσβαση στα mail σου. Χωρίς αυτό θα έπρεπε να συνδέεσαι κάθε φορά στον server για να διαβάσεις την αλληλογραφία σου από την κονσόλα με κάποιον mail client.
Η δεύτερη είναι ένα το rainloop, ένα εξωφρενικά εύκολο στο στήσιμο webmail UI.
Και έχοντας στήσει όλα αυτά, μπορούμε να πούμε ότι έχουμε στήσει αξιοπρεπώς ένα mail service στο domain μας 🙂