上一篇文章介绍了简单的邮件服务器架设,本文继续介绍对此服务器进行安全上的加固,即添加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/)的原创文章,转载请注明出处!