CentOS 7.2 部署邮件服务器Postfix

一、Postfix简介

二、Postfix安装

  • 安装Postfix以配置SMTP服务器

[1] 即使CentOS系统安装了[最小安装],也会安装Postfix,但如果Postfix不安装,请先安装它,如下所示。

[root@linuxprobe ~]# yum -y install postfix

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

[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。

[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功能 .

[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.

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

四、SSL设置

  • 配置SSL以加密连接

[1] 首先创建证书,传送门:http://www.jb51.cc/article/p-pukuckix-qq.html
[2] 为SSL配置Postfix和Dovecot。

# 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。

[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包 .

[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下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native