軟體環境:redhat6.2 Qmail1.3
硬體環境:HP Netserver E60 128M記憶體 單網卡
1.什麼是mail relay及為何要防止被濫用?
設定好一個Qmail伺服器以後,該伺服器將具有一個或若干個網域名稱(這些網域名稱應該出現在local或viritualdomains檔案內),這時Qmail-smtpd將監聽25號連接埠,等待遠端發送郵件的請求。網路上其他的mail伺服器或者請求發送郵件的MUA(Mail User Agent,如outlook express、foxmail等等)會串連Qmail伺服器的25號連接埠,請求發送郵件,SMTP會話過程一般是從遠程標識自己的身份開始,過程如下:
HELO remote.system.domainname
250 Qmailserver.domain
MAIL FROM:user@somewherer.net
250 OK
RCPT TO: user1@elsewhere.net
郵件的接收者user1@elsewhere.net中的網域名稱並不一定是本地區名,這時候本地系統可能有兩種回答。第一種情況下,本地Qmail伺服器是允許relay的,它接收並同意傳遞一個目的地址不是本地的郵件;而第二種情況則不接收非本地郵件。
Qmail有一個名為rcpthosts(該檔案名稱源於RCPT TO命令)的設定檔,其決定了是否接受一個郵件。只有當一個RCPT TO命令中的接收者地址的網域名稱存在於rcpthosts檔案中時,才接受該郵件,否則就拒絕該郵件。若該檔案不存在,則所有的郵件將被接受。當一個郵件伺服器不管郵件接收者和郵件接收者是誰,而是對所有郵件進行轉寄(relay),則該郵件伺服器就被稱為開放轉寄(open relay)的。當Qmail伺服器沒有rcpthosts時,其是開放轉寄的。
如果系統管理員將自己的郵件伺服器設定為open relay,將會導致一些濫發垃圾郵件者將你的郵件伺服器作為轉寄自圾郵件的中繼站,這將使垃圾郵件的接收者將矛頭對準你,可能會導致報複性的郵件炸彈;垃圾郵件還能消耗你大量的資源,佔用你的頻寬。更為糟糕的事情可能是你的名字可能會上了黑名單,成為其他郵件接收者共同抵制的目標,你的郵件將被這些接收者所拒絕。