欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

CentOS 7.2部署邮件服务器(Postfix)

程序员文章站 2023-11-09 11:57:22
一、postfix简介 postfix 是一种电子邮件服务器,它是由任职于ibm华生研究中心(t.j. watson research center)的荷兰籍研究员wie...

一、postfix简介

postfix 是一种电子邮件服务器,它是由任职于ibm华生研究中心(t.j. watson research center)的荷兰籍研究员wietse venema为了改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是一个开放源代码的软件。
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] 首先创建证书,传送门:

[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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。