CentOS 7.2部署邮件服务器(Postfix)
一、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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。