Το προφίλ μας στο Google Plus
0

Υποδομή για τον mailserver μας

Αποφασίσατε λοιπόν να δημιουργήσετε τον δικό σας mailserver. Θα αποκτήσετε έτσι περισσότερο έλεγχο της ηλεκτρονικής σας αλληλογραφίας και, σιγά σιγά, θα απαγκιστρωθείτε από τους κυρίαρχους mail providers. Δεχθείτε παρακαλούμε τα συγχαρητήριά μας γι’ αυτή σας την απόφαση — και πάμε να δούμε πώς θα βάλουμε τις σωστές βάσεις για το φιλόδοξο αυτό project.

Μέρος 1: Ο δικός σας mailserver: Το γιατί και το πώς
Μέρος 2: Υποδομή για τον mailserver μας
Μέρος 3: Εγκατάσταση και βασική ρύθμιση Mail-in-a-Box
Μέρος 4: Πρακτική χρήση του Mail-in-a-Box και κόλπα

Σε αυτό το μέρος του αφιερώματός μας απασχολούμαστε με τις ακόλουθες εργασίες:

  • Λήψη domain από το Gandi.net
  • Επιλογή και αρχική ρύθμιση του κατάλληλου VPS, από τη DigitalOcean
  • Βασικές ρυθμίσεις του VPS, μετά την πρώτη εκκίνησή του
  • Απολύτως απαραίτητες εργασίες υπέρ της ασφάλειας

Σε κάθε στάδιο παρουσιάζουμε τη λογική των επιλογών/κινήσεών μας, ωστόσο θα θέλαμε να υπογραμμίσουμε από τώρα ότι δεν είναι υποχρεωτικό να πάρετε domain από το Gandi, ούτε VPS από τη DigitalOcean. Και μετά από αυτό, ας πιάσουμε δουλειά.

Απόκτηση νέου domain, για το νέο email
Κάθε mailserver εξυπηρετεί ένα domain, γι’ αυτό και λέμε “ο mailserver για το domain”. Όπως αναφέραμε και στο πρώτο μέρος του αφιερώματός μας, δεν θέλαμε να πειράξουμε τα (Google Apps hosted) emails για τα domains που χρησιμοποιούμε εδώ και χρόνια (defiant.gr, deltahacker.gr και parabing.com). Έτσι, προκειμένου ο mailserver μας να εξυπηρετεί κάποιο domain, αγοράσαμε άλλο ένα.

Ο domain registrar που προτείνει ο δημιουργός του Mail-in-a-Box είναι το Gandi.net. Ένα από τα θετικά του Gandi είναι ότι επιτρέπει τον ορισμό των λεγόμενων glue records ή αλλιώς child nameservers. Πρακτικά, με τα glue records δηλώνουμε ότι το VPS με το Mail-in-a-Box διαθέτει έναν πλήρη DNS server, ο οποίος αποτελεί μέλος του παγκόσμιου domain name system. Ένα άλλο καλό του Gandi είναι η υποστήριξη του DNSSEC — αλλά για συγκεκριμένα domains. Περισσότερα για τα glue records και το DNSSEC θα δούμε στο τρίτο μέρος του αφιερώματός μας. Προς το παρόν, να σημειώσουμε ότι το Gandi υποστηρίζει μια μεγάλη πληθώρα TLDs (Top-Level Domains). Μετά από λίγο ψάξιμο καταλήξαμε στο –κάπως παράξενο, ομολογουμένως– colder.xyz (ναι, υπάρχει κατάληξη dot-xyz). Τις ημέρες που έγινε η αγορά, τα dot-xyz domains ήταν σε προσφορά: 2,50 ευρώ ανά έτος συν κάτι παραπάνω, λόγω φόρων και πολιτικών ελαχίστων χρεώσεων. Πήραμε λοιπόν το ολοκαίνουργιο domain μας και, όταν τελειώσαμε με την εγκατάσταση του Mail-in-a-Box, οι διευθύνσεις email του domain μας είχαν τη μορφή somebody@colder.xyz. Παρουσιάζουν μια κάποια πρωτοτυπία και τραβούν την προσοχή, δεν συμφωνείτε;

Δείτε στα ακόλουθα screenshots μερικά στιγμιότυπα από την αγορά του domain μας (και παρακαλούμε διαβάστε τις αντίστοιχες περιγραφές).

colder.xyz: Αυτό το domain εξυπηρετεί, ο νέος μας mailserver

Μετά από λίγο ψάξιμο αποφασίσαμε ότι το colder.xyz είναι ό,τι πρέπει για το project μας. Όπως βλέπετε, μαζί με τους φόρους προσφερόταν στα 3 ευρώ ανά έτος. Η έκπτωση ίσως ισχύει και τη στιγμή που διαβάζετε το παρόν.

Στοιχεία που μας αφορούν δεν θέλουμε να εμφανίζονται στο WHOIS

Με την αγορά νέου domain προτείνεται να ζητάμε την απόκρυψη από το WHOIS όσο το δυνατόν περισσοτέρων στοιχείων μας αφορούν. Διαφορετικοί registrars ονομάζουν διαφορετικά τη σχετική δυνατότητα. Στο Gandi επιλέξαμε τα Anti-spam system (απόκρυψη email) και Private Domain Registration (απόκρυψη στοιχείων επικοινωνίας). Αργότερα, πάντως, διαπιστώσαμε ότι το ονοματεπώνυμο εξακολουθεί να φαίνεται στο WHOIS. Παρατηρήστε εξάλλου ότι θέσαμε Reselling of your data = No, ώστε η εταιρεία να μη δικαιούται να πουλήσει τα δικά μας στοιχεία WHOIS σε όποιον τα ζητήσει. Ναι, ξέρουμε τι σκέφτεστε: χαμός γίνεται, Εκεί Έξω (TM).

Με τη μορφή που πληκτρολογούσαμε τον ταχυδρομικό κώδικα, είχε παράπονο το Gandi

Κατά τη συμπλήρωση των στοιχείων μας για την αγορά του ολοκαίνουργιου domain, το Gandi σκάλωσε και παραπονέθηκε: είτε η “επαφή” δεν πληρούσε τα προαπαιτούμενα για τη συγκεκριμένη κατάληξη, είτε οι πληροφορίες του λογαριασμού μας δεν εισήχθησαν σωστά. Μετά από λίγο ψάξιμο διαπιστώσαμε ότι είχαμε εισαγάγει τον ταχυδρομικό κώδικα (ΤΚ) σε μη-αποδεκτή μορφή. Συγκεκριμένα, το Gandi ήθελε τον ΤΚ με τη μορφή “abc xy”, δηλαδή με ένα κενό μετά τα τρία ψηφία από αριστερά (και χωρίς τα εισαγωγικά).

Όποιον τρόπο πληρωμής κι αν επιλέξουμε, υπάρχει πολιτική ελάχιστης χρέωσης

Όταν επιχειρούμε να πληρώσουμε με πιστωτική, το Gandi δεν μπορεί να δεχτεί λιγότερα από 5 ευρώ. Όταν πάλι πληρώνουμε με PayPal, τότε θέλει τουλάχιστον 10 ευρώ. Σε κάθε περίπτωση, το υπόλοιπο πιστώνεται στο λογαριασμό μας και χρησιμοποιείται σε επόμενη αγορά.

Δημιουργία του κατάλληλου VPS
Για άλλη μια φορά επιλέξαμε τη DigitalOcean. Δεν είναι βέβαια υποχρεωτικό να φτιάξετε το VPS σας εκεί. Σημειώνουμε όμως πως αν το κάνετε, ακολουθώντας αυτό το referral URL –> http://bit.ly/digocean10off, τότε κερδίζετε αυτομάτως 10$ σε credit. Επειδή το Mail-in-a-Box χρειάζεται VPS με τουλάχιστον 768MB μνήμης RAM, αναγκαστικά πηγαίνουμε στο δεύτερο κατά σειρά μεγέθους droplet, σ’ αυτό δηλαδή που διαθέτει 1GB RAM. (Η DigitalOcean ονομάζει τα VPS της “droplets”.) Το κόστος του ανέρχεται στα 10 δολάρια ανά μήνα, συνεπώς με το προαναφερθέν referral URL ο πρώτος μήνας είναι δωρεάν.

Η DigitalOcean προσφέρει δωρεάν DNS manager, αλλά δεν θα τον χρησιμοποιήσουμε. Θυμηθείτε ότι, εκτός από τον mailserver, το Mail-in-a-Box ρυθμίζει και DNS server, φροντίζοντας αυτόματα για όλα τα σωστά records ώστε αφενός ο mailserver του domain μας να λειτουργεί σωστά, αφετέρου να τον “σέβονται” οι άλλοι mailservers και να μένει μακριά από blacklists.

Μια άλλη δυνατότητα που παρέχει η DigitalOcean και μας είναι χρήσιμη, αφορά στον εύκολο ορισμό του λεγόμενου reverse DNS ή αλλιώς PTR record. Όταν ξεκινάμε από ένα domain name και προσπαθούμε να βρούμε την αντίστοιχη διεύθυνση IP, τότε κάνουμε το λεγόμενο forward DNS resolution. Το αντίστροφο, δηλαδή η αναζήτηση του domain name ξεκινώντας από μια διεύθυνση IP, ονομάζεται reverse DNS lookup ή αλλιώς reverse DNS resolution. Στο πρώτο βήμα της δημιουργίας νέου droplet στη DigitalOcean, καλούμαστε να πληκτρολογήσουμε ένα hostname. Το Mail-in-a-Box αναμένει αυτό το hostname να έχει τη μορφή

box.domain.tld

Παράδειγμα: Στη δική μας περίπτωση ισχύει domain.tld = colder.xyz, επομένως ως hostname για το droplet μας δώσαμε το

box.colder.xyz

Αυτό ακριβώς το hostname χρησιμοποιείται αυτομάτως για τη δημιουργία του πολύτιμου PTR record. Έτσι, ένα reverse DNS lookup με το δημόσιο IP του droplet μας, ως αποτέλεσμα επιστρέφει το box.colder.xyz. Προσοχή: Επαναλαμβάνουμε ότι το Mail-in-a-Box περιμένει hostname της μορφής box.domain.tld, ενώ υποχρεωτικός είναι κι ο ανάλογος ορισμός του PTR record. Αν δεν χρησιμοποιείτε τη DigitalOcean, συμβουλευτείτε τις οδηγίες του αντίστοιχου cloud provider ώστε να θέσετε το PTR record όπως το αναμένει το Mail-in-a-Box.

Κάτι άλλο που οφείλουμε να σημειώσουμε είναι ότι, ανεξαρτήτως του cloud provider, το λειτουργικό σύστημα του VPS πρέπει να είναι το Ubuntu Server 14.04 LTS 64bit. Γι’ αυτήν ακριβώς τη διανομή και έκδοση έχει γραφτεί το Mail-in-a-Box, οπότε δεν βλέπουμε το λόγο να διακινδυνεύσουμε την (αυξημένη) πιθανότητα για καζίκια, βάσανα και περιπέτειες, επιλέγοντας, π.χ., το Debian. Δείτε στα ακόλουθα screenshots χαρακτηριστικά στιγμιότυπα από τη δημιουργία του δικού μας VPS. Διαβάστε και τις αντίστοιχες περιγραφές — δεν είναι τόσο πολύ βαρετές.

Για τον mailserver μας επιλέγουμε το VPS με μέγεθος μνήμης 1GB

Το κατάλληλο droplet για να ξεκινήσουμε, αυτό με το οποίο το Mail-in-a-Box δεν θα έχει κανένα πρόβλημα, είναι ένα με μέγεθος μνήμης 1GB. Παρατηρήστε ότι καλούμαστε να πληκτρολογήσουμε ένα hostname. Το Mail-in-a-Box περιμένει να έχει τη μορφή box.domain.tld. Εμείς διαθέτουμε το domain ονόματι colder.xyz, οπότε το hostname του droplet μας αναγκαστικά γίνεται box.colder.xyz.

Επιλογή datacenter για το VPS μας

Εδώ επιλέγουμε περιοχή για τη δημιουργία του droplet. Είπαμε να πάμε με το datacenter της DigitalOcean στη Φρανκφούρτη, το οποίο αφενός είναι γεωγραφικά κοντά μας, αφετέρου είναι από εκείνα που υποστηρίζουν permanent resize operations. Γενικά, η ιδέα του resize είναι ότι μπορούμε να ξεκινάμε ένα νέο project με κάποιο μικρό και φθηνό VPS. Αν στο μέλλον αποφασίσουμε ότι χρειαζόμαστε ισχυρότερο (εικονικό) hardware, τότε αντί να δημιουργήσουμε καινούργιο VPS και να μεταφέρουμε σ’ αυτό τις εφαρμογές μας (χρονοβόρα και συχνά δύσκολη εργασία), απλά “μεγαλώνουμε” το υπάρχον VPS και συνεχίζουμε μ’ αυτό. Η DigitalOcean υποστηρίζει δύο ειδών resize operations: τα permanent και τα flexible resizes. Με permanent resize μεγαλώνουμε μνήμη, επεξεργαστή και δίσκο. Από την άλλη, με το flexible μεγαλώνουμε μόνο τη μνήμη και τον επεξεργαστή — όχι το δίσκο. Θέλαμε να έχουμε την επιλογή για permanent resize κι επειδή δεν υποστηρίζεται σε όλα τα datacenters της DigitalOcean, το ψάξαμε λίγο και διαπιστώσαμε ότι εκείνο στη Φρανκφούρτη τα υποστηρίζει. Θα παρατηρήσετε εξάλλου ότι έχουμε τσεκάρει την επιλογή για backups. Αυτά αφορούν σε ολόκληρο το droplet, είναι εβδομαδιαία και κάθε backup διατηρείται στους servers της DigitalOcean για τέσσερις εβδομάδες. Η ενεργοποίησή τους αυξάνει το κόστος του αντίστοιχου VPS κατά 20%, επομένως αυτό που φτιάξαμε από τα 10 δολάρια ανά μήνα ανεβαίνει στα 12 δολάρια ανά μήνα. Για να είμαστε ειλικρινείς, επιλέξαμε το backup της DigitalOcean από καθαρή περιέργεια — ίσως και για να πειραματιστούμε. Δεν σας προτείνουμε να το ενεργοποιήσετε κι εσείς. Αργότερα, άλλωστε, όταν θα έχουμε το Mail-in-a-Box έτοιμο και πλήρως λειτουργικό, θα διαπιστώσουμε ότι δημιουργεί κι εκείνο backups των email, τα οποία μάλιστα είναι incremental και κρυπτογραφημένα. Τα συγκεκριμένα αντίγραφα εφεδρείας δημιουργούνται τοπικά (στο droplet) και είναι δική μας ευθύνη να τα αντιγράφουμε κι αλλού. (Για να δικαιούμαστε να μιλάμε για σωστό backup πρέπει να έχουμε τουλάχιστον δύο αντίγραφα και το ένα εξ αυτών να είναι offsite.)

Από τη στιγμή που θα εγκαταστήσουμε το Mail-in-a-Box, για λειτουργικό σύστημα του VPS επιλέγουμε το Ubuntu Server 14.04 LTS 64bit

Το Mail-in-a-Box είναι γραμμένο για το Ubuntu Server και συγκεκριμένα για την έκδοση 14.04 LTS 64bit. Υποψιαζόμαστε ότι αυτό ίσως δυσαρεστήσει φίλους άλλων διανομών Linux. Αυτό. Δεν λέμε τίποτε άλλο.

Ήδη από το στάδιο της δημιουργίας του VPS, μπορούμε ν' ανεβάσουμε SSH keys ώστε να συνδεόμαστε στο λογαριασμό του root χωρίς την πληκτρολόγηση password

Προσθέτουμε τα δημόσια κλειδιά των υπολογιστών που χρησιμοποιούμε, ώστε μετά την πρώτη εκκίνηση του droplet να είμαστε σε θέση για σύνδεση στο λογαριασμό του root μέσω SSH και χωρίς την πληκτρολόγηση password. Ορίζοντας SSH keys, δεν θα μας αποσταλεί καν κάποιο email με το password του root. Αν θέλετε να μάθετε περισσότερα για τα passwordless SSH logins, διαβάστε το σχετικό μας άρθρο.

Οι server μας εκτός από έναν, στο cloud της DigitalOcean

Ιδού όλοι οι servers μας, στη DigitalOcean. Θα παρατηρήσετε ότι κάποιος λάμπει δια της απουσίας του! Πού θα πάει, κάποια στιγμή μέσα στο καλοκαιράκι θα τον μεταφέρουμε κι αυτόν, ενώ ο κος Αρχισυντάκτης (TM) θα περάσει και το νέο theme στο αντίστοιχο site :D

Τα PRT records των droplet μας

Όλα τα PTR records που αυτομάτως έχει θέσει η DigitalOcean για τα droplets μας. Όποιος, λοιπόν, κάνει ένα reverse DNS lookup για το 64.101.173.140, θα βρει ότι δείχνει στο box.colder.xyz. Τα antispam filters συνηθίζουν να πραγματοποιούν reverse DNS lookups και η ιδέα είναι ότι οι spammers δεν μπαίνουν στον κόπο να θέτουν PTR records. Σημειώστε ότι ο ορισμός των PTR records γίνεται από τον ISP (ή από τον VPS provider), ασχέτως αν έχουμε τον δικό μας DNS server για το domain ή όχι.

Βασικές ρυθμίσεις
Μετά την πρώτη εκκίνηση του VPS και την απομακρυσμένη σύνδεση μέσω SSH στο λογαριασμό του root, καλό είναι να ορίσουμε αμέσως ένα (νέο) συνθηματικό:

# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Πριν εκτελέσουμε οποιαδήποτε άλλη εργασία –και για να τελειώνουμε μ’ αυτό–, ανοίγουμε το αρχείο /etc/hosts με τον text editor της προτίμησής μας και φροντίζουμε ώστε οι δηλώσεις για τα IPv4 hosts να είναι κάπως έτσι:

127.0.0.1       localhost.localdomain   localhost
46.101.173.140  box.colder.xyz          box

Η δεύτερη γραμμή θα διαφέρει στην περίπτωσή σας. Για την ακρίβεια, στη θέση του 64.101.173.140 θα πρέπει να βάλετε τη διεύθυνση IP του VPS σας: δείτε την από τον πίνακα ελέγχου της DigitalOcean ή απλά πληκτρολογώντας ifconfig — εννοείται σε ένα άλλο τερματικό από το οποίο έχετε συνδεθεί στο VPS. Επίσης, στη θέση του box.colder.xyz θα βάλετε το hostname του δικού σας VPS. Αποθηκεύστε τις αλλαγές στο /etc/hosts κι εγκαταλείψτε τον editor.

Εξ ορισμού, τα droplets της DigitalOcean δεν έχουν swap partition. Εύκολα όμως μπορούμε να φτιάξουμε ένα αρχείο αντιμετάθεσης — στο εξής swapfile. Το μέγεθος της μνήμης του VPS μας είναι 1GB κι ένας κανόνας λέει ότι το swapfile καλό είναι να ‘χει το διπλάσιο μέγεθος. Ακολουθήσαμε τον κανόνα αλλά εις διπλούν, αφού κάτι μας έπιασε και σκεφτήκαμε ότι σύντομα θα κάνουμε resize το droplet. Τότε, θα έχει 2GB RAM (τόση μνήμη διαθέτει το αμέσως μεγαλύτερο droplet της DigitalOcean) και συνεπώς το swapfile που φτιάχνουμε τώρα ας έχει μέγεθος 4GB. Βέβαια θα μπορούσαμε να ξεκινήσουμε με ένα swapfile μεγέθους 2GB κι όταν αργότερα κάνουμε resize να το καταργήσουμε, να διαγράψουμε το σχετικό αρχείο και να φτιάξουμε ένα νέο swapfile, με μέγεθος 4GB. Ξέρετε κάτι, όμως; Εκεί που σκεφτόμασταν “swapfile το ένα”, “swapfile το άλλο”, ξαφνικά αναφωνήσαμε κάτι σαν “ινάφ γουίθ δε σουάπ-φάκινγκ-φάιλ ολρέντι” και χωρίς καμία άλλη καθυστέρηση φτιάξαμε ένα swapfile μεγέθους 4GB, για να ησυχάσουμε:

# fallocate -l 4G /swapfile
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
# echo "/swapfile none swap sw 0 0" >> /etc/fstab

Κάτι που δεν έχουμε κάνει ακόμα είναι να ενημερώσουμε την τοπική βάση με τα διαθέσιμα πακέτα για το Ubuntu, βεβαίως και ν’ αναβαθμίσουμε εκείνα για τα οποία διατίθεται νεότερη έκδοση:

# apt-get update
# apt-get dist-upgrade

Πιθανώς να ενημερωθεί κι ο πυρήνας, οπότε θα χρειαστεί μια επανεκκίνηση. Μην την κάνετε ακόμα, να ορίσουμε πρώτα τη ζώνη ώρας και να εγκαταστήσουμε τον κλασικό NTP client, ώστε το ρολόι του συστήματος να ενημερώνεται αυτόματα από δικτυακούς time servers. Για τη ρύθμιση της ζώνης ώρας αρκεί να πληκτρολογήσουμε

# dpkg-reconfigure tzdata

ενώ για την εγκατάσταση του NTP client να δώσουμε

# apt-get install ntp

Μπορούμε τώρα να κάνουμε ένα reboot, έστω κι αν δεν χρειάζεται (σ’ αυτό το αρχικό στάδιο, σίγουρα δεν βλάπτει):

# reboot

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

Ενίσχυση της ασφάλειας
Δεν είναι φρόνιμο να συνδεόμαστε απευθείας στο λογαριασμό του χρήστη root. Γενικά, δικαιώματα root πρέπει να αποκτούμε μόνον όταν είναι απαραίτητο και μετά καλό είναι να επιστρέφουμε στο λογαριασμό ενός απλού χρήστη. Στο Ubuntu αυτή τη στιγμή υπάρχει μόνον ο λογαριασμός του root. Ας συνδεθούμε λοιπόν σ’ αυτόν για άλλη μία φορά, ώστε να δημιουργήσουμε το λογαριασμό ενός απλού χρήστη που θα μπορεί να εκτελεί το sudo και κατ’ αυτόν τον τρόπο ν’ αποκτά (προσωρινά) δικαιώματα διαχειριστή συστήματος. Στο παράδειγμα που ακολουθεί ο χρήστης μας έχει username το sub0. Ονομάστε τον δικό σας χρήστη όπως θέλετε.

# adduser sub0
Adding user `sub0' ...
Adding new group `sub0' (1000) ...
Adding new user `sub0' (1000) with group `sub0' ...
Creating home directory `/home/sub0' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: εδώ_πληκτρολογούμε_συνθηματικό
Retype new UNIX password: εδώ_πληκτρολογούμε_συνθηματικό
passwd: password updated successfully
Changing the user information for sub0
Enter the new value, or press ENTER for the default
        Full Name []: subZraw
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

Επιτρέπουμε στο χρήστη sub0 να χρησιμοποιεί το sudo:

# gpasswd -a sub0 sudo

Πολύ ωραία. Δεν χρειάζεται να μένουμε άλλο στο λογαριασμό του root, οπότε όπως είμαστε ας μεταβούμε στο λογαριασμό του νέου μας χρήστη:

# su - sub0

Θέλουμε να συνδεόμαστε στο λογαριασμό του sub0 μέσω SSH και χωρίς να πληκτρολογούμε το password του:

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

Στο αρχείο authorized_keys του sub0 πρέπει να μεταφέρουμε τα δημόσια κλειδιά μας — κι ενδεχομένως μιλάμε για τα ίδια δημόσια κλειδιά που βρίσκονται στο authorized_keys του root. Αν ό,τι είπαμε δεν βγάζει νόημα, διαβάστε το επεξηγηματικό, θέλουμε να πιστεύουμε, άρθρο.

Κάπου εδώ είναι σημαντικό να βεβαιωθούμε ότι έχουμε δυνατότητα για απομακρυσμένη σύνδεση στο λογαριασμό του sub0, μέσω SSH. Αν όλα είναι εντάξει, θα πρέπει να συνδεθούμε χωρίς την πληκτρολόγηση password. Και μετά από επιτυχή έλεγχο, μπορούμε να ζητήσουμε από τον OpenSSH server του Ubuntu να γίνει πιο αυστηρός ως προς τα είδη των συνδέσεων που επιτρέπει. Συγκεκριμένα, ας μη δέχεται καν συνδέσεις στο λογαριασμό του root, ενώ ας επιτρέπει μόνο τα passwordless logins, με χρήση κλειδιών SSH. Απλά ανοίγουμε το αρχείο /etc/ssh/sshd_config προς επεξεργασία και με δικαιώματα root

$ sudo nano /etc/ssh/sshd_config

και φροντίζουμε ώστε να περιλαμβάνει τις δύο ακόλουθες γραμμές:

PermitRootLogin no
PasswordAuthentication no

Αποθηκεύουμε τις αλλαγές, εγκαταλείπουμε τον editor κι επανεκκινούμε την υπηρεσία του OpenSSH:

$ sudo service ssh restart

Σε άλλες περιπτώσεις θα έχετε ίσως παρατηρήσει πως συνηθίζουμε να συνηγορούμε υπέρ της χρήσης ενός εναλλακτικού port για τον OpenSSH server (το προκαθορισμένο είναι το 22). Αυτή τη φορά δεν το κάνουμε: Σε λίγο που θα εγκαταστήσουμε το Mail-in-a-Box θα ρυθμιστεί αυτόματα το iptables ώστε να δέχεται συνδέσεις στο port 22/TCP, μ’ άλλα λόγια συνδέσεις SSH. Επιπρόσθετα, θα οριστούν κανόνες που προστατεύουν τις υπηρεσίες του box από πιθανά DOS attacks, ενώ θα εγκατασταθεί και το fail2ban. Προς το παρόν, λοιπόν, δεν χρειάζεται να κάνουμε κάτι περισσότερο για την ασφάλεια του box. Το μόνο ίσως θέμα που αξίζει να δούμε είναι οι αυτόματες ενημερώσεις ασφαλείας. Μας αρέσει αυτή η δυνατότητα και σας προτείνουμε να την αξιοποιήσετε κι εσείς. Ανοίξτε με έναν text editor το αρχείο /etc/apt/apt.conf.d/10periodic και φροντίστε ώστε να περιλαμβάνει τις ακόλουθες γραμμές:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Μετά ανοίξτε και το /etc/apt/apt.conf.d/50unattended-upgrades και βεβαιωθείτε ότι περιλαμβάνει μια οδηγία σαν αυτή:

Unattended-Upgrade::Mail "sub0@localhost"

Στο παράδειγμά μας, τα ενημερωτικά emails περί των αυτόματων ενημερώσεων παραδίδονται στον τοπικό λογαριασμό του χρήστη sub0. Όταν θα έχουμε έτοιμο τον mailserver μπορούμε να επανέλθουμε στο /etc/apt/apt.conf.d/50unattended-upgrades και να τροποποιήσουμε την οδηγία, ώστε τα emails να τα λαμβάνει κάποιος χρήστης του domain (π.χ., ο subZraw@colder.xyz).

Στο τρίτο μέρος του αφιερώματός μας εγκαθιστούμε και ρυθμίζουμε πλήρως το Mail-in-a-Box.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων