设为首页 收藏本站
查看: 871|回复: 0

[经验分享] postfix反垃圾邮件说明

[复制链接]

尚未签到

发表于 2015-9-15 09:35:01 | 显示全部楼层 |阅读模式
  参考地址:http://guailele.blog.iyunv.com/1156442/780223
  1、打开 smtp 的认证模块
  在/etc/postfix/main.cf文件最后加上:
   smtpd_sasl_auth_enable = yes
   smtpd_delay_reject=yes
   smtpd_recipient_restrictions = permit_mynetworkspermit_sasl_authenticated permit_auth_destination reject
   smtpd_client_restrictions = permit_sasl_authenticated
   broken_sasl_auth_clients = yes
   smtpd_sasl_security_options = noanonymous
这样用户的postfix就支持smtp认证了
  
  #1、postfix配置说明(强烈建议参看“postfix权威指南 第十一章 反垃圾邮件”)
#fqdn格式:完全限定域名格式,即用点分隔开的包括域名和主机名的主机全名
# smtpd related config
smtpd_recipient_restrictions =
        permit_mynetworks,        #检测客户端是否来自mynetworks或者mynetworks_style的网络,是的话返回OK,否则返回DUNNO状态码。
        permit_sasl_authenticated,    #检测用户认证是否通过的,认证通过的返回状态OK,否则返回DUNNO状态码。
        reject_non_fqdn_hostname,    #HELO/EHLO时:客户端提供的主机名不是RFC要求的完整形式(FQND),返回REJECT,否则返回DUNNO状态码。
        reject_non_fqdn_sender,        #MAIL FROM时:客户端提供的主机名不是RFC要求的完整形式(FQND),返回REJECT,否则返回DUNNO状态码。
        reject_non_fqdn_recipient,    #RCPT TO时:客户端提供的主机名不是RFC要求的完整形式(FQND),返回REJECT,否则返回DUNNO状态码。
        reject_unauth_destination,    #RCPT TO时:收件人不在postfix管辖的区域(由mydestination定义),返回REJECT,否则返回DUNNO状态码。
        reject_unauth_pipelining,    #禁止非授权客户端使用pipelining
        reject_invalid_hostname        #HELO/EHLO时:客户端提供的主机名不是有效的主机名时,返回REJECT,否则返回DUNNO状态码。
# SMTP sender login matching config
smtpd_sender_restrictions =
        permit_mynetworks,        #检测客户端是否来自mynetworks或者mynetworks_style的网络,是的话返回OK,否则返回DUNNO状态码。
        reject_sender_login_mismatch,    #拒绝发送者在$smtpd_sender_owner_maps中所匹配的用户名和sasl登录名不一致的连接。
        reject_authenticated_sender_login_mismatch,    #拒绝认证成功的发送者在$smtpd_sender_owner_maps中所匹配的用户名和sasl登录名不一致的连接。
        reject_unauthenticated_sender_login_mismatch    #拒绝认证失败的发送者在$smtpd_sender_owner_maps中所匹配的用户名和sasl登录名不一致的连接。
smtpd_sender_login_maps =
        mysql:/etc/postfix/mysql_virtual_sender_maps.cf,
        mysql:/etc/postfix/mysql_virtual_alias_maps.cf
   

#2、smtp会话过程的各个限制条件参数:详看图片“stmp对话过程以及各个阶段对于的限制条件.png”,共分为7个顺序过程的参数限制:
1、smtpd_client_restrictions
2、smtpd_helo_restrictions
3、smtpd_sender_restrictions
4、smtpd_recipient_restrictions
5、smtpd_data_restrictions
6、header_checks
7、body_checks
#3、会话过程对比:
#---------------------------------------------------------------------------
root@mail:/etc/postfix# telnet mail.jmail.com 25
Trying 192.168.0.234...
Connected to mail.jmail.com.
Escape character is '^]'.
220 ESMTP                    #smtpd_client_restrictions
#---------------------------------------------------------------------------
ehlo mail.zmail.com                #smtpd_helo_restrictions
250-mail.jmail.com
250-PIPELINING
250-SIZE 5242880
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
#---------------------------------------------------------------------------
MAIL FROM:<zyq@zmail.com>            #smtpd_sender_restrictions
250 2.1.0 Ok
#---------------------------------------------------------------------------
RCPT TO:<jj@extmail.org>            #smtpd_recipient_restrictions
250 2.1.5 Ok
#---------------------------------------------------------------------------
DATA                        #smtpd_data_restrictions
354 End data with <CR><LF>.<CR><LF>
#---------------------------------------------------------------------------
Client: To: jingjing<jj@extmail.org>        #header_checks
From:<zyq@zmail.com>
Subject:SMTP Test!
#---------------------------------------------------------------------------
this is a test message body!            #body_checks
.
250 2.0.0 Ok: queued as 959FDE03CA
#---------------------------------------------------------------------------

#4、限制条件与对应的受检信息
限制条件                    客户端提供的受检信息
#RBL:实时黑名单
reject_rbl_client                         客户端提供的IP地址或则主机名称    #smtpd_client_restrictions
reject_rhsbl_client
reject_unknown_client
check_client_access type:mapname    helo提供的主机名称        #smtpd_helo_restrictions   
permit_naked_ip_address
reject_invalid_hostname
reject_non_fqdn_hosname
reject_unknown_hosname
check_helo_access type:mapname        MAIL FROM提供的寄件人邮件地址    #smtpd_sender_restrictions
reject_non_fqdn_sender
reject_rhsbl_sender
reject_unknown_sender_domain
check_sender_access type:mapname    RCPT TO提供的收件人的地址        #smtpd_recipient_restrictions
permit_auth_destination
permit_mx_backup
reject_non_fqdn_recipient
reject_unauth_destination
reject_unkownn_recipient_domain
check_recipient_access type:mapname   
reject_unauth_pipeling            DATA命令
permint                    无条件批准
reject                    无条件拒绝
defer                    无条件延迟
warn_if_reject                将原本的REJECT动作改为WARN(eg:warn_if_reject reject_unauth_destination 注意此命令必须放在其他条件之前,不能单独调用)
reject_unauth_pipelining        禁止非授权客户端使用pipelining

#参数详细说明
reject_rbl_client    #拒绝来自属于rbl和rhsbl列表中的地址进行连接。通过检查一个ip地址或域名是否存在于domain.tld的rbl或rhsbl中,可以判断该客户端是否被列入了domain.tld的实时黑名单,从而决定是否接受连接。
reject_rhsbl_client    #拒绝来自属于rbl和rhsbl列表中的地址进行连接。通过检查一个ip地址或域名是否存在于domain.tld的rbl或rhsbl中,可以判断该客户端是否被列入了domain.tld的实时黑名单,从而决定是否接受连接。
reject_unknown_client    #拒绝客户的地址没有对应的dns的a记录或ptr记录的连接。通常有些机器,尤其是个人拨号用户的机器没有对应的a记录或ptr记录,所以要注意漫游用户的使用(漫游用户是指不在$mynetworks中,比如在别的isp拨号上网的用户。通常用smtp认证来解决这个问题)。
check_client_access type:mapname
permit_naked_ip_address            #允许直接使用ip地址的连接。通常在helo/ehlo中使用主机名而不是ip地址。
reject_invalid_hostname            #拒绝无效格式的主机名的连接。
reject_non_fqdn_hosname            #HELO/EHLO时:客户端提供的主机名不是RFC要求的完整形式(FQND),返回REJECT,否则返回DUNNO状态码。
reject_unknown_hosname            #HELO/EHLO时:客户端提供的主机名未知时,返回REJECT,否则返回DUNNO状态码。
check_helo_access type:mapname
reject_non_fqdn_sender            #MAIL FROM时:客户端提供的服务器主机名不是RFC要求的完整形式(FQND),返回REJECT,否则返回DUNNO状态码。
reject_rhsbl_sender            #MAIL FROM时:拒绝来自实时黑名单的用户主机
reject_unknown_sender_domain        #MAIL FROM时:提供的网域无效时(DNS查询),返回REJECT,否则返回DUNNO状态码。
check_sender_access type:mapname
permit_auth_destination            #RCPT TO时:
#允许发往默认转发和默认接收的连接。
#postfix默认转发以下的邮件:
#来自$mynetworks中地址发送的邮件
#发往$relay_domains中的域或其子域的邮件。但是不能包含邮件路由(如user@elsewhere@domain.tld)。
#postfix默认接收最终投递目标符合如下条件的邮件:
#目标在$inet_interfaces
#目标在$mydestinations
#目标在$virtual_alias_domains
#目标在$virtual_mailbox_domains
permit_mx_backup            #RCPT TO时:允许接收本地主机是邮件投递目标的mx地址的邮件。但是不能包含邮件路由(如user@elsewhere@domain.tld)
reject_non_fqdn_recipient        #RCPT TO时:客户端提供的服务器主机名不是RFC要求的完整形式(FQND),返回REJECT,否则返回DUNNO状态码。
reject_unauth_destination        #RCPT TO时:拒绝不是发往默认转发和默认接收的连接。(防止成为垃圾邮件服务器)。
reject_unkownn_recipient_domain        #RCPT TO时:拒绝发往未知域名的连接。
check_recipient_access type:mapname   
reject_unauth_pipeling            #DATA命令
permint                    #无条件批准
reject                    #无条件拒绝
defer                    #无条件延迟
warn_if_reject                #将原本的REJECT动作改为WARN(eg:warn_if_reject reject_unauth_destination 注意此命令必须放在其他条件之前,不能单独调用)
reject_unauth_pipelining        #禁止非授权客户端使用pipelining

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-113802-1-1.html 上篇帖子: Postfix+Amavisd-new+Spamassassin+ClamAV整合安装 下篇帖子: postfix 邮件备份方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表