优选主流主机商
任何主机均需规范使用

CentOS 7.2 配置 Postfix 邮件服务器教程:从零开始搭建高效邮件系统

一、Postfix简介

Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是一个开放源代码的软件。
Postfix 官方网站:http://www.postfix.org/
Postfix 下载地址:http://www.postfix.org/download.html

二、Postfix安装

安装Postfix以配置SMTP服务器
[1] 即使CentOS系统安装了[最小安装],也会安装Postfix,但如果Postfix不安装,请先安装它,如下所示。
[root@linuxprobe ~]# yum -y install postfix

[2] 此示例显示配置SMTP-Auth以使用Dovecot的SASL函数。

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 [root@linuxprobe ~] # vi /etc/postfix/main.cf # line 75: uncomment and specify hostname   myhostname = linuxprobe.srv.world # line 83: uncomment and specify domain name   mydomain = srv.world # line 99: uncomment   myorigin = $mydomain # line 116: change   inet_interfaces = all # line 164: add   mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # line 264: uncomment and specify your local network   mynetworks = 127.0.0.0 /8 , 10.0.0.0 /24 # line 419: uncomment (use mailboxdir)   home_mailbox = mailbox/ # line 574: add   smtpd_banner = $myhostname ESMTP # add follows to the end   # limit an email size for 10M   message_size_limit = 10485760   # limit a mailbox for 1G   mailbox_size_limit = 1073741824 # for SMTP-Auth   smtpd_sasl_type = dovecot smtpd_sasl_path = private /auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject   [root@linuxprobe ~] # systemctl restart postfix [root@linuxprobe ~] # systemctl enable postfix
[3]如果Firewalld正在运行,请允许SMTP服务。 SMTP使用25 / TCP。

?

1 2 3 4 [root@dlp ~] # firewall-cmd --add-service=smtp --permanent success [root@dlp ~] # firewall-cmd --reload success

三、Dovecot 安装

安装Dovecot以配置POP / IMAP服务器
[1] 安装Dovecot.
[root@linuxprobe ~]# yum -y install dovecot

[2] 此示例显示配置为向Postfix提供SASL功能 .

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [root@linuxprobe ~] # vi /etc/dovecot/dovecot.conf # line 24: uncomment protocols = imap pop3 lmtp # line 30: uncomment and change ( if not use IPv6 ) listen = * [root@linuxprobe ~] # vi /etc/dovecot/conf.d/10-auth.conf # line 10: uncomment and change ( allow plain text auth ) disable_plaintext_auth = no # line 100: add auth_mechanisms = plain login [root@linuxprobe ~] # vi /etc/dovecot/conf.d/10-mail.conf # line 30: uncomment and add mail_location = maildir:~ /Maildir [root@linuxprobe ~] # vi /etc/dovecot/conf.d/10-master.conf # line 96-98: uncomment and add like follows # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth {   mode = 0666   user = postfix   group = postfix } [root@linuxprobe ~] # vi /etc/dovecot/conf.d/10-ssl.conf # line 8: change (not require SSL) ssl = no   [root@linuxprobe ~] # systemctl start dovecot [root@linuxprobe ~] # systemctl enable dovecot
[3] 如果Firewalld正在运行,请允许POP / IMAP服务。 POP使用110 / TCP,IMAP使用143 / TCP.

?

1 2 3 4 [root@vdevops ~] # firewall-cmd --add-port={110/tcp,143/tcp} --permanent success [root@vdevops ~] # firewall-cmd --reload success

四、SSL设置

配置SSL以加密连接
[1] 首先创建证书

[2] 为SSL配置Postfix和Dovecot。

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # add to the end smtpd_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/server .crt smtpd_tls_key_file = /etc/pki/tls/certs/server .key smtpd_tls_session_cache_database = btree: /etc/postfix/smtpd_scache [root@linuxprobe ~] # vi /etc/postfix/master.cf # line 26-28: uncomment smtps  inet n  -  n  -  -  smtpd   -o syslog_name=postfix /smtps   -o smtpd_tls_wrappermode= yes [root@linuxprobe ~] # vi /etc/dovecot/conf.d/10-ssl.conf # line 8: change ssl = yes # line 14,15: specify certificates ssl_cert = < /etc/pki/tls/certs/server .crt ssl_key = < /etc/pki/tls/certs/server .key [root@linuxprobe ~] # systemctl restart postfix dovecot
[3] 如果Firewalld正在运行,请允许SMTPS / POP3S / IMAPS服务。 SMTPS使用465 /
TCP,POP3S使用995 / TCP,IMAPS使用993 / TCP。

?

1 2 3 4 5 6 [root@vdevops ~] # firewall-cmd --add-service={pop3s,imaps} --permanent success [root@vdevops ~] # firewall-cmd --add-port=465/tcp --permanent success [root@vdevops ~] # firewall-cmd --reload success

邮件日志报告:pflogsumm

安装pflogsumm这是Postfix日志报告工具
[1] 安装postfix-perl-scripts包 .

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 [root@linuxprobe ~] # yum -y install postfix-perl-scripts # generate log summary for yesterday [root@linuxprobe ~] # perl /usr/sbin/pflogsumm -d yesterday /var/log/maillog Postfix log summaries for Jul 14 Grand Totals ------------ messages    2 received    5 delivered    0 forwarded    0 deferred    0 bounced    0 rejected (0%)    0 reject warnings    0 held    0 discarded (0%)     2879 bytes received   6572 bytes delivered    1 senders    1 sending hosts /domains    2 recipients    2 recipient hosts /domains Per-Hour Traffic Summary ------------------------   time   received delivered deferred bounced  rejected   --------------------------------------------------------------------   0000-0100   0   0   0   0   0   0100-0200   0   0   0   0   0   0200-0300   0   0   0   0   0   0300-0400   0   0   0   0   0   0400-0500   0   0   0   0   0   0500-0600   0   0   0   0   0   0600-0700   0   0   0   0   0   0700-0800   0   0   0   0   0   0800-0900   0   0   0   0   0   0900-1000   0   0   0   0   0   1000-1100   2   5   0   0   0   1100-1200   0   0   0   0   0   1200-1300   0   0   0   0   0   1300-1400   0   0   0   0   0   1400-1500   0   0   0   0   0   1500-1600   0   0   0   0   0   1600-1700   0   0   0   0   0   1700-1800   0   0   0   0   0   1800-1900   0   0   0   0   0   1900-2000   0   0   0   0   0   2000-2100   0   0   0   0   0   2100-2200   0   0   0   0   0   2200-2300   0   0   0   0   0   2300-2400   0   0   0   0   0   Host /Domain Summary: Message Delivery --------------------------------------   sent cnt bytes defers avg dly max dly host /domain   -------- ------- ------- ------- ------- -----------    3  4119  0  0.4 s 0.8 s srv.world    2  2453  0  0.1 s 0.1 s mail.srv.world   Host /Domain Summary: Messages Received ---------------------------------------   msg cnt bytes host /domain   -------- ------- -----------    2  2879 mail.srv.world   Senders by message count ------------------------    2 cent@mail.srv.world   Recipients by message count ---------------------------    3 redhat@srv.world    2 cent@mail.srv.world   Senders by message size -----------------------   2879 cent@mail.srv.world   Recipients by message size --------------------------   4119 redhat@srv.world   2453 cent@mail.srv.world   message deferral detail: none message bounce detail (by relay): none message reject detail: none message reject warning detail: none message hold detail: none message discard detail: none smtp delivery failures: none Warnings --------   tlsmgr (total: 6)     3 redirecting the request to postfix-owned data_directory /var/li ...     3 request to update table btree: /etc/postfix/smtpd_scache in non-...   Fatal Errors: none Panics: none Master daemon messages ----------------------    4 daemon started -- version 2.10.1, configuration /etc/postfix    3 terminating on signal 15    1 reload -- version 2.10.1, configuration /etc/postfix   [root@linuxprobe ~] # crontab -e # 发送邮件日志摘要在AM每天1:00到根 00 01 * * * perl /usr/sbin/pflogsumm -e -d yesterday /var/log/maillog | mail -s 'Logwatch for Postfix' root

 

未经允许不得转载:搬瓦工中文网 » CentOS 7.2 配置 Postfix 邮件服务器教程:从零开始搭建高效邮件系统