为Postfix添加TLS支持

近来邮件服务器上暴破的机器人越来越多,居然还破了几个用户的密码,用来发送垃圾邮件,好贱!琢磨着怎么改进一下这种情况,但是除了限制访问频率,似乎没有别的好方法,顺便把smtp和pop3都改为了ssl支持,也就是smtps和pop3s。

由于原有的邮件系统架设于courier-imap+postfix,所以启用pop3s是很简单的事情,两步操作即可:

1,生成crt:/usr/local/share/courier-imap/mkpop3dcert,执行完成后,会在当前目录生成一个被叫做pop3d.pem的文件。

2,启动courier-imap-pop3d-ssl即可,当然了,同时关闭掉courier-imap-pop3d。

接下来我们启用postfix的smtps,首先当然是生成crt,由于postfix要求有CA crt,所以呢,不能生成一个self-verification的crt,必须先整一个CA,这个流程和之前生成Openvpn证书的类似,这里就不多说了。

证书生成之后呢,我们添加一点点配置到postfix的main.cf里面:

#################TLS Support################
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = no
smtp_tls_CAfile = /usr/local/etc/postfix/certs/cacert.pem
smtp_tls_cert_file = /usr/local/etc/postfix/certs/servercert.pem
smtp_tls_key_file = /usr/local/etc/postfix/certs/serverkey.pem
smtpd_tls_CAfile = /usr/local/etc/postfix/certs/cacert.pem
smtpd_tls_cert_file = /usr/local/etc/postfix/certs/servercert.pem
smtpd_tls_key_file = /usr/local/etc/postfix/certs/serverkey.pem
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 3
smtpd_starttls_timeout = 60s

然后还需要修改一下master.cf,在smtp监听那一行下面,添加smtps的监听:

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,设置客户端就可以了,465和995哦亲!不要设置错了哦亲!