iT邦幫忙

0

Postfix之問題一二三

  • 分享至 

  • xImage
  1. 本公司主mail Server利用Postfix架設,目前公司Mail都未儲存於Mail Server上,意即Server只是暫存而已,但因公司目前改變政策,要額外備份每一份Mail,那我該如何估計未來使用量??
    我的想法:看Postfix中/usr之使用量,預估每個月會使用多少,在乘上要保留的時間期限。
    例如:我/usr使用量為26G,預計保留兩年,故初估26*24= 624G 之空間。
    請問是否有更好的建議呢?

  2. 我如何設定PostFix讓每個使用者寄出之信件都有備份一份到server內??可否有實例幫忙或提供參考文獻嗎?

  3. 不考慮增添其他第三方Mail 設備。所以,請不用給予之建議是添購第三方之產品。

看更多先前的討論...收起先前的討論...
幾個環境需求要確認:
備份來信部份:
1.是否已有任何過濾垃圾信件機制?沒有的話,到時都在備垃圾信。
2.所備好的信,是否只有管理者可存取?還是有預計怎麼叫用?
3.備份信與原 Mail 主機是不同台?還是同一台?若同一台,失去備份的意義。
4.Mail Server 是什麼作業系統?
5.使用者存取信件是用 POP3/IMAP/Webmail?

備份外寄信部份:
同上述的 2. 的問題
yking7065 iT邦新手 2 級 ‧ 2009-08-04 16:01:38 檢舉
1. 有過濾機制,不過或多或少一定會有垃圾信。
2. 感謝提醒。這部份會再與主管討論。
3. 這部份就是要估計容量大小後,才能決定要怎麼規劃。
4. FreeBSD Based.
5. POP3 and Webmail。
陸續探討可能的狀況。

先針對 要備份 寄出信件 的部份。
如果單純只是要備份 給各 User 的信件,設定是很單純,
只要管 收信者 是本機用戶就利用 bcc 相關機制可解決。

然而,加上 寄出信件 的備份,
就目前只有單一台 Mail 可能的問題:
單位中設的外寄郵件伺服器(SMTP)、
接受外面寄來的信的 Mail Server (POP3)都是同一台,
如果用 always_bcc 或 recipient_bcc_maps,規則要怎麼設?

要單純用 sender 為規則,當作備 「外寄郵件」的話,
一定會混到 外面 有意無意假冒某帳號的信件。

所以要做到 外寄備份、進來的信備份,
理想的是要把 單位用的 外寄郵件伺服器(SMTP) 獨立出來,
這樣在 SMTP 才可以專門以 sender、或以日期 分門別類地存起來,
而不會對 無限多種的 recipient 來設儲存規則;
也不會有存到外來寄到內部的信件,而不會與 POP3 的重覆。
而 POP3 就單純地設定轉存 給本機用戶的信件。

所以要問清楚的是:
希望所存的 寄出信件,是要與 User 收到的信,清楚地分開?
還是混在一起無所謂?
如果是前者的話,可考慮多建一個 獨立專門供 單位用的 SMTP Server,
而這獨立的 SMTP,可以只allow公司內部連結、給webmail作為寄信的SMTP,
不然就是有提供帳號密碼才可寄信的機制,
這樣在這台所備份的,就一定是同仁所寄出的信件。

這獨立的 SMTP Server,不用太好的機器就勝任,
因只負責單位使用者的寄信功能,
而不會處理外面寄來的信。
先討論一下 Mail 備份的可能遇到的問題,後續再提出解決方案:
1.備份在Mail Server同一台機器 vs 備份在另一台機器萬一 Mail Server 掛了,雞蛋全在同一籃子上,過去的備份都白做了。
2.定期備份 Spool vs 複製或轉寄到第二所在 Spool 在一直是增減狀態下,永遠無法備完全。而備份的目標,是不能覆蓋過去。也不會希望同一封信,重覆出現在不同備份日期的檔案中。
3.單獨MTA vs 再加上MDA 做轉寄備份的比較
A.MTA 的方案:
a.若用MTA來做 *_bcc_* 的動作:
若只是針對某一或少數帳號,在 map 檔案中一個一個寫要轉到哪裡;若幾百千個所有帳號,不曉得有沒有類似像 sendmail 裡 virtusertable 的語法 @yourdomain.com %1@othercompany.com 用變數來自動替換?類似像 $USER $USER@backup.server 就可一勞永逸;不然就得用 script 來產生一個大的 map 檔案。
如果 是備份在另外一台機器的話,在原來的 Mail 主機上用 Postfix 的 *_bcc_* 的設定是非常方便。但若要把所有帳號都 bcc 到本身同一台機器,每個帳號要 bcc 到哪個目標才適合呢?
b.長期用MTA上的 bcc 轉寄同一目標的問題,到時該目標的檔案會累積大到不易處理。
B.MDA (procmail) 的方案:
a.如果單一Server備份,透過 procmail 可以有較大的彈性。例如:一般信存到 /var/mail/usera 而備份信件可按 User 及月份存到類似像 /backu /usera.200908 的檔案結構,這樣備份不會把一個檔案撐到爆。
b.若有獨立的備份Mail Server,在原POP3上,不管用 *_bcc_* 或.forward或procmail都可以,轉一份到 usera@backup 而在 backup 上面,也透過 procmail 來按月存信件夾,這樣也能避開檔案累積過大的問題。
3.存取備份的方式:
不管單一或有獨立的backup都適用:
a.只有管理者的webmail可讀取所有檔案。
b.需要的時候才由管理者複製所需的檔案到可存取的位置。
如果做法太麻煩,或覺得維護、心力、時間成本太大的話,
也許用 Openfind 管家郵 的解決方案,是最佳而省力的方法,
而可以有其他的心力進行其他的議題;
雖然說,不考慮第三方設備,
但不妨看看其方案、或請廠商介紹、詢價,
看看在所需的心力、成本及效用上怎樣較合算。
yking7065 iT邦新手 2 級 ‧ 2009-08-05 13:01:02 檢舉
感謝twtw大大
非常詳盡的告知,
獲益甚多。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

22
wonton
iT邦高手 6 級 ‧ 2009-08-04 13:41:47
最佳解答

請問是使用 imap 還 pop3?

pop3 的話,就定期備份 mail spool 就好,除非 client 有設定在 server 保留副本,不然信收走了 mailbox 不會一直成長。

imap 的話就要考量到每個 user 的 quota 問題。

至於 postfix 怎麼備份? 在 main.cf 中可以設定 always_bcc 參數或 sender_bcc_maps (recipient_bcc_maps) 參數,你可以 google 一下就可以知道用法。

簡單來說 always_bcc 可以將所有寄進來跟寄出去的信都 bcc 一份到指定信箱,sender_bcc_maps (recipient_bcc_maps) 可以將寄出去 (寄進來) 依 map 規則指定到特定信箱。

yking7065 iT邦新手 2 級 ‧ 2009-08-04 13:54:48 檢舉

to wonton:
謝謝! 目前是使用pop3。

12
fireflybug
iT邦研究生 4 級 ‧ 2009-08-05 09:23:19

開個帳號專門收備份信

我的做法,編輯 main.cf
vi /etc/postfix/main.cf

最後一行加入:
#備份進出郵件
always_bcc = mailbak@xxx.com <==看每封信要備份到那個帳號

然後找台硬碟夠大,且24小時開機的電腦,開啟OUTLOOK EXPRESS(我用這收),每五分鐘收一次,所有進出的信都會收到這裡,已經備份了1年多,都沒問題。

隱私問題,若要這樣做,最好有公告,不然員工是可以提告的。

wonton iT邦高手 6 級 ‧ 2009-08-05 10:03:03 檢舉

或是用 windows live mail 來收, 它儲存信件的方法不是用 dbx, 是一封一封存的
但考慮到 outlook 的附檔可能 OE 或 WLM 看不到的問題, 用 outlook 收比較好, 畢竟會出事大都是機密附檔流出

我要發表回答

立即登入回答