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,郵箱別名爲[email protected],在文件裏面添加所有人的 郵件賬號;

   完成後,在testall_sender文件中添加允許對此組有發送權限的人員,

添加格式: 用戶郵箱全稱    OK            (多人需要用逗號間隔區分)

                 [email protected]    OK

啓用組策略:

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

格式:    郵箱組全名    策略組名        

[email protected]    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文件中。添加以下內容:

            格式:    用戶賬號     策略組名

                          [email protected]    local_only


    

    #設置用戶無外收權限,只允許收公司內部郵箱

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

            格式:    用戶賬號     策略組名

                          [email protected]    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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章