首页 > 代码库 > postfix邮箱搭建之策略限制(笔记-2.20170809)

postfix邮箱搭建之策略限制(笔记-2.20170809)

postfix 规则过滤:


  1. 标准响应代码:

5xx           永久性错误

4xx   暂时性错误

2xx                   正确


2. 常用过滤规则类型:

smtpd_client_restrictions#客户端过滤

smtpd_helo_restrictions#helo指令过滤

smtpd_sender_restrictions#寄件人过滤

smtpd_recipient_restrictions        #发件人过滤

smtpd_data_restrictions#内容过滤

smtpd_*_classes#自定义过滤



3.访问表类型:

参数 表类型 :查找路径表

check_client_access  hash:/etc/postfix/maps/client_maps

check_helo_accesshash:/etc/postfix/maps/helo_maps

check_recipient_accesshash:/etc/postfix/maps/recipient_maps

check_sender_accesshash:/etc/postfix/maps/sender_maps


4.使用参数:

permit_mynetworks#批准mynetworks参数中的网段客户端请求;

permit_auth_destination#批准destination参数中的域用户请求;

reject_unauth_destination#拒绝不是destination参数中的域用户请求

reject_invalid_hostname#拒绝客户端在helo命令时提供的主机名为无效主机名

reject_non_fqdn_hostname#拒绝客户端在helo命令时提供的主机名称不是RFC要求的完整形式

reject_non_fqdn_recipient#拒绝客户端在RCPT TO命令时提供不完整的收件地址的网域部分

reject_non_fqdn_sender#拒绝客户端在MAIL FROM命令时提供不完整的寄件地址的网域部分

reject_unknown_client#拒绝查不出PTR记录的客户端

reject_unknown_hostname#拒绝查不出A,MX记录的主机名

reject_unknown_recipient_domain#拒绝查不出收件地址不是有效的A MX记录

reject_unknown_sender_domain#拒绝查不出寄件地址不是有效的A MX记录


5.通用限制条件:

permit #批准

reject #无条件拒绝

defer  #婉拒请求


6.设定内容检查参数:

check_sender_access#针对发件人过滤

check_recipient_access#针对收件人过滤

check_client_access#针对客户端过滤


7.相关参数定义:

broken_sasl_auth_clients = yes        是否启用客户端sasl验证

permit_mynetworks                         允许本地网络

permit_sasl_authenticated               允许sasl验证通过的用户

reject_invalid_hostname                   拒绝主机名不合法的用户

reject_non_fqdn_hostname              拒绝主机名不是fqdn格式的用户

reject_unknown_sender_domain      拒绝无法识别的发件人域

reject_non_fqdn_sender                   拒绝不是fqdn格式的发件人

reject_non_fqdn_recipient                拒绝没有fqdn格式的发件人

reject_unknown_recipient_domain   拒绝无法识别的收件人域

reject_unauth_pipelining                   拒绝无法验证的管道

reject_unauth_destination                 拒绝非本域的收件人

smtpd_sasl_auth_enable = yes          启用sasl认证功能

smtpd_sasl_security_options = noanonymous 拒绝匿名用户

smtpd_banner =显示定义的信息


8. 实例:

smtpd_sender_login_maps = hash:/etc/postfix/maps/sender_login_maps

    #防止伪造发件人


smtpd_restriction_classes = local_only,testall_only     #定义两个策略组

local_only =

 check_recipient_access hash:/etc/postfix/maps/local_domains,reject,

 check_sender_access hash:/etc/postfix/maps/local_domains,reject

    #当用户应用此组策略时,只允许收发包含在local_domains文件里的用户账号或者域名(一般设置为     公司域名)

testall_only =                                                                #用户组权限控制

 check_sender_access hash:/etc/postfix/maps/testall_sender,reject

smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/maps/testall_recipient

    #1.当用户应用此策略后,只允许testall_sender文件里面的用户进行发送某个邮箱账号或者邮箱组

      2.testall_recipient文件是用来定义某邮箱组或者某用户启用这个策略

例子:

 需求:

创建一个公司所有人的组为:testall,并只允许某些人可以对这个组进行发送邮件;

实行:

   首先创建一个所有人组,文件为testall,邮箱别名为test_all@test.com,在文件里面添加所有人的 邮件账号;

   完成后,在testall_sender文件中添加允许对此组有发送权限的人员,

添加格式: 用户邮箱全称    OK            (多人需要用逗号间隔区分)

                 123@test.com    OK

启用组策略:

    在testall_recipient文件中添加以下内容:

格式:    邮箱组全名    策略组名        

test_all@test.com    testall_only

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/maps/local_sender,

 check_recipient_access hash:/etc/postfix/maps/local_recipient,

 permit_mynetworks,

 permit_sasl_authenticated,

 reject_sender_login_mismatch,

 reject_authenticated_sender_login_mismatch

 reject_non_fqdn_sender,

 reject_non_fqdn_recipient,

 reject_unauth_destination,

 reject_unknown_sender_domain,

 reject_invalid_hostname

    

    #设置用户无外发权限,只允许发公司内部邮箱

            在local_sender文件中。添加以下内容:

            格式:    用户账号     策略组名

                          123@test.com    local_only


    

    #设置用户无外收权限,只允许收公司内部邮箱

            在local_recipient文件中。添加以下内容:

            格式:    用户账号     策略组名

                          123@test.com    local_only




#####################################################################

masquerade_domains = $mydomain

masquerade_exceptions = root

hash_queue_depth = 2

double_bounce_sender = postmaster

ipc_timeout = 360s

hash_queue_names = deferred,  defer

maximal_queue_lifetime = 500s

bounce_queue_lifetime = 500s

mynetworks_style = subnet

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks = 

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

empty_address_recipient = postmaster

show_user_unknown_table_name = no


本文出自 “逆水行舟,不进则退” 博客,请务必保留此出处http://wangkj.blog.51cto.com/10292166/1955151

postfix邮箱搭建之策略限制(笔记-2.20170809)