2017年4月2日 星期日

Mail (郵件)伺服器


轉貼

Email 它是一個"系統", 不只是單純的伺服器. 它有困難度, 對於新手來說, 是不知道架設一個 email 系統要小心的點在那邊. 現在釐清一下要注意的地方

SMTP port 25, 是 server to server 的部分, 這邊最好的防護就是使用 RBL 擋住 spam email server 的 IP (SpamAssassin + TCPServer/IPtable)
Submission Port 587, 這邊是 email client to server 寄信, 需要使用 TLS 作為 smtp-auth 認證的加密, 這邊就需要建立自己的 PKI Cert 來做 TLS 加密了. 再來防止 brute force 攻擊, 就要搭配 Fail2ban. 需要 white list 自己 router ip 以及其它分公司的 ip 避免鎖到自己。
如果有 webmail 的部分, 那麼要建立 HTTPS 的 secure certificate. 如果使用 IMAPS, 也可以使用同一個 certificate.
避免自己的 email 淪為 RBL 上面的黑名單, 需要建立 DKIM 放到 DNS 的 record 中. 如果能夠 reverse ip 如 1.1.1.1 -> mail.mydomain.com 會很好, 比較容易進白名單, 如果沒有的話要隨時 monitor RBL 是否有自己的 mail server domain/ip.
盡量不要使用 .hk .tw .cn .jp 的 domain, 因為有些 spam filter, 或是一些 custom RBL, 會直接封掉這些 tld. 盡量把 DNS 的服務放在 Domain Registrar 那邊, 不過如果使用非常多 subdomian 的話, 再考慮把 dns 服務拿回自己建立, 因為很多 domain registrar 會限制使用者最多可以有幾個 dns record.
SMTP/Submission 收到的 email, 直接先 pipe 給 clamav 後, 確認沒有病毒才放到 maildir 或是寄出. 每一個小時自動更新 clamav 的 database.
Webmail 的 template 最好買有服務的 source code, 會定期更新, 使用因為有太多時候有 webmail 被 hack 透過 sql-injection 而控制了整個 mail server.
盡量使用 IMAPS, 方便集中備份, storage 的檔案系統最好是支援壓縮, 以及快照. 這樣子可以追溯歷史記錄, 避免離職員工或是將要離職員工刪除 email.
所有的 mail server 都會使用到 database, 不管是 mysql 或是 mariadb, 要設定好其固定定期備份模式, 同時建立好 password policy, 八碼 含大小寫+數字+特殊符號.
防止內部 IT 人員閱讀公司高階主管的 email 或是被外部人員釣魚假裝高階主管的 email 指令, 建議使用 RSA 2048 bit 的 S.MIME (X509) PKI 模式加密以及簽署 email.
開 watchdog 確認 email 收發服務正常, 若有問題時, 第一時間 script 自動重開服務.
log reporting (graylog) 定期檢查伺服器是否有被入侵的跡象.
使用 Filelink 模式傳送大的檔案附件 (需搭配 email client). 這部分有所謂的 DL 服務, 也可以自己架設 WebDAV 來做.
使用 Open-Xchange 或是 Zimbra Email 這一類型的 email server, 它可以分成很多個 component, 如 message storage node, database node, smtp node 或是 mail proxy node 等模式, 把 email 服務的 loading 分散到各分公司的小 mail 的伺服器上, 避免單點網路頻寬飽和, 造成每天早上剛上班時, email 大塞車 (特別是禮拜一早上或是長假過後)

DKIM 可以減少你的 email server 被當成 spam email server, 所以要搭配 DNS 做好.
DNS 反向解析 (PTR Record) 請務必跟您的ISP連絡,確認能幫忙建立。
EX: 中華電信IP反解申請服務
若是一般有規模的公司,一定會有 Anti-Spam 的設備. 這類設備基本上一定會先進行 DNS MX 查詢,來確認發信端的 SMTP server 的 FQDN 有那幾台,個別 IP Address 為何,之後再以 I 反解來查詢上述 SMTP 的 IP 是否與正向解析 (A Record) 查到的一致. 若是您的 Mail server 並未建立 PTR record 的話,通常這封信會被扣上不少分數,甚至直接當 SPAM 處理掉.
DNS 上建立 SPF (Sender Policy Framework) txt record,來宣告您的 Domain 中對於 email server的一些政策. 有 SPF 格式的 TXT Record,在 Anti-Spam 的機制中會有所加分,相對不容易被擋成 SPAM 擋掉. 若是不曉得 SPF 要輸入什麼的話,可以到以下網頁透過 Wizard 來建立適當的 SPF record. SPF Wizard IMAPS 的好處是
集中管理以及備份郵件.
有所謂的 Share Folder 的概念, 參考 2 , 其實很多 email 未來不需要 CC 給其它人, 而是把需要分享的 email 丟到不同群組的 share folder.

準備離職員工無法刪除過去重要郵件 (如果你有做差異備份)
作為所有 email 的儲存碟或是 pool, 開啟 Compression. 你會看到 3TB 的 email storage 被壓縮到 1.X TB 多. 因為 email 主要是 txt 壓縮比非常高. 有 S牌的網友說 btrfs 安裝些套件後, 是可以開啟 compression 的. 參考 1
目前越來越多 BYOD. 使用者希望可以在手機/平板/筆電/甚至公用電腦上, 可以看到所有過去的 email, 如果使用 pop3 那麼就做不到了.
不會有 pst 損毀那麼所有信件, 造成全部 email 遺失
頻寬可以更好控管, imaps client 都可以設定多少 kb 以上的 email 只抓 header. 然後抓取過去 3~6個月的 email 同步在設備上. 這種模式可以避免每天早上一上班時, 每個人的 email 都在抓取, 造成網路塞車, 人人都看不到 email 的問題. (這部分就算是開 QoS 也無用, 只是拖累大家更慢抓取 email 的速度)

如果有多個 NAS/儲存系統的話, 可以建立所謂的 cold storage. Email 透過篩選的模式, 可以把兩年舊的 email 放到 cold storage 上, 並且設定成為"唯讀"模式


補充兩個MAIL SERVER的外部測試方式:

1. MX Lookup Tool http://mxtoolbox.com/
可以檢查 MX 伺服器的問題, 包括DNS、Blacklist 等等問題
2. Port Forwarding tester http://www.yougetsignal.com/tools/o⋯⋯
測試服務埠是否開通