Red Hat Linux 9 架站實務
書號:F494
定價:620 元
施威銘研究室 著
我要線上購買 | |
本期書摘:Sendmail Server 郵件限制的設定
本文摘錄自旗標 F494「Red Hat Linux 9 架站實務
」一書
限制可收發郵件的位址及郵件大小
本期的內容將介紹如何設定只能收發某些網域或使用者
的信件, 以及限制能接收信件大小的上限。
只能收發某些網域或使用者的信
由於 Internet 的日益普及, 人與人之間也逐漸改用電
子郵件聯絡。可是就是有些使用者常寄一些 『廣告信』
, 讓您的電子郵件信箱充斥著一堆 『垃圾信』。有鑑
於此, sendmail 也提供了相對防弊的功能。您可藉由
修改 /etc/mail/access 設定檔, 設定伺服器只能收發
某些網域使用者的信件。
修改 /etc/mail/access 設定檔
以下是 /etc/mail/access 設定檔預設的內容:
================================================
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
================================================
在此設定檔的預設值, 將只允許轉遞 (relay) 本機所
發送的信件, 但可收發任何網址的郵件。所謂轉遞是指
其他電腦使用者不直接發信給收件者, 而透用此台郵件
伺服器代為發信給收件者。例如目前很多 Windows 使
用者要寄送信件時, 都不會登入 sendmail 伺服器後再
寄發郵件, 而是透過 Outlook Express 等程式要求郵
件伺服器代為發信給收信者。
/etc/mail/access 設定檔內容的格式如下:
================================================
<指定網址> <行動>
================================================
<指定網址>可指定某個使用者的電子郵件、某台主機
的 IP 位址或網域名稱、某個網域的 IP 位址或網域名
稱。
而<行動>則是針對所指定的網址, 指定所要採取的行動
(action)。有以下 5 個選項:
◇OK:允許接收及寄送指定網址的信件, 此優先權比
REJECT 選項還高。
◇RELAY:允許轉遞此網址要求轉寄的信件。
◇REJECT:拒絕接收或寄送指定網址的信件。
◇DISCARD:丟棄從指定網址所寄過來的信件, 或寄送
到此網址的信件, 若採取此行動, 寄件者將不會收到
任何錯誤訊息, 而會誤以為信件已經正常寄出, 但實
際上信件卻被 sendmail 伺服器給丟棄了。
◇### 要顯示的訊息:若有信件要寄到該網址, 或是有
該網址要寄出的信, 會回應指定的訊息。其中 "###"
為符合 RFC 821 的訊息代號, 不同的訊息代號將會
影響 sendmail 處理此信件的方式, 例如 "550" 表
示拒絕收發此網址的信件。
雖然設定好了 access 檔, 我們還要執行以下指令, 將
此檔轉換成 sendmail 所能認識的 .db 檔案型式:
================================================
[root@mail /]# makemap -v hash /etc/mail/access
< /etc/mail/access
================================================
以上指令會產生 /etc/mail/access.db 檔, 此時您不
需重新啟動 sendmail, 所更改的設定值就會立刻生效
了!
access 設定檔範例介紹
在了解如何撰寫 access 設定檔之後, 接下來我們看看
以下的這個範例。此例將允許 *.flag.com.tw 及 203.
74.* 網域的使用者要求轉遞信件:
================================================
flag.com.tw RELAY
203.74 RELAY
================================================
以下範例則不允許使用者接收 baddomain.com.tw 網域
所寄過來的信, 也不可以寄信到此網域的使用者:
================================================
baddomain.com.tw REJECT
================================================
下面範例跟前一個範例有相同的結果, 不允許收、發 b
addomain.com.tw 網域的信件, 但可以收、發 goodhos
t.baddomain.com.tw 網域的信件:
================================================
baddomain.com.tw REJECT
goodhost.baddomain.com.tw OK
================================================
以下範例將拒絕使用者發信給 badman@mail.flag.com.
tw 帳號, 同時也不接收該帳號所寄過來的信:
================================================
badman@mail.flag.com.tw REJECT
================================================
以下範例將拒絕使用者發信給名稱為 dbt 的帳號, 也
不接收該帳號所寄過來的信, 並顯示 "We don't accep
t mail from salers" 錯誤訊息給寄件者:
================================================
dbt@ 550 We don't accept mail from salers
================================================
如果您還不確定所架設的郵件主機是否會被用來寄發垃
圾信件, 可連到以下網址測試主機是否已關閉轉遞的
功能:
================================================
http://www.edu.tw/tanet/spam.html
================================================
拒收大型郵件
俗語說 『防人之心不可無』, 在今日複雜的網路環境
裏, 難保沒有人會惡意寄送大型郵件來灌爆用戶的信箱
。為了避免發生此情況, sendmail 可讓您限制接收信
件的大小。請將 /etc/mail/sendmail.cf 設定檔中下
列的預設註解符號移除:
================================================
O MaxMessageSize=1000000 ←此設定值預設是被標示
成註解
================================================
此設定值將限制最大能接收的信件大小為 1000000 byt
es(即 1Mbytes)。修改完設定檔後 , 記得要求 sendma
il 重新讀取設定檔, 所做的更改才會生效:
================================================
[root@mail /]# ps ax | grep sendmail ←找出 send
mail 程序的 ID
15464 ? S 0:00 [sendmail] ←此例 sendma
il 程序的 ID 為 15464
15500 ? S 0:00 [sendmail]
[root@mail /]# kill -HUP 15464 ←要求 sendmail 程
序 (選取最小的 PID) 重
新讀取設定檔
================================================
或重新啟動 sendmail:
================================================
[root@mail /]# /etc/rc.d/init.d/sendmail restart
================================================
☆特別收錄☆
由於我們最近收到多次讀者來函反映,用 Linux架設
Mail Server後,卻只能發信不能收信的問題,其實在
我們的書中(Red Hat Linux 9 架站實務)就有解答,
因此本期電子報特別收錄解決方案,除了書本的內容
外我們更獨家提供讀者來函的內容與處理過程,這是
旗標電子報訂戶才能享有的特別服務哦!
用Linux架設Mail Server信件只能發信不能
收信的解決方案
想要讓自行架設的郵件主機能正常運作, 除了要有正式
的網址之外, 還必須在名稱伺服器中登記此主機是郵件
伺服器, 如此其他的郵件主機才能寄信給我們自行架設
的郵件伺服器, 否則信件可是會被退回的!
因此, 您必須在名稱伺服器中登記主機為郵件伺服器;
若您不是自行架設名稱伺服器, 則請洽詢您的 ISP 或
MIS 人員。
您可使用下列方式查詢您網路所連接的 ISP, 或是您的
MIS 人員是否已於名稱伺服器中登記您所架設的郵件
伺服器:
================================================
[root@mail root]# host -t mx mail.flag.com.tw
↑
使用host指令查詢 mail.flag.com.tw
mail.flag.com.tw mail is handled by 0 mail.flag
.com.tw. ↑
↑
這個數字代表郵件伺服器的優先順序,數字越小優先權
越大。例如您用 host -t mx openfind.com.tw 指令查
openfind 網域的郵件伺服器,可查到一台設為 0,令
一台設為 100,故 0的優先權大於 100。至於用哪些數
字並沒有硬性規定,只是一般名稱伺服器管理者慣用 0
、10、20...,而不是1、2、3...
=================================================
如此網路上其他的郵件主機就可以正確的將信寄到此,
而不會被退回。
☆若查不到上述的訊息,將會導致您的郵件伺服器只
能收信不能發信哦!
讀者來函 Q&A:
================================================
問:
編者您好,我依照 Red Hat Linux 9 架站實務一書的
內容架設Sendmail Server,用Telnet測localhost 25
時回應connection refused(Page 9-14)。
用Outlook發信正常但卻收不到信,信會被退回(conne
ction refused),請問是那裡出了問題呢?
────────────────────────
答:
1. 請配合旗標出版的 F494 Red Hat Linux 9 架站實務
第九章內容設定。
2. 請確認是否依照P.9-14頁說明,更改DaemonPortOpt
ion的設定。
3. 確定是否依照P.9-39頁的說明,編輯 /etc/xinetd.d
/ipop3設定檔將pop3 Server開啟。
────────────────────────
PS. 如果還有其他的解決方案,我們將在當期的電子報
中刊出。
--- 本篇完
我要買這本書
| |
........................................︽
........................................
|
|