邮件服务器的安全设置

上一篇文章介绍了简单的邮件服务器架设,本文继续介绍对此服务器进行安全上的加固,即添加SASL认证及TLS加密。

首先,安装必要软件:

yum install cyrus-sasl cyrus-sasl-plain

接着修改/etc/postfix/main.cf,添加下列参数:

smtpd_sasl_auth_enable = yes
smtpd_delay_reject=yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
  permit_sasl_authenticated,
  permit_mynetworks,
  reject_unauth_destination

接着将/etc/dovecot.conf的相关行的注释去除,形成下列的配置:

auth default {
    mechanisms = plain login
    passdb pam {
    }
    userdb passwd {
    }
    user = root
    socket listen {
      client {
        path = /var/spool/postfix/private/auth
        mode = 0660
        user = postfix
        group = postfix
      }
    }
}

注意mechanisms = plain login这一行,要在原有基础上添加login这个参数。

接着重启服务:

service dovecot restart
postfix reload

下面,给邮件服务器添加TLS加密。

安装相关软件:

yum install crypto-utils

生成密钥对:

genkey --days 365 mail.example.com

将example.com替换成需要的网址。按照提示完成密钥对的生成,中途提示是否将证书上传到证书认证商,可以选择否。完成密钥对的生成,密钥对的默认存放地址为:

/etc/pki/tls/certs/mail.example.com.cert  # public cert
/etc/pki/tls/private/mail.example.com.key  # private key

可以不修改上述地址。

接着,在/etc/postfix/main.cf中,加入如下配置:

smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/tls/private/mail.example.com.key
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.example.com.cert
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
tls_random_source = dev:/dev/urandom

同样将example.com替换成需要的网址。然后修改/etc/postfix/master.cf,将下述几行去注释:

smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

保存后就可以重新加载postfix设置了:

postfix reload

接着配置dovecot支持TLS。按下面的例子修改/etc/dovecot.conf:

protocols = imap imaps pop3 pop3s
#disable_plaintext_auth = no
#ssl_disable = no
ssl_cert_file = /etc/pki/tls/certs/mail.example.com.cert
ssl_key_file = /etc/pki/tls/private/mail.example.com.key
ssl_cipher_list = ALL:!LOW:!SSLv2

接着重启dovecot服务:

service dovecot restart

这样,一个具有SASL和TLS特性的邮件服务器就搭建完成了。可以用Thunderbird或者Outlook Express之类的客户端测试是否配置正常。在选择邮件服务器的时候,可以选择TLS加密,这样IMAP的端口就变成了993,而SMTP端口变成了465。

下面是用Thunderbird发送邮件时,/var/log/maillog的输出示例:

Sep 26 17:24:25 youranlinux postfix/smtpd[30613]: TLS connection established from unknown[117.15.211.148]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
Sep 26 17:24:28 youranlinux postfix/smtpd[30613]: 499A1130188: client=unknown[117.15.211.148], sasl_method=PLAIN, sasl_username=ex

如有疑问,欢迎留言讨论!

本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!

Leave a Reply

Your email address will not be published.