Android

Εγκαταστήστε και διαμορφώστε το postfix και το dovecot

Πώς να διαμορφώσετε και να καθαρίσετε Εγκαταστήστε τα Windows 10 Tutorial

Πώς να διαμορφώσετε και να καθαρίσετε Εγκαταστήστε τα Windows 10 Tutorial

Πίνακας περιεχομένων:

Anonim

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

Το Postfix είναι ένας πράκτορας μεταφοράς αλληλογραφίας ανοιχτού κώδικα (MTA), μια υπηρεσία που χρησιμοποιείται για την αποστολή και λήψη μηνυμάτων ηλεκτρονικού ταχυδρομείου. Το Dovecot είναι ένας διακομιστής IMAP / POP3 και στην εγκατάσταση μας θα χειριστεί επίσης την τοπική παράδοση και τον έλεγχο ταυτότητας χρηστών.

Αυτό το σεμινάριο γράφτηκε για το Ubuntu 16.04, ωστόσο τα ίδια βήματα με μικρές τροποποιήσεις θα πρέπει να λειτουργούν σε οποιαδήποτε νεότερη έκδοση του Ubuntu.

Προϋποθέσεις

Πριν συνεχίσετε με αυτό το σεμινάριο, βεβαιωθείτε ότι έχετε συνδεθεί ως χρήστης με δικαιώματα sudo.

Εγκαταστήστε το Postfix και το Dovecot

Τα πακέτα Dovecot στα προεπιλεγμένα αποθετήρια του Ubuntu είναι ξεπερασμένα. Προκειμένου να επωφεληθούμε από την ενότητα imap_sieve , θα εγκαταστήσουμε το Dovecot από το αποθετήριο της κοινότητας Dovecot.

Προσθέστε το κλειδί GPG του αποθετηρίου στο keyring πηγών apt με την ακόλουθη εντολή wget:

wget -O- https://repo.dovecot.org/DOVECOT-REPO-GPG | sudo apt-key add -

Ενεργοποιήστε το αποθετήριο κοινότητας Dovecot χρησιμοποιώντας την ακόλουθη εντολή:

echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list

sudo apt update sudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)" sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'" sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql

Διαμόρφωση Postfix

Θα εγκαταστήσουμε το Postfix για χρήση εικονικών γραμματοκιβωτίων και τομέων.

Ξεκινήστε δημιουργώντας τα αρχεία ρυθμίσεων sql , τα οποία θα καθοδηγήσουν το postfix για την πρόσβαση στη βάση δεδομένων MySQL που δημιουργήθηκε στο πρώτο μέρος αυτής της σειράς.

sudo mkdir -p /etc/postfix/sql

Ανοίξτε το πρόγραμμα επεξεργασίας κειμένου και δημιουργήστε τα ακόλουθα αρχεία:

/etc/postfix/sql/mysql_virtual_domains_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT domain FROM domain WHERE domain='%s' AND active = '1' /etc/postfix/sql/mysql_virtual_alias_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1' /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1' /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1' /etc/postfix/sql/mysql_virtual_mailbox_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1' /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox, alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'

Μόλις δημιουργηθούν τα αρχεία ρυθμίσεων SQL, ενημερώστε το κύριο αρχείο ρυθμίσεων postfix για να συμπεριλάβετε πληροφορίες σχετικά με τους εικονικούς τομείς, τους χρήστες και τα ψευδώνυμα που είναι αποθηκευμένα στη βάση δεδομένων MySQL.

sudo postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf" sudo postconf -e "virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf" sudo postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf" Η εντολή postconf εμφανίζει τις πραγματικές τιμές παραμέτρων διαμόρφωσης, αλλάζει τις παραμέτρους παραμέτρων διαμόρφωσης ή εμφανίζει άλλες πληροφορίες διαμόρφωσης σχετικά με το σύστημα ταχυδρομείου Postfix.

Ο τοπικός πράκτορας παράδοσης θα παραδώσει τα εισερχόμενα μηνύματα ηλεκτρονικού ταχυδρομείου στα γραμματοκιβώτια των χρηστών. Εκτελέστε την ακόλουθη εντολή για να ορίσετε την υπηρεσία LMTP του Dovecot ως προεπιλεγμένη μεταφορά αλληλογραφίας:

sudo postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"

Ορίστε τις παραμέτρους TL χρησιμοποιώντας το προηγουμένως παραγόμενο Πιστοποίηση SSL:

sudo postconf -e 'smtp_tls_security_level = may' sudo postconf -e 'smtpd_tls_security_level = may' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'smtpd_tls_cert_file = /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem' sudo postconf -e 'smtpd_tls_key_file = /etc/letsencrypt/live/mail.linuxize.com/privkey.pem'

Διαμορφώστε τις επαληθευμένες ρυθμίσεις SMTP και απενεργοποιήστε τον έλεγχο ταυτότητας στο Dovecot:

sudo postconf -e 'smtpd_sasl_type = dovecot' sudo postconf -e 'smtpd_sasl_path = private/auth' sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination'

Θα χρειαστεί επίσης να επεξεργαστούμε το αρχείο master.cf master Postfix και να ενεργοποιήσουμε τη θύρα υποβολής ( 587 ) και τη θύρα smtps ( 465 ).

Ανοίξτε το αρχείο με τον επεξεργαστή κειμένου και αποσυνδέστε / επεξεργαστείτε τις ακόλουθες γραμμές:

/etc/postfix/master.cf

submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING

Επανεκκινήστε την υπηρεσία postfix για να εφαρμοστούν οι αλλαγές.

sudo systemctl restart postfix

Σε αυτό το σημείο έχετε ρυθμίσει με επιτυχία την υπηρεσία Postfix.

Ρύθμιση του περιστεριού

Σε αυτήν την ενότητα θα ρυθμίσουμε το Dovecot ώστε να ταιριάζει με τις ρυθμίσεις μας. Βεβαιωθείτε ότι έχετε επεξεργαστεί τις γραμμές που επισημαίνονται με κίτρινο χρώμα.

Αρχίστε με τη διαμόρφωση του αρχείου dovecot-sql.conf.ext που δίνει εντολή στο Dovecot πώς να αποκτήσετε πρόσβαση στη βάση δεδομένων και πώς να βρείτε τις πληροφορίες σχετικά με τους λογαριασμούς ηλεκτρονικού ταχυδρομείου.

/etc/dovecot/dovecot-sql.conf.ext

driver = mysql connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD default_pass_scheme = MD5-CRYPT iterate_query = SELECT username AS user FROM mailbox user_query = SELECT CONCAT('/var/mail/vmail/', maildir) AS home, \ CONCAT('maildir:/var/mail/vmail/', maildir) AS mail, \ 5000 AS uid, 5000 AS gid, CONCAT('*:bytes=', quota) AS quota_rule \ FROM mailbox WHERE username = '%u' AND active = 1 password_query = SELECT username AS user, password FROM mailbox \ WHERE username = '%u' AND active='1'

Μην ξεχάσετε να χρησιμοποιήσετε τα σωστά διαπιστευτήρια MySQL (όνομα db, χρήστη και κωδικό πρόσβασης).

Στη συνέχεια, επεξεργαστείτε το αρχείο conf.d/10-mail.conf και επεξεργαστείτε τις ακόλουθες μεταβλητές:

/etc/dovecot/conf.d/10-mail.conf

… mail_location = maildir:/var/mail/vmail/%d/%n… mail_uid = vmail mail_gid = vmail… first_valid_uid = 5000 last_valid_uid = 5000… mail_privileged_group = vmail… mail_plugins = quota…

Για να κάνετε το έργο ελέγχου ταυτότητας, ανοίξτε το conf.d/10-auth.conf , επεξεργαστείτε τις ακόλουθες γραμμές και συμπεριλάβετε το αρχείο auth-sql.conf.ext :

/etc/dovecot/conf.d/10-auth.conf

… disable_plaintext_auth = yes… auth_mechanisms = plain login… #!include auth-system.conf.ext !include auth-sql.conf.ext…

Ανοίξτε το αρχείο conf.d/10-master.conf και τροποποιήστε το ως εξής:

/etc/dovecot/conf.d/10-master.conf

… service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix }… }… service auth {… unix_listener auth-userdb { mode = 0600 user = vmail group = vmail }… unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }… }… service auth-worker { user = vmail }… service dict { unix_listener dict { mode = 0660 user = vmail group = vmail } }…

Ανοίξτε το conf.d/10-ssl.conf και ενεργοποιήστε το SSL / TLS.

/etc/dovecot/conf.d/10-ssl.conf

… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.


If you have followed this series from the beginning, you should already have the fullchain.pem , privkey.pem , dhparam.pem files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.


Thanks to Nevyn for noticing the problem and providing a solution.
… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.


If you have followed this series from the beginning, you should already have the fullchain.pem , privkey.pem , dhparam.pem files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.


Thanks to Nevyn for noticing the problem and providing a solution.

Ανοίξτε το αρχείο conf.d/20-imap.conf και ενεργοποιήστε την προσθήκη imap_quota :

/etc/dovecot/conf.d/20-imap.conf

… protocol imap {… mail_plugins = $mail_plugins imap_quota… }…

Ανοίξτε το αρχείο conf.d/20-lmtp.conf και επεξεργαστείτε το ως εξής:

/etc/dovecot/conf.d/20-lmtp.conf

… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins }…

Ορίστε τα προεπιλεγμένα γραμματοκιβώτια στο αρχείο conf.d/20-lmtp.conf :

/etc/dovecot/conf.d/15-mailboxes.conf

… mailbox Drafts { special_use = \Drafts } mailbox Spam { special_use = \Junk auto = subscribe } mailbox Junk { special_use = \Junk }…

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

Τώρα πρέπει να ρυθμίσουμε το Dovecot για να συνδεθεί με τη βάση δεδομένων, να χειριστεί τα όρια των ποσοστώσεων και να εκτελέσει μια δέσμη ενεργειών που στέλνει ένα μήνυμα στον χρήστη όταν η ποσόστωση του χρήστη υπερβαίνει ένα καθορισμένο όριο. Για να το ανοίξετε, ανοίξτε το αρχείο conf.d/90-quota.conf και τροποποιήστε το ως εξής:

/etc/dovecot/conf.d/90-quota.conf

plugin { quota = dict:User quota::proxy::sqlquota quota_rule = *:storage=5GB quota_rule2 = Trash:storage=+100M quota_grace = 10%% quota_exceeded_message = Quota exceeded, please contact your system administrator. quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u } service quota-warning { executable = script /usr/local/bin/quota-warning.sh user = vmail unix_listener quota-warning { group = vmail mode = 0660 user = vmail } } dict { sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }

Επίσης, πρέπει να πούμε στο περιστέρι πώς να αποκτήσετε πρόσβαση στο λεξικό SQL της ποσόστωσης. Ανοίξτε το αρχείο dovecot-dict-sql.conf.ext και επεξεργαστείτε τις ακόλουθες γραμμές:

/etc/dovecot/dovecot-dict-sql.conf.ext

… connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD… map { pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }… # map { # pattern = shared/expire/$user/$mailbox # table = expires # value_field = expire_stamp # # fields { # username = $user # mailbox = $mailbox # } # }… Βεβαιωθείτε ότι χρησιμοποιείτε τα σωστά διαπιστευτήρια MySQL (όνομα db, χρήστη και κωδικό πρόσβασης).

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

/usr/local/bin/quota-warning.sh

#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=dict:User quota::noenforcing:proxy::sqlquota" From: [email protected] Subject: Quota warning Your mailbox is now $PERCENT% full. EOF

Κάντε το εκτελέσιμο σενάριο εκτελώντας την ακόλουθη εντολή chmod :

sudo chmod +x /usr/local/bin/quota-warning.sh

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

sudo systemctl restart dovecot

συμπέρασμα

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

mail διακομιστή postfix dovecot

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

Άλλες θέσεις αυτής της σειράς:

• Ρύθμιση διακομιστή αλληλογραφίας με PostfixAdmin • Εγκατάσταση και διαμόρφωση παραμέτρων Postfix και Dovecot • Εγκατάσταση και ενοποίηση Rspamd • Εγκατάσταση και ρύθμιση παραμέτρων του Roundcube Webmail