大家学会了配置SMTP服务器和POP服务器之后应该会发现一个问题,就是SMTP服务器理论上可以被盗用发送匿名邮件,或者向邮件服务器内的用户邮箱发送垃圾邮件。
由于正常情况下外域的邮件服务器给我们的邮件服务器内的用户邮箱内的用户邮箱发送邮件的时候是不需要登录的,也无法要求外域的邮件服务器登录我们的邮件服务器,所以这个就被别有用心的人利用发送垃圾邮件了。
这个怎么解决呢?
Postfix给我们设计了一套限制规则,包括smtpd_sender_restrictions、smtpd_recipient_restrictions等等。这些规则可以在对应的时机触发,并且根据限制规则设置的参数对SMTP服务的操作流进行精确控制。
虽然我们不能限制外域连接到我们的邮件服务器并向我们的用户邮箱发送邮件,但是我们可以最大限度的确保真的是正经的外域邮件服务器在进行这些操作,而不是黑客或者机器人在搞破坏!
中继限制,在RCPT TO命令时候触发,在recipient规则前面触发。
http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions
内部网络,放行
通过sasl认证,放行
permit_mynetworks permit_sasl_authenticated defer_unauth_destination
客户端限制,在客户端/外域服务器连接的时候触发。
http://www.postfix.org/postconf.5.html#smtpd_client_restrictions
HELO/EHLO命令限制,在出任HELO命令时候触发。
http://www.postfix.org/postconf.5.html#smtpd_helo_restrictions
设置任何参数之前需要设置smtpd_helo_required = yes,否则客户端完全可以通过不输入HELO/EHLO命令跳过所有规则。
无效的helo主机名称,拒绝
未知的helo主机名称,拒绝
reject_invalid_helo_hostname reject_unknown_helo_hostname
smtpd_sender_restrictions
发件人限制
smtpd_recipient_restrictions
收件人限制
smtpd_data_restrictions
邮件正文限制
smtpd_end_of_data_restrictions
邮件正文结束限制
smtpd_etrn_restrictions
ERTN命令限制