Ρύθμιση υπηρεσιών email (SMTP, Imap και Imaps) και περιορισμός πρόσβασης στο SMTP - Μέρος 7


Ο LFCE (Linux Foundation Certified Engineer) είναι ένας εκπαιδευμένος επαγγελματίας που έχει τις δεξιότητες εγκατάστασης, διαχείρισης και αντιμετώπισης προβλημάτων υπηρεσιών δικτύου σε συστήματα Linux και είναι υπεύθυνος για την σχεδιασμός, υλοποίηση και συνεχής συντήρηση της αρχιτεκτονικής του συστήματος και της διαχείρισης των χρηστών.

Παρουσίαση του προγράμματος πιστοποίησης του Linux Foundation.

Σε ένα προηγούμενο σεμινάριο συζητήσαμε πώς να εγκαταστήσετε τα απαραίτητα στοιχεία μιας υπηρεσίας αλληλογραφίας. Εάν δεν έχετε εγκαταστήσει ακόμα τα Postfix και το Dovecot, ανατρέξτε στο Μέρος 1 αυτής της σειράς για οδηγίες σχετικά με αυτό πριν συνεχίσετε.

Απαίτηση

  1. Εγκαταστήστε τον Postfix Mail Server και το Dovecot – Μέρος 1

Σε αυτήν την ανάρτηση, θα σας δείξω πώς να ρυθμίσετε τον διακομιστή αλληλογραφίας σας και πώς να εκτελέσετε τις ακόλουθες εργασίες:

  1. Διαμόρφωση ψευδωνύμων email
  2. Διαμορφώστε μια υπηρεσία IMAP και IMAPS
  3. Διαμόρφωση μιας υπηρεσίας smtp
  4. Περιορίστε την πρόσβαση σε διακομιστή smtp

Σημείωση: ότι η ρύθμισή μας θα καλύπτει μόνο έναν διακομιστή αλληλογραφίας για ένα τοπικό δίκτυο όπου τα μηχανήματα ανήκουν στον ίδιο τομέα. Η αποστολή μηνυμάτων email σε άλλους τομείς απαιτεί μια πιο περίπλοκη ρύθμιση, συμπεριλαμβανομένων των δυνατοτήτων επίλυσης ονομάτων τομέα, που δεν εμπίπτουν στο πεδίο εφαρμογής της πιστοποίησης LFCE.

Αλλά πρώτα, ας ξεκινήσουμε με μερικούς ορισμούς.

Στοιχεία μιας διαδικασίας αποστολής, μεταφοράς και παράδοσης αλληλογραφίας

Η παρακάτω εικόνα απεικονίζει τη διαδικασία μεταφοράς email ξεκινώντας από τον αποστολέα μέχρι το μήνυμα να φτάσει στα εισερχόμενα του παραλήπτη:

Για να γίνει αυτό δυνατό, πολλά πράγματα συμβαίνουν στα παρασκήνια. Για να παραδοθεί ένα μήνυμα ηλεκτρονικού ταχυδρομείου από μια εφαρμογή πελάτη (όπως το Thunderbird, το Outlook ή υπηρεσίες webmail όπως το Gmail ή το Yahoo! Mail) στον διακομιστή αλληλογραφίας του/της και από εκεί στον διακομιστή προορισμού και, τέλος, στον προβλεπόμενο παραλήπτη , πρέπει να υπάρχει μια υπηρεσία SMTP (Simple Mail Transfer Protocol) σε κάθε διακομιστή.

Όταν μιλάμε για υπηρεσίες email, θα βρείτε τους ακόλουθους όρους να αναφέρονται πολύ συχνά:

Message Transport Agent – MTA

Το MTA (συντομογραφία του Mail ή Message Transport Agent), γνωστό και ως mail relay, είναι ένα λογισμικό που είναι υπεύθυνο για τη μεταφορά μηνυμάτων email από έναν διακομιστή σε έναν πελάτη (και το αντίστροφο επίσης). Σε αυτή τη σειρά, το Postfix λειτουργεί ως MTA μας.

Mail User Agent – MUA

Το MUA ή το Mail User Agent, είναι ένα πρόγραμμα υπολογιστή που χρησιμοποιείται για την πρόσβαση και τη διαχείριση των εισερχομένων email του χρήστη. Παραδείγματα MUA περιλαμβάνουν, ενδεικτικά, τις διεπαφές Thunderbird, Outlook και webmail, όπως το Gmail, το Outlook.com, για να αναφέρουμε μερικά. Σε αυτή τη σειρά, θα χρησιμοποιήσουμε το Thunderbird στα παραδείγματά μας.

Πράκτορας παράδοσης αλληλογραφίας

Το MDA (συντομογραφία του Message ή Mail Delivery Agent) είναι το τμήμα λογισμικού που στην πραγματικότητα παραδίδει μηνύματα email στα εισερχόμενα του χρήστη. Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε το Dovecot ως MDA μας. Το Dovecot θα χειριστεί επίσης τον έλεγχο ταυτότητας χρήστη.

Simple Mail Transfer Protocol – SMTP

Για να μπορούν αυτά τα στοιχεία να "μιλούν " μεταξύ τους, πρέπει να "μιλούν " την ίδια "γλώσσα " (ή πρωτόκολλο ), συγκεκριμένα SMTP (Πρωτόκολλο απλής μεταφοράς αλληλογραφίας) όπως ορίζεται στο RFC 2821. Πιθανότατα, θα πρέπει να αναφερθείτε σε αυτό το RFC κατά τη ρύθμιση του περιβάλλοντος διακομιστή αλληλογραφίας σας.

Άλλα πρωτόκολλα που πρέπει να λάβουμε υπόψη είναι το IMAP4 (Internet Message Access Protocol), το οποίο επιτρέπει τη διαχείριση των μηνυμάτων email απευθείας στον διακομιστή χωρίς τη λήψη τους στον σκληρό δίσκο του πελάτη μας και POP3 (Πρωτόκολλο Post Office), που επιτρέπει τη λήψη των μηνυμάτων και των φακέλων στον υπολογιστή του χρήστη.

Το περιβάλλον δοκιμών μας

Το περιβάλλον δοκιμών μας έχει ως εξής:

Ρύθμιση διακομιστή αλληλογραφίας
Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email  is aliased to [email  and [email 
Ρύθμιση μηχανήματος πελάτη
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

Στον πελάτη μας, έχουμε ρυθμίσει στοιχειώδη ανάλυση DNS προσθέτοντας την ακόλουθη γραμμή στο αρχείο /etc/hosts.

192.168.0.15 example.com.ar mailserver

Προσθήκη ψευδωνύμων email

Από προεπιλογή, ένα μήνυμα που αποστέλλεται σε συγκεκριμένο χρήστη θα πρέπει να παραδίδεται μόνο σε αυτόν τον χρήστη. Ωστόσο, εάν θέλετε να το παραδώσετε και σε μια ομάδα χρηστών ή σε διαφορετικό χρήστη, μπορείτε να δημιουργήσετε ένα ψευδώνυμο αλληλογραφίας ή να χρησιμοποιήσετε ένα από τα υπάρχοντα στο /etc/postfix/aliases , ακολουθώντας αυτή τη σύνταξη:

user1: user1, user2

Έτσι, τα μηνύματα ηλεκτρονικού ταχυδρομείου που αποστέλλονται στον user1 θα παραδίδονται επίσης στον user2. Σημειώστε ότι εάν παραλείψετε τη λέξη user1 μετά την άνω και κάτω τελεία, όπως στο

user1: user2

τα μηνύματα που αποστέλλονται στον user1 θα σταλούν μόνο στον user2 και όχι στον user1.

Στο παραπάνω παράδειγμα, οι user1 και user2 θα πρέπει να υπάρχουν ήδη στο σύστημα. Μπορεί να θέλετε να ανατρέξετε στο Μέρος 8 της σειράς LFCS εάν χρειάζεται να ανανεώσετε τη μνήμη σας πριν προσθέσετε νέους χρήστες.

  1. Πώς να προσθέσετε και να διαχειριστείτε χρήστες/ομάδες στο Linux
  2. 15 εντολές για προσθήκη χρηστών στο Linux

Στη συγκεκριμένη περίπτωσή μας, θα χρησιμοποιήσουμε το ακόλουθο ψευδώνυμο όπως εξηγήθηκε προηγουμένως (προσθέστε την ακόλουθη γραμμή στο /etc/aliases).

sysadmin: gacanepa, jdoe

Και εκτελέστε την ακόλουθη εντολή για να δημιουργήσετε ή να ανανεώσετε τον πίνακα αναζήτησης ψευδωνύμων.

postalias /etc/postfix/aliases

Έτσι, τα μηνύματα που αποστέλλονται στη διεύθυνση [email  θα παραδίδονται στα εισερχόμενα των χρηστών που αναφέρονται παραπάνω.

Διαμόρφωση Postfix – Η υπηρεσία SMTP

Το κύριο αρχείο διαμόρφωσης για το Postfix είναι /etc/postfix/main.cf. Χρειάζεται μόνο να ρυθμίσετε μερικές παραμέτρους προτού μπορέσετε να χρησιμοποιήσετε την υπηρεσία αλληλογραφίας. Ωστόσο, θα πρέπει να εξοικειωθείτε με τις πλήρεις παραμέτρους διαμόρφωσης (οι οποίες μπορούν να παρατίθενται με man 5 postconf) προκειμένου να ρυθμίσετε έναν ασφαλή και πλήρως προσαρμοσμένο διακομιστή αλληλογραφίας.

Σημείωση: Αυτό το σεμινάριο υποτίθεται ότι θα σας κάνει να ξεκινήσετε σε αυτήν τη διαδικασία και δεν αντιπροσωπεύει έναν ολοκληρωμένο οδηγό για τις υπηρεσίες email με Linux.

Ανοίξτε το αρχείο /etc/postfix/main.cf με το πρόγραμμα επεξεργασίας της επιλογής σας και κάντε τις ακόλουθες αλλαγές όπως εξηγείται.

vi /etc/postfix/main.cf

1. Το myorigin καθορίζει τον τομέα που εμφανίζεται στα μηνύματα που αποστέλλονται από τον διακομιστή. Μπορεί να δείτε το αρχείο /etc/mailname που χρησιμοποιείται με αυτήν την παράμετρο. Μη διστάσετε να το επεξεργαστείτε εάν χρειάζεται.

myorigin = /etc/mailname

Εάν χρησιμοποιηθεί η παραπάνω τιμή, τα μηνύματα ηλεκτρονικού ταχυδρομείου θα αποστέλλονται ως [προστατεύεται το email], όπου χρήστης είναι ο χρήστης που στέλνει το μήνυμα.

2. Ο mydestination παραθέτει σε ποιους τομείς αυτό το μηχάνημα θα παραδώσει μηνύματα email τοπικά, αντί να τα προωθήσει σε άλλο μηχάνημα (ενεργεί ως σύστημα αναμετάδοσης). Οι προεπιλεγμένες ρυθμίσεις θα αρκούν στην περίπτωσή μας (φροντίστε να επεξεργαστείτε το αρχείο ώστε να ταιριάζει στο περιβάλλον σας).

Όπου το αρχείο /etc/postfix/transport ορίζει τη σχέση μεταξύ των τομέων και του επόμενου διακομιστή στον οποίο πρέπει να προωθούνται τα μηνύματα αλληλογραφίας. Στην περίπτωσή μας, καθώς θα παραδίδουμε μηνύματα μόνο στο τοπικό μας δίκτυο (παρακάμπτοντας έτσι οποιαδήποτε εξωτερική ανάλυση DNS), αρκεί η ακόλουθη διαμόρφωση.

example.com.ar    local:
.example.com.ar    local:

Στη συνέχεια, πρέπει να μετατρέψουμε αυτό το αρχείο απλού κειμένου στη μορφή .db, η οποία δημιουργεί τον πίνακα αναζήτησης που θα χρησιμοποιήσει πραγματικά το Postfix για να γνωρίζει τι να κάνει με την εισερχόμενη και την εξερχόμενη αλληλογραφία.

postmap /etc/postfix/transport

Θα πρέπει να θυμάστε να δημιουργήσετε ξανά αυτόν τον πίνακα εάν προσθέσετε περισσότερες εγγραφές στο αντίστοιχο αρχείο κειμένου.

3. Το mynetworks ορίζει τα εξουσιοδοτημένα δίκτυα από τα οποία θα προωθήσει μηνύματα το Postfix. Η προεπιλεγμένη τιμή, το υποδίκτυο, λέει στο Postfix να προωθήσει αλληλογραφία από πελάτες SMTP στα ίδια υποδίκτυα IP με τον τοπικό υπολογιστή μόνο.

mynetworks = subnet

4. Το relay_domains καθορίζει τους προορισμούς στους οποίους πρέπει να αποστέλλονται μηνύματα ηλεκτρονικού ταχυδρομείου. Θα αφήσουμε ανέγγιχτη την προεπιλεγμένη τιμή, η οποία δείχνει στον προορισμό μου. Να θυμάστε ότι ρυθμίζουμε έναν διακομιστή αλληλογραφίας για το LAN μας.

relay_domains = $mydestination

Λάβετε υπόψη ότι μπορείτε να χρησιμοποιήσετε το $mydestination αντί να καταχωρίσετε το πραγματικό περιεχόμενο.

5. Το inet_interfaces καθορίζει ποιες διεπαφές δικτύου πρέπει να ακούει η υπηρεσία αλληλογραφίας. Η προεπιλογή, όλα, λέει στο Postfix να χρησιμοποιεί όλες τις διεπαφές δικτύου.

inet_interfaces = all

6. Τέλος, τα mailbox_size_limit και message_size_limit θα χρησιμοποιηθούν για τον ορισμό του μεγέθους του γραμματοκιβωτίου κάθε χρήστη και του μέγιστου επιτρεπόμενου μεγέθους μεμονωμένων μηνυμάτων, αντίστοιχα, σε byte.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Περιορισμός πρόσβασης στον διακομιστή SMTP

Ο διακομιστής Postfix SMTP μπορεί να εφαρμόσει ορισμένους περιορισμούς σε κάθε αίτημα σύνδεσης πελάτη. Δεν θα πρέπει να επιτρέπεται σε όλους τους πελάτες να ταυτοποιούνται στον διακομιστή αλληλογραφίας χρησιμοποιώντας την εντολή smtp HELO και σίγουρα δεν θα πρέπει να παρέχεται σε όλους πρόσβαση για αποστολή ή λήψη μηνυμάτων.

Για να εφαρμόσουμε αυτούς τους περιορισμούς, θα χρησιμοποιήσουμε τις ακόλουθες οδηγίες στο αρχείο main.cf. Αν και είναι αυτονόητα, έχουν προστεθεί σχόλια για λόγους διευκρίνισης.

Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

Permit the request when the client IP address matches any network or network address listed in $mynetworks
Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

Η σελίδα postconf παραμέτρων διαμόρφωσης Postfix μπορεί να είναι χρήσιμη για να εξερευνήσετε περαιτέρω τις διαθέσιμες επιλογές.

Ρύθμιση παραμέτρων Dovecot

Αμέσως μετά την εγκατάσταση του Dovecot, υποστηρίζει out-of-the-box για τα πρωτόκολλα POP3 και IMAP, μαζί με τις ασφαλείς εκδόσεις τους, POP3S και IMAPS, αντίστοιχα.

Προσθέστε τις ακόλουθες γραμμές στο αρχείο /etc/dovecot/conf.d/10-mail.conf.

%u represents the user account that logs in
Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

Εάν ελέγξετε τον αρχικό σας κατάλογο, θα παρατηρήσετε ότι υπάρχει ένας υποκατάλογος αλληλογραφίας με τα ακόλουθα περιεχόμενα.

Επίσης, σημειώστε ότι το αρχείο /var/mail/%u είναι το μέρος όπου αποθηκεύονται τα μηνύματα ηλεκτρονικού ταχυδρομείου του χρήστη στα περισσότερα συστήματα.

Προσθέστε την ακόλουθη οδηγία στο /etc/dovecot/dovecot.conf (σημειώστε ότι το imap και το pop3 συνεπάγονται επίσης εικόνες και pop3).

protocols = imap pop3

Και βεβαιωθείτε ότι το /etc/conf.d/10-ssl.conf περιλαμβάνει τις ακόλουθες γραμμές (διαφορετικά, προσθέστε τις).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

Τώρα ας επανεκκινήσουμε το Dovecot και ας επαληθεύσουμε ότι ακούει στις θύρες που σχετίζονται με το imap, το imaps, το pop3 και το pop3.

netstat -npltu | grep dovecot

Ρύθμιση προγράμματος-πελάτη αλληλογραφίας και αποστολή/λήψη αλληλογραφίας

Στον υπολογιστή πελάτη μας, θα ανοίξουμε το Thunderbird και θα κάνουμε κλικ στο ΑρχείοΝέοΥπάρχοντας λογαριασμός αλληλογραφίας. Θα μας ζητηθεί να εισαγάγουμε το όνομα του λογαριασμού και τη σχετική διεύθυνση email, μαζί με τον κωδικό πρόσβασής του. Όταν κάνουμε κλικ στο Συνέχεια, το Thunderbird θα προσπαθήσει να συνδεθεί στον διακομιστή αλληλογραφίας για να επαληθεύσει τις ρυθμίσεις.

Επαναλάβετε την παραπάνω διαδικασία για τον επόμενο λογαριασμό ([email ) και τα ακόλουθα δύο εισερχόμενα θα πρέπει να εμφανιστούν στο αριστερό παράθυρο του Thunderbird.

Στον διακομιστή μας, θα γράψουμε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στο sysadmin, το οποίο ονομάζεται jdoe και gacanepa.

Το αρχείο καταγραφής αλληλογραφίας (/var/log/mail.log) φαίνεται να υποδεικνύει ότι το μήνυμα ηλεκτρονικού ταχυδρομείου που στάλθηκε στο sysadmin μεταδόθηκε στο [email  και [email , όπως φαίνεται στην παρακάτω εικόνα.

Μπορούμε να επαληθεύσουμε εάν η αλληλογραφία παραδόθηκε πράγματι στον πελάτη μας, όπου οι λογαριασμοί IMAP διαμορφώθηκαν στο Thunderbird.

Τέλος, ας προσπαθήσουμε να στείλουμε ένα μήνυμα από το [email  στο [email .

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

συμπέρασμα

Σε αυτήν την ανάρτηση εξηγήσαμε πώς να ρυθμίσετε έναν διακομιστή αλληλογραφίας IMAP για το τοπικό σας δίκτυο και πώς να περιορίσετε την πρόσβαση στον διακομιστή SMTP. Αν τύχει να αντιμετωπίσετε ένα πρόβλημα κατά την υλοποίηση μιας παρόμοιας ρύθμισης στο περιβάλλον δοκιμών σας, θα θελήσετε να ελέγξετε την ηλεκτρονική τεκμηρίωση του Postfix και του Dovecot (ειδικά τις σελίδες σχετικά με τα κύρια αρχεία διαμόρφωσης, /etc/postfix/main.cf και/etc/dovecot/dovecot.conf, αντίστοιχα), αλλά σε κάθε περίπτωση μη διστάσετε να επικοινωνήσετε μαζί μου χρησιμοποιώντας την παρακάτω φόρμα σχολίων. Θα χαρώ πολύ να σας βοηθήσω.