A. linux使用mail命令-- -f指定發件人時出錯
把發件人地址加上-r,放在收件人地址的前面
mail -s "hello world" -r [email protected] [email protected] < a.txt
B. 求大眾RNS315混刷斯柯達的0223固件
0223的版本下載地址:http://pan..com/share/link?shareid=4182328214&uk=4213431796
版本沒有大眾和斯柯達之分,秘密在於文件目錄0223\dnl\bin\system\arion\vwrn315c下有fgs.dnl/fgs_se.dnl/fgs_sk.dnl三個文件,刷機的時候默認刷的是fgs.dnl(這是大眾標志文件),fgs_se.dnl對應的是西雅特,fgs_sk.dnl對應是斯柯達標志,你如果要刷斯柯達版本,只要將fgs_sk.dnl和fgs.dnl交換下文件名,然後拷入TF卡進行升級即可,希望可以幫到你。
C. sendmail 在linux 中如何啟動
分類: 電腦/網路 >> 操作系旁散統/系統故障
解析:
Sendmail的配置十分復雜。它的配置文件是sendmail.cf,位於/etc/mail目錄下。由於sendmail.cf的語法深奧難懂,很少有人會直接去修改該文件來對Sendmail伺服器進行配置。我們一般通過m4宏處理程序來生成所需的sendmail.cf文件。創建的過程中還需要一個模板文件,系統默認在/etc/mail目錄下有一個sendmail.mc模板文件。
我們可以根據簡單、直觀的sendmail.mc模板來生成sendmail.cf文件,而無需直接編輯sendmail.cf文件。可以直接通過修改sendmail.mc模板來達到定製sendmail.cf文件的目的。這里介紹創建sendmail.cf文件的步驟:
(1)備份原亮物有sendmail.cf文件
在終端敬啟液命令窗口運行以下命令:
cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
(2)生成sendmail.cf文件
根據sendmail.mc模板文件產生sendmail.cf配置文件,並導出到/etc/mail/目錄下:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
(3)重啟sendmail服務
[root@ahpeng root] /etc/rc.d/init.d/sendmail restart
很顯然,用m4宏編譯工具創建sendmail.cf文件比較方便,而且不容易出錯,更可以避免某些帶有安全漏洞或者過時的宏所造成的破壞。一個sendmail.mc模板的大致內容如下:
divert(-1)dnl
......
include('/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID('setup for Red Hat Linux')dnl
OSTYPE('linux')dnl
......
dnl #
dnl define('SMART_HOST',' *** tp.your.provider')
dnl #
define('confDEF_USER_ID',''8:12'')dnl
define('confTRUSTED_USER', ' *** msp')dnl
dnl define(′confAUTO_REBUILD′)dnl
......
這里介紹sendmail.mc模板的語法組成:
dnl:用來注釋各項,同時dnl命令還用來標識一個命令的結束。
divert(-1):位於mc模板文件的頂部,目的是讓m4程序輸出時更加精簡一些。
OSTYPE ('OperationSystemType'):定義使用的操作系統類型,顯然這里應該用linux代替OperationSystemType,注意要用一個反引號和一個正引號把對應的操作系統類型括起來。
define:定義一些全局設置,對於Linux系統,設置了OSTYPE之後,可以定義下面的一些全局參數,如果不定義,就使用默認值。這里舉兩個簡單例子:define('ALIAS_FILE','/etc/aliases')
定義別名文件(alia file)的保存路徑,默認是/etc/aliases
define('STATUS_FILE', '/etc/mail/statistics')
sendmail的狀態信息文件。
以上只是sendmai.mc的一些簡單的語法解釋,更多的參數含義及其配置信息可以參見sendmail/m4/eaking_config。
為新用戶開電子郵件賬號
在Linux里為新用戶開設電子郵件賬戶比較簡單,只需在Linux系統里新增一個用戶即可。單擊"主菜單→系統設置→用戶和組群"菜單項,打開"Red Hat用戶管理器"對話框,單擊"添加用戶"按鈕,在出現的"創建新用戶"對話框里指定用戶名、登錄口令即可,如圖3所示。
假設我們添加了一個用戶Peter(密碼為peter),這樣該用戶就有了一個郵件地址Peter@YourDomain(此處的YourDomain用你自己域名代替)。
以上過程也可以在終端命令窗口運行以下命令來實現:
[root@ahpeng root]#adser peter -p peter
為電子郵件賬戶設置別名
有一些用戶想使用多個電子郵件地址,是不是需要創建多個郵件賬號呢?我們可以使用別名(alias)來解決這個問題。
比如說,用戶peter想擁有以下3個電子郵件地址:
peter@YourDomain、dearpeter@ YourDomain、truepeter@ YourDomain。
我們可以通過以下步驟來實現這樣的別名設置:
新增一個賬號peter;然後用vi、或者Kate等文本編輯器打開/etc/aliases,在裡面加上兩行:
dearpeter: peter
truepeter: peter
保存該/etc/aliases退出。
不過,就這樣還不能讓Sendmail接受新增的別名,我們必須在終端命令窗口運行newaliases命令,以要求Sendmail重新讀取/etc/aliases文件。如果一切無誤,應該可以看到類似以下的回應消息:
[root@ahpeng root]# newaliases
/etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total
這樣,發給peter的郵件可以使用3個郵件地址,而peter只需要使用一個電子郵件賬號peter@YourDomain就可以接收所有寄給以上3個地址的電子郵件。
指定郵箱容量限制
當一個郵件伺服器為許多人提供郵件服務時,無 *** 的電子郵件將很容易塞滿伺服器的硬碟,造成硬碟負擔。如果不想為用戶提供無限空間的郵件暫存空間,可以使用"郵件限額"來給用戶一個有限的暫存空間。
其實,它是利用磁碟配額功能來實現的。電子郵件的暫存空間是在/var/spool/mail目錄下,只要通過磁碟配額設定每一個用戶在這個目錄下能使用的最大空間即可。
支持POP和IMAP功能
到現在為止,我們已經可以用Outlook Express發送郵件,或者登錄伺服器使用mail、pine命令收取、管理郵件。但是還不能用Outlook Express等客戶端從伺服器下載郵件,這是因為Sendmail並不具備POP3(IMAP)的功能,所以我們必須自己安裝。
(1)POP和IMAP伺服器安裝
安裝Red Hat Linux 9.0時,可以選擇安裝POP和IMAP伺服器,可以在終端命令窗口運行以下命令進行驗證:
[root@ahpeng root]# rpm -qa imap
imap-2001a-18
如果沒有安裝,可以將第2張安裝光碟放進光碟機,然後在終端命令窗口運行以下命令即可開始安裝:
[root@ahpeng root]#cd /mnt/cdrom/RedHat/RPMS
[root@ahpeng root]#rpm -ivh imap-2001a-18.i386.rpm
由於Red Hat Linux 9.0已經將POP和IMAP打包成一個單獨的套件,安裝好imap-2001a-18.i386.rpm,就會同時安裝這兩個伺服器
(2)啟動POP和IMAP服務
要成功啟動POP和IMAP伺服器,首先要確定這些服務存在於/etc/services文件,確保以下的服務前面沒有加上#注釋(如果有,必須去除注釋)。
imap 143/tcp imap2 # Interim Mail Access Proto v2
imap 143/udp imap2
pop2 109/tcp pop-2 postoffice # POP version 2
pop2 109/udp pop-2
pop3 110/tcp pop-3 # POP version 3
pop3 110/udp pop-3
修改好/etc/services文件,接下來就要對相應服務配置文件進行定製:
啟動POP3服務:必須修改/etc/xid.d/ipop3文件,將其中的"disable=yes"改為"disable=no",保存該文件。最後必須重新啟動xid程序來讀取新的配置文件,使得設定內容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xid reload
啟動IMAP服務:必須修改/etc/xid.d/imap文件,將其中的"disable = yes"改為"disable =no",保存該文件。最後必須重新啟動xid程序來讀取新的配置文件,使得設定內容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xid reload
設置好以後,就可以在Outlook Express裡面設置好郵件賬號,以後就可以直接利用Sendmail伺服器進行收發郵件了,由於郵件伺服器就在本地區域網,所以速度很快。
D. 5.30 電子郵件sendmail試驗
估計時間: 2個小時
目標: 建立基本的MTA的配置的技能
試驗的起點: 標準的Red Hat Linux安裝
確保在Server1上的sednmail.mc文件中的DAEMON_OPTIONS被注釋並且重新編譯sendmail.cf文件使得能夠接受來自其他主機的電子郵件。
介紹
本次實驗作為一個安裝和配置MTA的介紹。在介紹中我們將提及sendmail和postfix。您可以選擇任何一個MTA,如果時間允許,您兩個都可以做一下試驗。在接下來的步驟中,您將
1. 安裝並且驗證sendmail的「發件箱」
2. 為您的sendmail的安裝添加新的別名
3. 使用m4工具來改變您的轉發行為
4. 安裝POP3伺服器並且配置POP客戶端
在整個試驗中,主機和域名取決於您的機器的IP地址。如果下面的試驗出現了X字樣的名稱,您應該把X字樣的名稱替換成你的工作站的號碼(您的IP地址的最後一個部分)。例如,如果您的工作站的IP的地址是192.168.0.2,您應該將stationX.domainX.example.com轉換成station2.domain2.example.com。
將數據包過濾設定為無效狀態。在本次試驗開始之前,請您確保您的主機上的所有包過濾已被關閉(顯然,在實際使用中您可以利用Linux內核的防火牆機制,然而我們在這里關掉它是為了減少潛在的問題)。
本次試驗中以root身份來使用下面命令達成上面的要求:
service iptables stop
chkconfig iptables off
初始化安裝-安裝必要的軟體包
下列軟體包對於sendmail是必需的: sendmail,sendmail-cf,sendmail-doc,m4和procmail。對於postfix而言,您需要: postfix。如果需要他們,從CD上進行檢視和安裝,server1的NFS安裝點,從: ftp://server1/pub/RedHat/RPMS/
為了安全的原因,sendmail和postfix的預設的配置允許發郵件但是不允許從網路上接收郵件(預設的它們只接受從回環介面上的連接)。按照如下配置您選擇的MTA使得它接受傳入的連接:
⑴ 對於sendmail: 修改 /etc/mail/sendmail.mc使用dnl注釋在下面的行之前,就像這樣:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
⑵ 將您的sendmail.cf文件做一個備份:
cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.orig
⑶ 在同一個目錄下,編譯sendmail.cf
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
⑷ 重新啟動sendmail,通過
service sendmail restart
對於postfix:修改/etc/postfix/main.cf
⑴. 找到並注釋如下行
inet_interfaces = localhost
⑵. 取消注釋該行:
inet_interfaces = all
⑶. 保存文件並且進行到步驟2 的結束的地方。找到和上面一樣的對應於postfix的配置的地方。
對於sendmail: 有幾個步驟您應該採用,以確保sendmail被正確安裝。
⑴. 確信sendmail已經被在適當的運行級別上運行
檢查您的sendmail被適當的配置且能夠在重新啟動以後其能夠運行。使用chkconfig是比較方便的。
chkconfig -–list sendmail
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
如果sendmail在標準的用戶運行級別時無效,使用chkconfig,ntsysv 或者serviceconf 之類的工具來激活服務。
⑵. 確定sendmail沒有在啟動的時候出現錯誤
Red Hat Linux安裝的時候使用提供的syslog工具來記錄所有的信息到文件/var/log/maillog中去。檢查此文件中的最後出現「starting」的地方以確保sendmail在啟動的時候沒有任何錯誤。
sendmail可執行文件位於/usr/sbin/sendmail。為了確定sendmail是否正確標識您的主機名稱,通過命令行開關開啟其調試模式並且設定為0:
sendmail –d0 < /dev/null
Version 8.11.6
Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF
SMTP TCPWRAPPERS USERDB
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = station2
(canonical domain name) $j = station2.example.com
(subdomain name) $m = station2
(node name) $k = station2.example.com
Recipient names must be specified
如果sendmail返回您的主機名稱為localhost,您可能錯誤配置了/etc/hosts文件。檢查您的/etc/hosts文件,刪除所有的但記住留下localhost的指向。如果/etc/hosts文件是正確的,那麼檢查一下在/etc/sysconfig/netwoek中的HOSTNAME的定義。
試圖向root@server1發送簡單的郵件。您可以看到一個合理的您的主機的轉發伺服器的SMTP交換。
#echo 「hello root」 | mail –v –s hello root@server1
root@server1... Connecting to [127.0.0.1] via relay...
220 localhost.localdomain ESMTP Sendmail 8.12.8/8.12.8; Mon, 22 Sep 2003 14:29:24 +0800
>>> EHLO localhost.localdomain
250-localhost.localdomain Hello station1 [127.0.0.1], pleased to meet you
...
>>> MAIL From: SIZE=52 [email protected]
250 2.1.0 ... Sender ok
>>> RCPT To:
>>> DATA
250 2.1.5 ... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 h8M6TOU5026513 Message accepted for delivery
[email protected]... Sent (h8M6TOU5026513 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 localhost.localdomain closing connection
如果SMTP交換向上面一樣正確,那麼消息將被轉發到您的工作站上的本地的轉發伺服器上,並且mailq –Ac將會報告一個空的對列。接下來檢查mail(不使用參數)來檢查一下消息是否從本地的轉發到server1。這樣對列也應該是空的。
您的消息是不是在/var/log/maillog中正確的記錄呢?在下面的步驟中,監視文件/var/log/maillog。下面的命令將會十分的有用:
xterm –e tail –f /var/log/maillog &
對於postfix:
⑴. 運行『service sendmail stop』,接下來使用redhat-switch-mail使得postfix成為活躍的MTA。您也可以使用如下的命令行:
alternatives –set mta /usr/sbin/sendmail.postfix
⑵. 確保postfix在合適的運行級別有效:
chkconfig -–list postfix
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
⑶. 確定hostname命令正確的返回您的主機名稱。應該是您的FQDN。
如果sendmail返回您的主機名稱為localhost,您可能錯誤配置了/etc/hosts文件。檢查您的/etc/hosts文件,刪除所有的但記住留下localhost的指向,然後再試一遍。如果/etc/hosts文件是正確的,那麼檢查一下在/etc/sysconfig/netwoek中的HOSTNAME的定義。當這些值都正確的時候,啟動postfix服務。
⑷. 確定postfix在啟動的時候沒有錯誤
和sendmail一樣,Red Hat Linux的安裝使用提供的syslog工具來記錄所有的信息到文件/var/log/maillog中去。檢查此文件中的最後查找任何錯誤信息。
試圖向root@server1發送簡單的郵件並且檢查/var/log/maillog的記錄文
mail –s `echo $USER` root@server1 < /etc/redhat-release
應該是如下所示:
Sep 22 02:51:50 station1 postfix/pickup[2865]: A20ED348389: uid=0 from=
Sep 22 02:51:50 station1 postfix/cleanup[3534]: A20ED348389: message-id=<2003092
Sep 22 02:51:50 station1 postfix/nqmgr[2866]: A20ED348389: from=<[email protected] span=""> </[email protected]>
xample.com>, size=341, nrcpt=1 (queue active)
Sep 22 02:51:51 station1 postfix/smtp[3536]: A20ED348389: to=<[email protected] span=""> </[email protected]>
82>, relay=192.168.241.182[192.168.241.182], delay=1, status=sent (250 Message q
ueued)
對於sendmail:
在sendmail決定消息的接受者的目的地的之前,其先試圖在別名中查找。Sendmail的主要的別名配置文件是/etc/aliases。為了優化查找,sendmail為其別名記錄建立了一個哈希表資料庫/etc/aliases.db.該文件通過newalias命令產生(該命令是sendmail –bi的同名)
下列命令將增加用戶student(如果不存在的話)
useradd student
在/etc/aliases 行加入如下的行:
me: student
wizards: root, me
methere: [email protected]
現在運行newalias 命令來更新資料庫,嘗試發送郵件給您定義的收件人:
newalias
echo 「hello there」 | mail –s 「hello」 m
echo 「hello there」 | mail –s 「hello」 wizards
echo 「hello there」 | mail –s 「hello」 methere
您是否得到了期望的結果?是否所有的位於wizards的收件人都收到了郵件?如果沒有,su – 到不是root的用戶再試一次。
在postfix決定消息的接受者的目的地的之前,其先試圖在別名中查找。Postfix的主要的別名配置文件是/etc/postfix/aliases。為了優化查找,postfix為其別名記錄建立了一個哈希表別名資料庫/etc/postfix/aliases.db(和sendmail類似).該文件通過newalias命令產生。
下列命令將增加用戶student(如果不存在的話)
useradd student
在/etc/postfix/aliases 行加入如下的行:
注意:注釋root別名的那一行為postfix
me: student
wizards: root, me
methere: [email protected]
現在運行newalias 命令來更新資料庫,嘗試發送郵件給您定義的收件人:
newalias
echo 「hello there」 | mail –s 「hello」 me
echo 「hello there」 | mail –s 「hello」 wizards
echo 「hello there」 | mail –s 「hello」 methere
您是否得到了期望的結果?是否所有的位於wizards的收件人都受到了郵件?
轉發允許郵件通過使用中間的「轉發」及其傳遞到其目的地。盡管這個功能曾經有用,但是轉發已經成為Internet上垃圾郵件的源泉了。人們希望發送主動提供的的郵件的時候希望使用轉發機制,從而使得郵件發源地很難被偵測出來。
下列步驟將使用下面的主機。替換X,Y和Z為適合的工作站的號碼:
stationX:源機器,郵件從這里發出
stationY:轉發機器,這里郵件從發送者送出
stationZ:目的機器,郵件的最終目的
該步驟假設您是stationX,轉發機器,與某人的stationY合作,該機器為郵件的源頭。在該步驟中,注意/var/log/maillog的變化。下列命令將會顯得十分的有用。
對於sendmail
步驟⑴ :允許轉發
您具有控制允許誰在您的機器上轉發的能力。通過控制您的機器的混雜轉發,您可以使得任何人都能夠將您的機器作為轉發的主機。(我們對於這種的嘗試表示反對,也希望通過該實驗顯示出其缺陷)。配置/etc/mail/sendmail.mc, 通過加入如下行使得m4前置處理器允許混雜轉發:
/etc/mail/sendmail.mc
(…其他的內容…)FEATURE(promiscuous_relay)dnl
使用m4前置處理機通過這個模板文件生成一個新的sendmail配置文件,然後將新生成的文件與通過sendmail RPM軟體包提供的進行比較
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.test-relay
diff /etc/mail/sendmail.test-relay /etc/mail/sendmail.cf
使用混雜轉發以後會有多大的不同呢?現在將新建立的sendmail.test放置在恰當的位置上,重新啟動sendmail.
mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf.accept-mail
cp /etc/mail/sendmail.test-relay /etc/mail/sendmail.cf
service sendmail restart
讓您的夥伴扮演惡意的垃圾郵件的發送者,該人能夠通過telnet到您的機器上的smtp(sendmail)的25號斷口,進行垃圾郵件發送地址的欺騙,在stationY鍵入如下命令:
這個例子對於stationY(源機器) station2,並且stationX(轉發,在這里目的機器) station1
[root@station1 root]# telnet station1 25
Trying station1.example.com...
Connected to station1.example.com (station1.example.com).
Escape character is '^]'.
220 station1.example.com (IMail 8.00 8-1) NT-ESMTP Server X1
helo mail.cracker.org
250 hello station1.example.com
mail from: [email protected]
250 ok
rcpt to:[email protected]
250 ok its for [email protected]
data
354 ok, send it; end with .
Subject: Faked
this was faked!
250 Message queued
quit
221 Goodbye
Connection closed by foreign host.
垃圾郵件現在送到您的機器上了。下一步,看看您的夥伴能不能從您的機器轉發給第三台機器:
這個例子對於stationY(源機器) station2,並且stationX(轉發,在這里目的機器) station1,並且stationZ(目的機器) station3
[root@station1 root]# telnet station1 25
Trying station1.example.com...
Connected to station1.example.com (station1.example.com).
Escape character is '^]'.
220 station1.example.com (IMail 8.00 9-1) NT-ESMTP Server X1
helo mail.craker.org
250 hello station1.example.com
mail from: [email protected]
250 ok
rcpt to [email protected]
250 ok its for [email protected]
data
354 ok, send it; end with .
Subject: Relayed
this was faked any relayed!
250 Message queued
quit
221 Goodbye
Connection closed by foreign host.
由於您的機器已經被配置成為允許混雜轉發,垃圾郵件可以通過您的機器進行郵件轉發。
對於postfix:
您具有控制允許誰在您的機器上轉發的能力。預設的postfix允許在子網上的任何人通過您的機器進行轉發。但是並不是在每一個環境中都安全的。例如,您的機器和其他機器在一起,如果您的本地子網里有一台機器被其他人控制,那麼其他的機器都會有麻煩。
讓您的夥伴扮演惡意的垃圾郵件的發送者,該人能夠通過telnet到您的機器上的postfix的25號斷口,進行垃圾郵件發送地址的欺騙,在stationY鍵入如下命令:
[root@station1 root]# telnet station1 25
Trying 127.0.0.1...
Connected to station1 (127.0.0.1).
Escape character is '^]'.
220 station1.example.com ESMTP Postfix
helo mail.craker.org
250 station1.example.com
mail from:[email protected]
250 Ok
rcpt to: [email protected]
250 Ok
data
354 End data with .
Subject: Faked
this was faked!
.
250 Ok: queued as 4FFA2348389
quit
221 Bye
Connection closed by foreign host.
垃圾郵件現在送到您的機器上了。下一步,看看您的夥伴能不能從您的機器轉發給第三台機器:
這個例子對於stationY(源機器) station2,並且stationX(轉發,在這里目的機器) station1,並且stationZ(目的機器) station3
[root@station1 root]# telnet station1 25
Trying 127.0.0.1...
Connected to station1 (127.0.0.1).
Escape character is '^]'.
220 station1.example.com ESMTP Postfix
helo mail.craker.org
250 station1.example.com
mail from: [email protected]
250 Ok
rcpt to: [email protected]
250 Ok
data
354 End data with .
subject: Relayed
this was faked and relayed!
.
250 Ok: queued as 69C7B348389
quit
221 Bye
Connection closed by foreign host.
由於您的機器已經被配置成為允許混雜轉發,垃圾郵件可以通過您的機器進行郵件轉發。
步驟⑵ :不允許轉發
對於sendmail
通過替換新的sendmail.cf為接受傳入的信件的配置文件來恢復預設的sendmail的配置,並且重新啟動sendmail:
mv /etc/mail/sendmail.cf.accept-mail /etc/mail/sendmail.cf
service sendmail restart
讓您的夥伴再從stationY轉發垃圾郵件。您的sendmail還是一個轉發器么?任何一個轉發的都會產生如下的消息:
550 [email protected] .. Relaying denied
對於postfix
編輯文件/etc/postfix/main.cf取消轉發。
查找並且取消注釋下面的行,並且重新啟動postfix
mynetworks_style = host
讓您的夥伴再從stationY轉發垃圾郵件。您的postfix還是一個轉發器么?任何一個轉發的都會產生如下的消息:
554 : Recipient address rejected: Relay access denied
步驟⑶ :選擇性的轉發
對於sendmail
對於特定的主機,域或者網路,編輯/etc/mail/access並且重新啟動sendmail。為了允許所有在example.com域中的機器可以把您的機器作為郵件轉發伺服器,你在/etc/mail/acces中添加如example.com域。和您的夥伴使用場景A中的命令進行測試。
對於postfix
對於特定的主機,域或者網路,編輯/etc/postfix/main.cf並且重新啟動postfix。對於特定的主機允許通過您的機器進行轉發,找到並且取消注釋該行:
mynetworks_style = host
然後添加新行來允許轉發的主機和網路,在這里允許station1和本地轉發
mynetworks = 192.168.0.1, 127.0.0.0/8
和您的夥伴使用場景A中的命令進行測試。
在這個步驟中,你將配製您的機器stationX作為郵件的POP3伺服器,使得您的在stationY的夥伴扮演POP客戶端的角色。
步驟⑴ :安裝POP3伺服器
配置一個POP3伺服器比較簡單,只需要兩個步驟:
① 安裝相關的RPM軟體包
② 在xinetd中允許服務
① 安裝相關的RPM軟體包
POP守護進程和其他的具有相同功能的守護進程,例如IMAP守護進程綁定在軟體包imap中。再如xinetd,krb5-libs*和imap軟體包來檢查imap軟體包含有什麼軟體。
三個守護進程被包括進來:imapd,ipop2d和ipop3d。POP3被用在很多Internet服務提供商,POP2提供是為了向後兼容。IMAP守護進程提供了根加復雜的能力,包括了在伺服器端的文件夾的管理。
② 在xinetd中允許服務
對於本實驗,我們僅選定POP3服務。ipop3d通過xinetd在請求的時候被啟動。為了激活,運行下面的命令:
service xinetd start
chkconfig ipop3 on
查看一下/etc/xinetd.d/ipop3。顯式的重新啟動xinetd並不是必需的,由於chkconfig發送給xinetd 一個USR2信號告訴他重新調入其配置。
確認服務
運行下面的命令確認服務已經被正確的安裝。下面的命令只是一個指導:
echo 「mail to be poped」 | mail –s 「Hello student」 student
[root@station1 root]# telnet localhost 110
Trying 127.0.0.1...
Connected to station1 (127.0.0.1).
+OK POP3 station1 v2001.78rh server ready
USER student
+OK User name accepted, password please
PASS student
+OK Mailbox open, 1 messages
list
STAT
+OK 1 440
TOP 1 99999
retr 1
+OK Top of message follows
Return-Path: [email protected]
Delivered-To: [email protected]
Received: by station1.example.com (Postfix, from userid 0)
id 72314348390; Mon, 22 Sep 2003 08:02:27 -0400 (EDT)
Subject: Hello student
Message-Id: [email protected]
Date: Mon, 22 Sep 2003 08:02:27 -0400 (EDT)
From: [email protected] (root)
Status:
mail to be poped
.
DELE 1
+OK Message deleted
QUIT
+OK Sayonara
Connection closed by foreign host.
如果一切順利的話,您現在有一個安裝好的POP伺服器了。
步驟⑵ :使用POP客戶端
所有的現在的郵件用戶代理(MUA),例如netscape,elm,Outlook,pine和mutt都是使用POP的,可以被用作POP的客戶端。每一個的配置都有所不同。同樣有一個流行字元界面的的POP客戶端叫做fetchmail。fetchmail是高度的可配置的,可以查詢多個郵箱,可以作為守護進程運行,這樣使得其每五分鍾查詢用戶的郵箱。fetchmail在主機上遞送郵件到郵件傳送代理(MTA),例如sendmail。我們將勾畫出以後如何安裝fetchmail和使用其來查詢我們裝過的POP伺服器。
從CD或者從 ftp://server1/pub/RedHat/RPMS來安裝fetchmail軟體包
注意到有很多選項可以影響fetchmail的行為。建立一個~/.fetchmailrc文件如下所示:
~student/.fetchmailrc
poll stationX.exmaple.com with protocol pop3: user studentXX there is user studentXX here password 「password」
由於密碼存儲在該文件中,因此fetchmail將會拒絕運行除非您把該文件的屬性設定為對於僅僅文件的所有者只讀。注意還可以使用chown改變由root創建的文件的所有者為studentXX。
chmod 600 ~student/.fetchmailrc
chown student.student ~student/.fetchmailrc
嘗試使用studentXX登陸到POP3郵
echo 「hello student」 | mail –s 「Hola」 student
su – student
fetchmail –v
exit
fetchmail能不能接收到student的POP郵件?將遞送student的郵件到哪裡?比從本地獲取POP郵件有意義么?
讓您的夥伴在另外一台機器上建立相同的~/.fetchmailrc文件(或者配置其它諸如mozilla的MTA)試圖從您的伺服器上進行收信。
⑴ m4宏語言提供給sendmail管理哪些東西?把所有的在xyz.com的用戶郵件導向到本地用戶xzplogin該使用什麼語法?該在什麼文件的和處填上這句話?
⑵ mailq命令用來作什麼?您如何使用?
⑶ 當命令sendmail –q發出以後,sendmail將會試圖仍在隊列中等待的郵件。何時使用該命令是有用的?
⑷ 如果去除FEATURE(accept_unresolvable_domains)的注釋將對垃圾郵件產生如何的影響?
⑸ m4有什麼特徵允許sendmail發送郵件作為整個域(例如,「example.com」)而不是完全的符合標準的主機名稱(例如,「mail.example.com」)?
⑹ 在postfix中mynetworks_style如何影響轉發?
請您查看文件/etc/postfix/main.cf。
⑺ 在文件/etc/postfix/access中需要如何的活躍的變化?