電子郵件堪稱資訊時代最具威力的應用,也許不是每個人都有個人網站,但不論是免費或付費,人人都會有電子信箱位址。而隨著人手一個電子郵件信箱的普及,相關的資安問題也隨之而來,其中最令網管人員頭痛的是電子郵件夾帶電腦病毒的問題。
在企業中常因為員工誤點電子郵件所夾帶電腦病毒檔,而造成資安問題的案例層出不窮,如前些年造成大災難的梅莉莎(Melissa)病毒,就讓網管人員疲於奔命頭痛不已,因此一個支援病毒過濾的郵件伺服器將是每個網管人員迫切需要的。
本文將利用開源碼社群中著名的郵件伺服器Postfix與掃描病毒核心ClamAV來實作一個具有過濾電腦病毒的郵件伺服器,實作所需的套件如下表所示:
郵件伺服器簡介
在說明郵件伺服器如何安裝及運作前,先說明下列相關名詞,讓大家有所了解。
相關名詞
這裡將說明何謂MTA、MUA、MDA。
郵件傳送代理人(Mail Transfer Agent,MTA)即一般俗稱的SMTP伺服器或郵件伺服器,其主要的功能如下:
1. 接受外部主機寄來的電子郵件,並將電子郵件於置於收件者的個人電子郵件信箱中,以供收件者取回電子郵件。
2. 寄信功能,將使用者電子郵件投遞至遠地郵件伺服器的使用者電子郵件信箱中。
3. 郵件轉發(Relay)功能。
當郵件伺服器發現電子郵件不屬於本機的使用者後,就會將電子郵件轉投遞到下一個郵件伺服器。但由於SMTP通訊協定並未定義認證功能,所以一旦所設定的郵件伺服器未經過適當地調整,將導致任何人都可利用自己的郵件轉發功能,將電子郵件轉發到其他的郵件伺服器。此種郵件伺服器即稱為「Open Relay」,基本上,這類型的郵件伺服器通常是垃圾信發送者(Spammer)的最愛,因為只要能連接到別人的郵件伺服器,即能利用來寄發垃圾郵件,也因此設定成Open Relay的郵件伺服器常會被當成垃圾郵件發送站而被封鎖。
在網路上有相當多的資安組織在收集一些所謂的RBL(Real Block List)名單,也就是收集此類發送垃圾信的郵件伺服器,一旦個人企業的郵件伺服器被列入RBL名單,將會對企業造成極大的困擾,因為所發出的電子郵件會被過濾軟體過濾掉。在此提供兩個網址供讀者檢查自身的郵件伺服器是否有適當的設定,以及是否已被列入垃圾信發送的黑名單。
(檢查郵件伺服器是否為Open Relay的郵件伺服器)
(檢查郵件伺服器是否被列入發送垃圾信的黑名單)
通常郵件伺服器會利用「限定可轉發的網域」和「以帳號/密碼來認證」兩種方式來控管電子郵件的寄發:
設定那些網域可利用郵件伺服器來寄發郵件,例如僅允許公司內部網域的電腦可利用郵件伺服器來寄信,但此種方式有些缺點,當公司員工如果出差到外地去,就無法使用公司的郵件伺服器(因為在不同的網域),所以後來又發展出認證機制,來解決此類的問題。不限定網域但是必須利用帳號及密碼認證登入之後,才可以使用郵件伺服器的功能。
利用如SASL(Simple Authentication and Security Layer)程式庫為郵件伺服器加上認證功能。使用者欲使用郵件伺服器,須先經過帳號/密碼的認證,方可使用。如此一來,不管使用者身處何地,只要通過帳號/密碼檢查,即可使用郵件伺服器的功能。SASL的官方網址為「http://asg.web.cmu.edu/sasl/」,這裡就不多談如何讓Postfix支援SASL,請讀者自行研究。
郵件使用者代理人(Mail user Agent,MUA),好比現實生活中的紙與筆,在電腦上即是使用所謂MUA軟體,如Outlook Express等軟體來撰寫及瀏覽電子郵件。
當郵件伺服器接到屬於本機使用者的郵件後,即使用MDA(Mail Delivery Agent)將郵件置於該使用者的郵件信箱中。也因MDA有此特性,所以常被用來過濾垃圾郵件及自動回信。
過濾垃圾郵件,指的是當MDA取得郵件後,可針對郵件的主旨及來源進行過濾,一旦條件成立,即在郵件主旨上加上[SPAM]等字樣或直接刪除。最常見的過濾解決方案是利用procmail軟體來當MDA。而自動回信,代表收到郵件時可自動回覆確認訊息給來源位址。
(更多精彩文章詳見網管人第59期﹚