宋崟川、中科大張煥杰、華南理工黃建波、上交大章思宇、difan@google.com均對本文有貢獻(xiàn)。
郵件有Web界面、POP3、SMTP、IMAP等多個(gè)服務(wù),很多學(xué)校是部署在一個(gè)服務(wù)器上的,所以就會(huì)給人一個(gè)誤解,一個(gè)Mail服務(wù)器就應(yīng)當(dāng)有這么多服務(wù),其實(shí)這些服務(wù)都是可以分開部署的,而且分開部署后邏輯更清晰,比如Web流量就可以很簡單去過反向代理,也可以根據(jù)訪問量調(diào)整服務(wù)器數(shù)量。
就好像DNS,原先我們也是只有一臺(tái),上面做權(quán)威和緩存,后來出來了DNS反射攻擊,于是剝離了權(quán)威和緩存,2臺(tái)權(quán)威面對全世界
,多臺(tái)緩存只限制校內(nèi)才能連接。有些高校更嚴(yán)格,緩存再分為緩存和遞歸,緩存只接收遞歸的結(jié)果,由遞歸服務(wù)器對外查詢。確實(shí)我們學(xué)校以前也發(fā)生過一件事情,就是外網(wǎng)斷了,緩存+遞歸服務(wù)器對外查詢超時(shí)導(dǎo)致等待一千的連接限制用完,無法對校內(nèi)進(jìn)行解析,如果這時(shí)候再分緩存和遞歸再加張煥杰的校內(nèi)根域名服務(wù)器鏡像還是有可能讓用戶訪問到變成局域網(wǎng)的校內(nèi)的域名。
所以類比來說,HTTP、POP3、SMTP、IMAP是郵件服務(wù)器對服務(wù)器內(nèi)擁有賬戶的用戶提供的服務(wù)。具體來說,這些服務(wù)是面對校內(nèi)老師學(xué)生的。還有內(nèi)部的管理WebUI、API等如果有可能也監(jiān)聽不同的IP或端口。
而對互聯(lián)網(wǎng)來說,發(fā)信和收信都是基于SMTP協(xié)議,他們只想知道2個(gè)事情:
域的MX記錄是什么,這個(gè)決定了別人要投遞給你是投遞到哪個(gè)服務(wù)器IP。
你對外發(fā)送的IP是什么,這個(gè)決定了對方要接收你的郵件要來檢查FCrDNS判斷是否垃圾郵件。
所以以上幾個(gè)都可以剝離出來不同的IP地址、域名、端口來監(jiān)聽。舉個(gè)例子,基于域名:
mail.xmu.edu.cn,對內(nèi)服務(wù),提供HTTP
pop3,smtp,imap.xmu.edu.cn,對內(nèi)服務(wù),提供POP3、SMTP、IMAP。
mx.xmu.edu.cn,對互聯(lián)網(wǎng)服務(wù),接收郵件,提供SMTP。
對外發(fā)送郵件IP,使用SMTP協(xié)議。對外發(fā)送還可以走relay服務(wù)器,買海外轉(zhuǎn)發(fā)服務(wù)等。
根域的DNS配置
對于形如example@xmu.edu.cn的郵件地址來說,宣告接收郵件的服務(wù)器的IP地址設(shè)置在xmu.edu.cn的MX DNS RR上。
xmu.edu.cn的A記錄為了SEO,一般是建議跟www.xmu.edu.cn一致,并做301跳轉(zhuǎn)。原先我們?yōu)榱擞脩舴奖阒苯又赶蜞]件的A記錄,但是后來一般瀏覽器會(huì)自動(dòng)前面給你加www,然而為了用戶習(xí)慣一直不敢變更直到最近。
SPF記錄。SPF如果要寫得完美一點(diǎn),可以考慮下面場景:如果你老師和學(xué)生用不同的域,比如xmu.edu.cn和stu.xmu.edu.cn,則這2個(gè)域的SPF都include spf.xmu.edu.cn(類似引用一個(gè)變量),在spf.xmu.edu.cn里面才真正允許發(fā)信服務(wù)器的A/AAAA記錄。所以bind9寫法就是
@ TXT 'v=spf1 include:spf.xmu.edu.cn -all'
stu TXT 'v=spf1 include:spf.xmu.edu.cn -all'
spf TXT 'v=spf1 ip4:1.2.3.4/32 ip6:2001:da8::1/128 -all'
寫完可以在 https://www.kitterman.com/spf/validate.html 這里檢測下。
PTR的DNS配置
SPF是為了解決SMTP發(fā)信人偽造問題,而FCrDNS是為了解決你確實(shí)對這個(gè)IP和他宣稱的域名對應(yīng)關(guān)系有控制權(quán)。
https://en.wikipedia.org/wiki/Forward-confirmed_reverse_DNS
所以發(fā)信服務(wù)器的IP地址一定必須設(shè)置反向解析。PTR指向什么域名無所謂,配置類似:
4 PTR mta.xmu.edu.cn.
IPv6的RBL(Real-time Blackhole List)列表是否已經(jīng)建立完善了不確定。郵件加IPv6支持是否有其他副作用不確定。
高校如何申請IPv6的PTR解析
PTR一般只用在郵件的反向查詢和traceroute里。為了讓郵件系統(tǒng)完全支持IPv6,你需要申請到PTR解析的權(quán)限,準(zhǔn)備2臺(tái)有IPv6的權(quán)威DNS服務(wù)器,在
“http://www.nic.edu.cn/RS/templates/cindex.html” “IP6.ARPA 注 冊 表 格” 里申請,里面的netname可以在站內(nèi)的whois查詢到。
SSL
相對于HTTP 80端口301到HTTPS 443端口的協(xié)議升級(jí),SMTP等沒有這樣子的機(jī)制,你在給郵件啟用TLS后可以:
廣而告之,建議大家使用TLS加密,最安全。定期根據(jù)25端口訪問日志郵件推送對方建議使用TLS。
自動(dòng)配置,新配置用戶默認(rèn)起SSL。不是所有客戶端MUA都支持。
機(jī)會(huì)性加密,在SMTP 25端口直接協(xié)議升級(jí)到TLS,https://starttls-everywhere.org/。機(jī)會(huì)性加密可以預(yù)防被動(dòng)監(jiān)聽,無法預(yù)防MITM。
端到端加密
使用TLS解決不了端到端加密問題,郵件PGP一直沒有流行起來,如果類似iMessage那樣子端到端加密,你就喪失了服務(wù)端給你提供過濾垃圾郵件的功能。當(dāng)然,任何不開源的端到端加密方案討論都是沒有意義的,最近很火的初始化打開VIVO NEX攝像頭的Tg就是開源的端到端加密IM。
自動(dòng)配置
郵件客戶端在用戶配置新賬戶時(shí)有自動(dòng)發(fā)現(xiàn)功能,比如 https://web./web/20150817115525/http://moens.ch:80/2012/05/31/providing-email-client-autoconfiguration-information/ 這篇文章提到的Thunderbird、Outlook、Apple Mail等的自動(dòng)配置機(jī)制。Outlook更詳細(xì)的發(fā)現(xiàn)流程如下 https://support.microsoft.com/en-us/help/3211279/outlook-2016-implementation-of-autodiscover ??梢酝ㄟ^配置autodiscover自動(dòng)宣告SMTP和POP3域名,還可以自動(dòng)配置SSL,當(dāng)然如果沒有自動(dòng)發(fā)現(xiàn),你的域名是標(biāo)準(zhǔn)的pop3,smtp,imap一般客戶端也都可以正確猜出來。
聯(lián)系客服