[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 應用技術 > Qmail > 正文
SMTP安全手冊Qmail安全
本文出自:http://www.ccidnet.com/ 作者:ideal (2001-06-26 10:08:00)
  Qmail有一個名為rcpthosts(該文件名源RCPT TO命令)的配置文件,其決定了是否接受一個郵件。只有當一個RCPT TO命令中的接收者地址的域名存在rcpthosts文件中時,才接受該郵件,否則就拒絕該郵件。若該文件不存在,則所有的郵件將被接受。當一個郵件服務器不管郵件接收者和郵件接收者是誰,而是對所有郵件進行轉發(relay),則該郵件服務器就被稱為開放轉發(open relay)的。當qmail服務器沒有rcpthosts時,其是開放轉發的。 

  設置自己服務器為非open relay的最簡單的辦法就是將你的郵件服務器的所有域名(若DNS的MX記錄指向該機器,也應該包括該域名。例如你的機器有三個域名mail.linxuaid.com.cn、mail1.linuxaid.com.cn,而且linuxaid.com.cn的MX指向mail.linuxaid.com.cn,則qmail的rcphosts的應該包括mail.linuxaid.com.cn、mail1.linuxaid.com.cn和linuxaid.com.cn)。 

  但是這將導致你的本地客戶也被拒絕使用你的服務器轉發郵件,而要支持客戶使用MUA來發送郵件,必須允許客戶使用服務器轉發郵件。qmail-smtpd支持一種有選擇性的忽略rcpthosts文件的方法:若qmail-smtpd的環境變量RELAYCLIENT被設置,則rcpthost文件將被忽略,relay將被允許。但是如何識別一個郵件發送者是否是自己的客戶呢?qmail並沒有採用密碼認証的方法,而是判斷發送郵件者的源IP地址,若該IP地址屬本地網絡,則認為該發送者為自己的客戶。 

  這裡就要使用ucspi-tcp軟件包。在這裡我們要使用該軟件包的tcpserver程序。該程序的功能類似inetd-監聽進入的連接請求,為要啟動的服務設置各種環境變量,然啟動指定的服務。 

  tcpserver的配置文件是/etc/tcp.smtp,該文件定義了是否對某個網絡設置RELAYCLIENT環境變量。例如,本地網絡是地址為192.168.10.0/24的C類地址,則tcp.smtp的內容應該設置如下: 

  127.0.0.1:allow,RELAYCLIENT="" 

  192.168.10.:allow,RELAYCLIENT="" 

  :allow 

  這幾個規則的含義是指若連接來自127.0.0.1和192.168.10則允許,並且為其設置環境變量RELAYCLIENT,否則允許其他連接,但是不設置RELAYCLIENT環境變量。這樣當從其他地方到本地的25號連接將會被允許,但是由沒有被設置環境變量,所以其連接將會被qmail-smptd所拒絕。 

  但是tcopserver並不直接使用/etc/tcp.smtp文件,而是需要先將該文件轉化為cbd文件: 

  [lix@mail /etc]$ # tcprules tcp.smtp.cdb tcp.smtp.temp < tcp.smtp 

  然再回頭看在/service/qmail-smtpd目錄下的run文件中有 

  /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb 

  可以看到,tcpserver利用了/etc/smtp.cbd文件。若本地有多個網絡,則需要這些網絡都出現在/etc/tcp.smtp文件中。 

  這樣就實現了允許本地客戶relay郵件,而防止relay被濫用。 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
SMTP安全手冊Sendmail服務器安全 (2001-06-26 11:00:00)
SMTP安全手冊Qmail安全 (2001-06-26 10:08:00)
SMTP安全手冊理論基礎 (2001-06-26 09:04:00)
 

★  樊強制作 歡迎分享  ★