作者 主題: postfix可以限制某個郵件帳號只能讓管理者帳號寄嗎?  (閱讀 17265 次)

0 會員 與 1 訪客 正在閱讀本文。

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
linux的伙伴:
小弟遇到一個疑惑的問題
假如我的郵件系統上有一個叫teacher@mydomain.edu
是所有老師的帳號
我只想讓我管理者的帳號可以寄
別人都不能寄
這該怎麼做呢?
mail server 是用postfix
找不到相關資料... :oops:

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
引述: "jochang6"
linux的伙伴:
小弟遇到一個疑惑的問題
假如我的郵件系統上有一個叫teacher@mydomain.edu
是所有老師的帳號
我只想讓我管理者的帳號可以寄
別人都不能寄
這該怎麼做呢?
mail server 是用postfix
找不到相關資料... :oops:


http://www.postfix.org/RESTRICTION_CLASS_README.html

==
I am kenduest - 小州

my website: http://kenduest.sayya.org/

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
感謝提供的資料
小弟研究一下
 :)

jochang6

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
弟實做了此部分

Protecting internal email distribution lists
We want to implement an internal email distribution list. Something like all@our.domain.com, which aliases to all employees. My first thought was to use the aliases map, but that would lead to "all" being accessible from the "outside", and this is not desired... :-)

Postfix can implement per-address access controls. What follows is based on the SMTP client IP address, and therefore is subject to IP spoofing.

/etc/postfix/main.cf:
    smtpd_recipient_restrictions =
        check_recipient_access hash:/etc/postfix/access
        ...the usual stuff...

/etc/postfix/access:
    all@my.domain   permit_mynetworks,reject
    all@my.hostname permit_mynetworks,reject
Specify dbm instead of hash if your system uses dbm files instead of db files. To find out what map types Postfix supports, use the command postconf -m.

Now, that would be sufficient when your machine receives all Internet mail directly from the Internet. That's unlikely if your network is a bit larger than an office. For example, your backup MX hosts would "launder" the client IP address of mail from the outside so it would appear to come from a trusted machine.

In the general case you need two lookup tables: one table that lists destinations that need to be protected, and one table that lists domains that are allowed to send to the protected destinations.

What follows is based on the sender SMTP envelope address, and therefore is subject to SMTP sender spoofing.

/etc/postfix/main.cf:
    smtpd_recipient_restrictions =
        check_recipient_access hash:/etc/postfix/protected_destinations
        ...the usual stuff...

    smtpd_restriction_classes = insiders_only
    insiders_only = check_sender_access hash:/etc/postfix/insiders, reject

/etc/postfix/protected_destinations:
    all@my.domain   insiders_only
    all@my.hostname insiders_only

/etc/postfix/insiders:  
    my.domain       OK  matches my.domain and subdomains
    another.domain  OK  matches another.domain and

subdomains
Getting past this scheme is relatively easy, because all one has to do is to spoof the SMTP sender address.

If the internal list is a low-volume one, perhaps it makes more sense to make it moderated.

看說明像是說:可限制哪些domain可以使用protected_destinations
但又看了insiders_only = check_sender_access hash:/etc/postfix/insiders, reject中
check_sender_access 的說明;其中有這樣的用法
/etc/postfix/access:
           1.2.3   REJECT
           1.2.3.4 OK

所以我將我的改為

@mail1.xxx.edu.tw      REJECT
@mail2.xxx.edu.tw      REJECT
jackson@mail2.xxx.edu.tw        OK  matches my.domain and subdomains

jackson@mail2.xxx.edu.tw是我的管理帳號
我希望這兩台機器的帳號只有我的帳號可以對protected_destinations發信
將相關的設定加入main.cf
執行postconf確認設定檔OK
兩個table檔編輯好,用postmap轉成db2檔
重新啟動postfix
然後寄信試試看,依然都可以寄到
試不出來.... :-?
這兩個table檔的內容格式這樣有誤嗎?
有辦法檢查table是否正確嗎?
不知哪位伙伴對此有經驗

quasar

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
看起來很難搞, 但這個需求也蠻實際的的, 我有一個另類想法, 你把 teacher@mydomain.edu 改成一長串很難記的email 例如: asdwelqldsahfhdfahdfa@mydomain.edu 以後要寄信給所有老師就把這串 email 填在 bcc(不小心洩漏出去就再換一個, 或用 procmail 把一下關), Orz

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
改用 mail list 軟體來做如何?
如 majodomo, mailman 之纇的...

totolung

  • 活潑的大學生
  • ***
  • 文章數: 370
    • 檢視個人資料
引述: "jochang6"
弟實做了此部分


看說明像是說:可限制哪些domain可以使用protected_destinations
但又看了insiders_only = check_sender_access hash:/etc/postfix/insiders, reject中
check_sender_access 的說明;其中有這樣的用法
/etc/postfix/access:
           1.2.3   REJECT
           1.2.3.4 OK

所以我將我的改為

@mail1.xxx.edu.tw      REJECT
@mail2.xxx.edu.tw      REJECT
jackson@mail2.xxx.edu.tw        OK  matches my.domain and subdomains

jackson@mail2.xxx.edu.tw是我的管理帳號
我希望這兩台機器的帳號只有我的帳號可以對protected_destinations發信
將相關的設定加入main.cf
執行postconf確認設定檔OK
兩個table檔編輯好,用postmap轉成db2檔
重新啟動postfix
然後寄信試試看,依然都可以寄到
試不出來.... :-?
這兩個table檔的內容格式這樣有誤嗎?
有辦法檢查table是否正確嗎?
不知哪位伙伴對此有經驗


剛好我也有這個需求,所以研究了一下。

代碼: [選擇]
vi /etc/postfix/protected_destinations
加入 你想要只能讓特定人士 寄的 mail address
ex:

代碼: [選擇]
teacher@mydomain.edu   insiders_only

然後 在 /etc/postfix/insiders

加入

代碼: [選擇]
user1@mydomain.edu   OK
user2@mydomain.edu  OK



在修改 /etc/postfix/main.cf
加入

代碼: [選擇]
smtpd_recipient_restrictions =  permit_mynetworks,
                                check_recipient_access hash:/etc/postfix/protected_destinations


代碼: [選擇]
smtpd_restriction_classes = insiders_only
insiders_only = check_sender_access hash:/etc/postfix/insiders, reject


這樣 就只有 user1 和 user2 能寄信到 teacher@mydomain.edu 這個帳號

rest1

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
   請問一下 按照先進的方法 測試之後,
發現 屬於同一個網域的所有使用者,還是可以針對這個帳號
進行發信的動作。是否有其他解決之道