Android

I-install at i-configure ang postfix at dovecot

CentOS 8 - Postfix SMTP, Dovecot POP IMAP and SSL/TLS

CentOS 8 - Postfix SMTP, Dovecot POP IMAP and SSL/TLS

Talaan ng mga Nilalaman:

Anonim

Ito ang pangalawang post ng aming Pag-set up at pag-configure ng serye ng server ng mail. Sa post na ito ipapakita namin sa iyo kung paano i-install at i-configure ang Postfix at Dovecot, ang dalawang pangunahing sangkap ng aming system ng mail.

Ang Postfix ay isang open-source mail transfer agent (MTA), isang serbisyo na ginamit upang magpadala at tumanggap ng mga email. Ang Dovecot ay isang IMAP / POP3 server at sa aming pag-setup ay hahawakan din nito ang lokal na paghahatid at pagpapatunay ng gumagamit.

Ang tutorial na ito ay isinulat para sa Ubuntu 16.04, gayunpaman ang parehong mga hakbang na may maliit na pagbabago ay dapat gumana sa anumang mas bagong bersyon ng Ubuntu.

Mga kinakailangan

Bago magpatuloy sa tutorial na ito, siguraduhing naka-log in ka bilang isang gumagamit na may mga pribilehiyo ng sudo.

I-install ang Postfix at Dovecot

Ang mga pakete ng Dovecot sa mga default na repositories ng Ubuntu ay hindi na napapanahon. Upang samantalahin ang module na imap_sieve ay mai-install namin ang Dovecot mula sa repositoryo ng komunidad ng Dovecot.

Idagdag ang repositoryo GPG key sa iyong apt na pinagkukunan ng susi sa sumusunod na wget na utos:

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

Paganahin ang imbakan ng komunidad ng Dovecot gamit ang sumusunod na utos:

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

Pag-configure ng Postfix

Mag-setup kami ng Postfix upang magamit ang mga virtual mailbox at domain.

Magsimula sa pamamagitan ng paglikha ng mga file ng pagsasaayos ng sql na magtuturo sa postfix kung paano ma-access ang MySQL database, na nilikha sa unang bahagi ng seryeng ito.

sudo mkdir -p /etc/postfix/sql

Buksan ang iyong text editor at lumikha ng mga sumusunod na file:

/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'

Kapag nilikha ang mga file ng pagsasaayos ng SQL, i-update ang pangunahing file ng pagsasaayos ng postfix upang isama ang impormasyon tungkol sa mga virtual na domain, mga gumagamit, at mga aliases na nakaimbak sa database ng 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" Ipinapakita ng utos ng postconf ang aktwal na mga halaga ng mga parameter ng pagsasaayos, nagbabago ng mga halaga ng mga parameter ng pagsasaayos, o ipinapakita ang iba pang impormasyon sa pagsasaayos tungkol sa Postfix mail system.

Ang lokal na ahente ng paghahatid ay ihahatid ang mga papasok na email sa mga mailbox ng mga gumagamit. Patakbuhin ang sumusunod na utos upang itakda ang serbisyo ng LMTP ng Dovecot bilang isang default na paghahatid ng mail mail:

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

Itakda ang mga parameter ng TL gamit ang naunang nabuo na I-encrypt ang SSL certificate:

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_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'

I-configure ang napatunayan na mga setting ng SMTP at i-off ang pagpapatunay sa 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 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination'

Kailangan din nating i-edit ang Postfix master configuration file master.cf at paganahin ang submission port ( 587 ) at smtps port ( 465 ).

Buksan ang file gamit ang iyong text editor at uncomment / i-edit ang mga sumusunod na linya:

/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

I-restart ang serbisyo ng postfix para sa mga pagbabago na magkakabisa.

sudo systemctl restart postfix

Sa puntong ito ay matagumpay mong na-configure ang serbisyo ng Postfix.

I-configure ang Dovecot

Sa bahaging ito ay i-configure namin ang Dovecot upang tumugma sa aming pag-setup. Tiyaking na-edit mo ang mga linya na naka-highlight sa dilaw.

Magsimula sa pamamagitan ng pag-configure ng file ng dovecot-sql.conf.ext na nagtuturo kay Dovecot kung paano ma-access ang database at kung paano mahanap ang impormasyon tungkol sa mga email account.

/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'

Huwag kalimutang gamitin ang tamang mga kredensyal ng MySQL (dbname, user at password).

Susunod, i-edit ang conf.d/10-mail.conf file at i-edit ang sumusunod na mga variable:

/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…

Upang gawin ang gawaing pagpapatunay, buksan ang conf.d/10-auth.conf , i-edit ang mga sumusunod na linya at isama ang auth-sql.conf.ext file:

/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…

Buksan ang conf.d/10-master.conf file, at baguhin ito tulad ng sumusunod:

/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 } }…

Buksan ang conf.d/10-ssl.conf at paganahin ang 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.

Buksan ang conf.d/20-imap.conf file at buhayin ang imap_quota plugin:

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

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

Buksan ang conf.d/20-lmtp.conf at i-edit ito tulad ng sumusunod:

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

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

Tukuyin ang default na mga Mailbox sa conf.d/20-lmtp.conf file:

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

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

Mayroong dalawang magkakaibang uri ng mga sukat ng quota, ang isa ay nakatakda para sa buong domain at ang iba pang bawat mailbox ng gumagamit. Sa nakaraang bahagi ng seryeng ito ay pinagana natin ang suporta ng quota sa PostfixAdmin na nangangahulugang ang impormasyon ng quota ay maiimbak sa database ng PostfixAdmin.

Ngayon kailangan nating i-configure ang Dovecot upang kumonekta sa database, upang mahawakan ang mga limitasyon ng quota at magpatakbo ng isang script na nagpapadala ng isang mail sa gumagamit kapag ang quota ng gumagamit ay lumampas sa isang tinukoy na limitasyon. Upang gawin ito buksan ang conf.d/90-quota.conf file at baguhin ito tulad ng mga sumusunod:

/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 }

Kailangan din nating sabihin sa dovecot kung paano ma-access ang diksyonaryo ng quota SQL. Buksan ang file ng dovecot-dict-sql.conf.ext at i-edit ang mga sumusunod na linya:

/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 # } # }… Siguraduhing ginagamit mo ang tamang mga kredensyal ng MySQL (dbname, user at password).

Lumikha ng sumusunod na script ng shell na magpapadala ng isang email sa gumagamit kung ang quota nito ay lumampas sa isang tinukoy na limitasyon:

/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

Gawin ang naisakatuparan ng script sa pamamagitan ng pagpapatakbo ng sumusunod na utos ng chmod :

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

Sa wakas i-restart ang serbisyo ng dovecot para sa mga pagbabago na magkakabisa.

sudo systemctl restart dovecot

Konklusyon

Sa ngayon dapat kang magkaroon ng isang ganap na functional na sistema ng mail. Sa susunod na bahagi ng seryeng ito, ipapakita namin sa iyo kung paano i-install at isama ang Rspamd.

mail server postfix dovecot

Ang post na ito ay isang bahagi ng Pag-set up at pag-configure ng serye ng server ng mail.

Iba pang mga post sa seryeng ito:

• Mag-set up ng isang mail server na may PostfixAdmin • I-install at i-configure ang Postfix at Dovecot • I-install at Isama ang Rspamd • I-install at I-configure ang Roundcube Webmail