iT邦幫忙

0

postfix要怎麼限制部份使用者寄到外部的信箱?(只成功一半)

  • 分享至 

  • xImage

因為我是用webmin去做設定
不過也大同小異
可是我測試的結果只成功一半
目前我可以設定公司寄出去的郵件哪一些可以寄哪一些不能寄
但是我沒辦法去選擇部份使用者來實現這個功能。

在收件人位址的限制smtpd_recipient_restrictions增加一段
check_recipient_access hash:/etc/postfix/local_domains,permit
local_domains裡面都是限制的網域,例如
yahoo.com.tw reject
hotmail.com reject
這樣的話只要寄到yahoo和hotmail的信箱通通都擋掉了

可是
這樣是全公司的人寄到這兩個地方就擋掉
如果說我要去設定有部份使用者才會擋掉
要怎麼設定???

webmin裡面有一個叫做遞送者位址的限制smtpd_sender_restrictions
不曉得是不是利用這個來設定
可是我用了check_sender_access hash:/etc/postfix/restricted_senders這個方法
都會失敗...
我有到酷學園找答案,但是測試都失敗,而且他們用的方法好像跟我的不太一樣

有沒有這方面的高手可以解惑一下
感謝

看更多先前的討論...收起先前的討論...
假設可以這樣設定成功的話,有沒有辦法防止使用者改變自己的 From: ,這樣子任何人,如果知道 老闆的信箱 沒有限制寄出去的話,把自己的信改成 From: boss@company.com 是不是一樣就可以寄出呢?

以 sender 來做限制,可能效果有限,因 sender 隨時可以改。
酷學園的討論是指:用postfix阻擋偽造寄件人的信件? 這篇嗎?
smtpd_sender_restrictions 這個設定,
看起來是針對 外部信寄到內部信 防止假冒、防止垃圾信的相關設定;
而內部要寄出的,並非垃圾信處理的議題,所以這參數可能不適用您的需求。
tomcloud iT邦新手 5 級 ‧ 2009-08-06 15:53:02 檢舉
這個無所謂...
我只是需要做一個這樣的功能即可
拿來驗收用的
tomcloud iT邦新手 5 級 ‧ 2009-08-06 16:13:27 檢舉
其實使用者會不會自行改變From這倒是無所謂
現在做這個的目的只是針對每個月的客戶驗收而已
讓他們知道我們處理的方式
只是...
現在就卡在沒辦法針對部分的人來做而已...
MIMEDefang 是蠻容易做得到,因為可以清楚地定義 sender 符合怎樣的字串,再檢查收件者是否有符合什麼定義,然後做什麼動作。
只是 MIMEDefang 這個 mailter 在 sendmail 跑是容易的。
而 Postfix 號稱可以跑 sendmail 的 milter,只是網路上好像看不到 Postfix + MIMEDefang 的實例。
相對於 MIMEDefang ,Postfix 的前端過濾機制,好像較多用 MailScanner吧?
不曉得 MailScanner 是否可以容易寫出同樣的過濾條件呢?

如果只是為驗收過關的話,Sendmail + MIMEDefang 可很快就做到所期望的。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

10
wonton
iT邦高手 6 級 ‧ 2009-08-07 16:39:58
最佳解答

可以透過 smtpd_restriction_classes 來實現

  1. 將想受限制的使用者清單指定一個 smtpd_restriction_classes
    vi reject_users

    <pre class="c" name="code">user1@mydomain.com reject_class
    user2@mydomain.com reject_class

postmap hash:/etc/postfix/reject_users

  1. 將想受限制的 domain 清單也作一個 map
    vi reject_domains
    <pre class="c" name="code">domain1.com reject
    domain2.com reject

postmap hash:/etc/postfix/reject_domains

  1. 設定 postfix
    vi main.cf
    <pre class="c" name="code"># 宣告 smtpd_restriction_classes
    smtpd_restriction_classes = reject_class

    說明這個 class 的檢查規則

    reject_class = check_recipient_access hash:/etc/postfix/reject_domain

    現在要改用 check_sender_access 來檢查使用者了

    smtpd_recipient_restrictions =
    check_sender_access hash:/etc/postfix/reject_user,
    permit_mynetworks,
    .....................

  2. 重啟 postfix, 測試

tomcloud iT邦新手 5 級 ‧ 2009-08-07 17:39:36 檢舉

可是
現在有個問題就是smtpd_restriction_classes
我加上這個會讓postfix掛掉
不曉得為什麼會這樣...

wonton iT邦高手 6 級 ‧ 2009-08-08 17:38:54 檢舉

postfix 掛掉? 查查 log 吧

我要發表回答

立即登入回答