Sendmail 配置具體命令詳解
學(xué)linux久了,也寫點(diǎn)東西讓大家共享,為了能從網(wǎng)絡(luò)上接收SMTP電子郵件,我們必須在Linux系統(tǒng)上運(yùn)行Sendmail守護(hù)進(jìn)程。以下是具體命令和實(shí)現(xiàn)。
為了方便起見,我們應(yīng)該使用ntsysv命令把Sendmail守護(hù)進(jìn)程加到引導(dǎo)程序中,在多數(shù)情況下,安裝時(shí)Linux就已經(jīng)自動(dòng)將Sendmail 配置包含在引導(dǎo)程序中了。這樣每次開機(jī)時(shí),Linux都會(huì)啟動(dòng)Sendmail守護(hù)進(jìn)程并偵聽端口25,處理進(jìn)入的郵件。
Sendmail配置文件是/etc/sendmail.cf文件,它包含大部分的Sendmail配置的信息,包括在用戶郵件程序和郵件傳輸程序之間為郵件選擇路由所需的信息。Sendmail.cf文件有三個(gè)主要功能:
·定義Sendmail環(huán)境。
·按照接收郵件程序的語法重寫地址。
·將地址映射成傳送郵件所需的指令。
執(zhí)行所有這些功能需要若干命令。一些宏定義和可選用的命令可定義其環(huán)境,一些重寫規(guī)則可以重寫電子郵件的地址,一些郵件程序定義可定義傳送郵件所必需的指令。
sendmail.cf文件很大,看上去可復(fù)雜,但我們需要改動(dòng)的地方很少。主要在local info中做文章。請(qǐng)?jiān)谖募袑ふ?ldquo;Cw”,原來產(chǎn)生的cf 文件,Cw應(yīng)是:
Cwlocalhost
請(qǐng)?jiān)趌ocalhost之后加上我們那一臺(tái)機(jī)器所有可能用來當(dāng)收信地址的主機(jī)的名字。例如,在局域網(wǎng)絡(luò)Virtual Brewery中的一臺(tái)機(jī)器叫:vlager.vbrew.com,而且也叫g(shù)opher.vbrew.com,而該網(wǎng)絡(luò)的管理員希望這一臺(tái)機(jī)器的這兩個(gè)名字都能收信,那么他需要這樣修改sendmail.cf文件:
Cwlocalhost vlager.vbrew.com gopher.vbrew.com
上面只是一種簡便的方法,如果系統(tǒng)中運(yùn)行著DNS,我們可以通過DNS來解析主機(jī)別名(如下所示),而不用加上主機(jī)別名gopher.vbrew.com。如果沒有運(yùn)行DNS,那么必須將本機(jī)器的所有名字都寫上。
如果用作郵件服務(wù)器的主機(jī)有多個(gè)名字(hostname),例如:
vlager IN A 191.72.1.1
gopher IN CNAME vlager
那么我們可以不必在Cw上標(biāo)明,系統(tǒng)會(huì)透過DNS 找到它的別名
如果一臺(tái)機(jī)器有多個(gè)名字,但是每一個(gè)別名是用A record 建立的,例如:
vlager IN A 191.72.1.1
gopher IN A 191.72.1.1
在這種情況下【一定】要記得在Cw后寫上所要收信主機(jī)的名字。如果忘 記了,那么從外面寄來的以別名為地址的信件將無法正常接收,機(jī)器會(huì)抱怨:
“Local configuration error” 例如,如果在sendmail.cf中的Cw這行是Cw vlager.vbrew.com,那么局域網(wǎng)Virtual Brewery中的用戶將無法使用郵件地址 username@gopher.vbrew.com 而只能用username@vlager.vbrew.com,否則將出現(xiàn)上述錯(cuò)誤。
如果一臺(tái)機(jī)器有多interface,各interface有其本身的名字,而且要收信。 這種情況也要在Cw之後寫明所有要收信的hostname。 在我們的例子中F命令是作為注釋處理的,如果去掉它前面的“ sendmail將從/etc/sendmail.cw中讀取主機(jī)的別名,并將別名儲(chǔ)存在類w中。將F命令做注釋處理,并讓sendmail在內(nèi)部定義別名這是一種最常用的方法。
打開/etc/mail/access文件時(shí),會(huì)看到(注意一些系統(tǒng)的access文件不再/etc/mail下,如找不到請(qǐng)用whereis查找或檢查是否安裝正常):
- iption le)
- l-doc
- localhost.localdomain RELAY
- localhost RELAY
如果我們主機(jī)的IP地址是191.72.1.1的話,就應(yīng)該在最后一行加上它的記錄項(xiàng),這樣,我們修改后的文件的最后三行應(yīng)是:
- localhost.localdomain RELAY
- localhost RELAY
- 191.72.1.1 RELAY
加上這句話我們就可以用sendmail發(fā)送接收mail了。但是如果我們想讓別人也可以使用sendmail的話,而他的IP是202.168.25.22,這樣就在在最后一行加入他的主機(jī)的記錄項(xiàng),這時(shí)文件的最后四行應(yīng)是:
- localhost.localdomain RELAY
- localhost RELAY
- 191.72.1.1 RELAY
- 202.168.25.22 RELAY
當(dāng)我們考慮到多用戶的時(shí)候,sendmail允許我們添入整個(gè)B類或C類地址,其格式如下:
- localhost.localdomain RELAY
- localhost RELAY
- 191.72 RELAY
- 202.168.25 RELAY
這樣,我們就是把整個(gè)網(wǎng)絡(luò)都加入的sendmail中,這個(gè)地址中的用戶,如果在我們的系統(tǒng)里有賬號(hào)的話,可以使用sendmail收發(fā)信件了。 Linux還允許我們?cè)O(shè)置郵局協(xié)議(POP)郵件服務(wù)器,POP協(xié)議分兩個(gè)版本POP2和POP3,很顯然POP3是新版本的郵局協(xié)議,現(xiàn)在Internet網(wǎng)上主要是POP3協(xié)議。 POP3并不需要我們來配置,RedHat已經(jīng)為我們做好了這一工作。我們只需要修改一下 /etc/inetd.conf文件,確保POP3能正常工作即可:
在我們配置完sendmail后,可以運(yùn)行以下的命令來檢查目錄的讀寫權(quán)限以檢查潛在的安全漏洞。
這時(shí),sendmail將開始初始化alias數(shù)據(jù),如果在屏幕上回顯:
- WARNING: writable directory /etc
- WARNING: writable directory /usr/spool/mqueue
那么這個(gè)目錄列出了不適當(dāng)?shù)膶懱貦?quán),應(yīng)該使用chmod和 chown命令以避免多方面的的安全攻擊。一般我們需要對(duì)如下目錄運(yùn)行chmod和chown命令: mqueue
sendmail 的有一些參數(shù)可以用于驗(yàn)證地址處理的結(jié)果,以確保其新配置的合理性。一旦認(rèn)為配置可以正常工作了,我們就可以選擇各個(gè)站點(diǎn)上的朋友,并將郵件發(fā)送給他們。發(fā)送時(shí)使用-v參數(shù)就可以顯示郵件傳輸?shù)母鱾€(gè)細(xì)節(jié)和兩個(gè)站點(diǎn)之間進(jìn)行SMTP交換的全過程。下面是一個(gè)測試的例子,使用的文件是test.cf,一旦測試成功,我們就可以將這個(gè)文件拷貝到/etc下并可以改名為sendmail.cf。
- To: lack@vlager.vbrew.com
- From:janet
- Subject:Test for sendmail
- Lack,please reply if you see this,Thanks.
- ^D
- lark@ vlager.vbrew.com…..Connecting to vlager.vbrew.com via t
- cp…
- Trying 191.72.1.1 ….connected.
- 220 VLAGER.VBREW.COM on Web, 30 Sep 99 16:23:23 CST
- >>> HELLO maths.groucho.edu
- 250 VLAGER.VBREW.COM is my domain name
- >>> MAIL From:< gauss.maths.groucho.edu.>
- 250 OK
- >>> DATE
- 354 Enter mail body, End by new line with just a ‘.’
- >>>.
- 250 Mail Delivered
- >>> QUIT
- 221 VLAGER.VBREW.COM closing connection
- lack@vlager.vbrew.com …sent
我們?cè)贑TRL-D之前輸入所有的內(nèi)容,而sendmail則顯示^D之后的內(nèi)容。通過對(duì)sendmail的測試,我們就可以發(fā)現(xiàn)潛在的配置問題,并使用sendmail提供的一些附加查錯(cuò)工具解決這些問題。
文章轉(zhuǎn)載自網(wǎng)管網(wǎng):http://www.bitscn.com/os/linux/200604/6356.html
【編輯推薦】
- Sendmail 配置的排錯(cuò)方法
- Sendmail 配置的使用說明
- Linux 性能檢測工具Uptime簡單介紹
- Sendmail 配置E-Mail服務(wù)器實(shí)現(xiàn)E-Mail靈活運(yùn)用
- Sendmail 配置E-Mail服務(wù)器