CentOS7.2部署邮件服务器(Postfix)

注意:以下所有配置的命名都是根据主机的hostname变量来配置的,如果hostname更换了的话,需要重新生成证书。

生成ssl证书

  • 生成证书的脚本代码

以hostname为命名生成证书,运行脚本后需输入四次相同密码(密码须包含数字和字母)

#!/bin/sh
rm -rf $(hostname).*

openssl genrsa -des3 -out $(hostname).key 1024

SUBJECT="/C=US/ST=Mars/L=iTranswarp/O=iTranswarp/OU=iTranswarp/CN=$(hostname)"

openssl req -new -subj $SUBJECT -key $(hostname).key -out $(hostname).csr

mv $(hostname).key $(hostname).origin.key

openssl rsa -in $(hostname).origin.key -out $(hostname).key

openssl x509 -req -days 3650 -in $(hostname).csr -signkey $(hostname).key -out $(hostname).crt

cp $(hostname).crt /etc/pki/tls/certs/$(hostname).crt
cp $(hostname).key /etc/pki/tls/certs/$(hostname).key

echo "the key path:/etc/pki/tls/certs/$(hostname).key"
echo "the crt path:/etc/pki/tls/certs/$(hostname).crt"

rm -rf $(hostname).*

Postfix安装及配置

安装

yum -y install postfix

配置

  • vim /etc/postfix/main.cf
# line 75: uncomment and specify hostname
myhostname =  $(hostname)

# line 83: uncomment and specify domain name
mydomain = test.cn

# 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


# 在配置文件尾部追加以下内容

# 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
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/$(hostname).crt
smtpd_tls_key_file = /etc/pki/tls/certs/$(hostname).key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
  • vim /etc/postfix/master.cf
# line 26-28: uncomment
smtps       inet   n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes

Dovecot 安装及配置

安装

yum -y install dovecot

配置

  • vim /etc/dovecot/dovecot.conf

    # line 24: uncomment
    protocols = imap pop3 lmtp
    # line 30: uncomment and change ( if not use IPv6 )
    listen = *
  • vim /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
  • vim /etc/dovecot/conf.d/10-mail.conf

    # line 30: uncomment and add
    mail_location = maildir:~/Maildir
  • vim /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
    }
  • vim /etc/dovecot/conf.d/10-ssl.conf

    # line 8: change
    ssl = yes
    # line 14,15: specify certificates
    ssl_cert = </etc/pki/tls/certs/$(hostname).crt
    ssl_key = </etc/pki/tls/certs/$(hostname).key

运行

systemctl restart postfix
systemctl enable postfix
systemctl start dovecot
systemctl enable dovecot

firewall-cmd --add-service=smtp --permanent
firewall-cmd --add-port={110/tcp,143/tcp} --permanent
firewall-cmd --add-service={pop3s,imaps} --permanent
firewall-cmd --add-port=465/tcp --permanent
firewall-cmd --reload

邮件日志报告pflogsumm

  • 安装

    yum -y install postfix-perl-scripts
  • 查看

    perl /usr/sbin/pflogsumm -d yesterday /var/log/maillog
  • 每天1:00AM 定时发送邮件日志摘要到根

    crontab -e
    00 01 * * * perl /usr/sbin/pflogsumm -e -d yesterday /var/log/maillog | mail -s 'Logwatch for Postfix' root

参考资料:CentOS 7.2 部署邮件服务器(Postfix)

添加新评论