詳解Suse Postfix配置解法
隨著社會(huì)的進(jìn)步,科技的發(fā)展,操作系統(tǒng)越來(lái)越受到廣大用戶的關(guān)注,而Suse也越來(lái)越受到重視。你是否了解怎樣完成Suse Postfix配置呢?今天我們就講講Suse Postfix配置學(xué)習(xí)問(wèn)題。Postfix默認(rèn)值
Postfix采用默認(rèn)值啟動(dòng)時(shí)有2個(gè)重要特性:
1.只在127.0.0.1的port25上Listen(inet_interfaces=127.0.0.1)也就是不管是MUA或MTA要寄信給postfix,postfix一概不接受。這樣除非是登入到主機(jī),利用mail指令寄信外,便無(wú)法寄信。
2.允許一個(gè)網(wǎng)段的主機(jī)轉(zhuǎn)發(fā)信件/Reply(mynetwork_style=subnet)。事務(wù)上,通常利用Postfix中的mynetworks來(lái)限制允許Relay的主機(jī)范圍。
因?yàn)镾use默認(rèn)是利用YaST來(lái)設(shè)定Postfix,如想自己手動(dòng)設(shè)置postfix,需修改/etc/sysocnfig/mail中
MAIL_CREATE_CONFIG="yes"-->no
SMTPD_LISTEN_REMOTE="no"-->yes
過(guò)濾掉main.cf中的說(shuō)明內(nèi)容,可以使用這條命令:#grep'^[^#]'/etc/postfix/main.cf
建議是在過(guò)濾前備份原文件,文件中的說(shuō)明是非常有用的,唯一的缺點(diǎn)是E文的。
myhostname
此為mailserver的主機(jī)名,如果安裝時(shí)有設(shè)置或者使用YaST修改過(guò)主機(jī)名,此選項(xiàng)默認(rèn)會(huì)被設(shè)置,當(dāng)然,檢查下最好了。
例如:myhostname=mailtest.tm
mydomain
此為設(shè)置域名,在main.cf中沒(méi)有這個(gè)設(shè)定值,其默認(rèn)值就是你設(shè)置主機(jī)名時(shí)候的域名名稱(chēng)。
例如:mydomain=mailtest.tm
mail:#postconfmydomain
mydomain=mailtest.tm
inet_interface(解除只在127.0.0.1的port25上監(jiān)聽(tīng)的限制)
默認(rèn)值為127.0.0.1,會(huì)造成外部MUA,MTA無(wú)法跟postfix交互,建議更改為all。也可以使用postconf指令來(lái)修改,如下:
mail:~#postconfinet_interfaces
inet_interfaces=127.0.0.1::1<-127.0.0.1
mail:~#postconf-e'inet_interfaces=all'<-利用postconf指令修改
mail:~#postconfinet_interfaces
inet_interfaces=all
mynetworks_style設(shè)定允許relay郵件的具體方式,默認(rèn)值為:subnet,主要有以下3種方式:
class:會(huì)根據(jù)服務(wù)器設(shè)置的IP地址屬于A/B/C中的哪一類(lèi)地址,來(lái)決定允許relay的服務(wù)器
例如mailserver地址為220.11.35.2,則允許所有220.x.x.x的IP都可以利用你的mailserver來(lái)做郵件轉(zhuǎn)發(fā)relay,這個(gè)是非常危險(xiǎn)的,你的mailserver非常容易成為垃圾郵件的載體,強(qiáng)烈建議,不使用class方式
subnet:根據(jù)mailserver的IP及netmask計(jì)算,只允許同一個(gè)網(wǎng)段的主機(jī)利用你的mailserver來(lái)relay郵件。
host:如設(shè)定為host,則只允許localhost可以relay郵件
mynetworks(允許IP/netmask及本機(jī)可以realy郵件)
指定可以使用此mailserver來(lái)relay郵件的IP/netmask。如果mynetwoks跟mynetworks_style同時(shí)設(shè)置,則myneworks會(huì)覆蓋mynetworks_style的值。
myorigin
當(dāng)使用mail命令來(lái)收發(fā)郵件時(shí),如果沒(méi)有指定@mailtest.tm,postfix會(huì)自動(dòng)根據(jù)myorigin中的設(shè)置,來(lái)自動(dòng)補(bǔ)齊地址。
mydestination
此參數(shù)非常重要,postfix默認(rèn)使用此參數(shù)來(lái)判斷收到的信件是否為本地信件,其默認(rèn)值應(yīng)該包含$myhostname
使用postconf命令時(shí),后面的參數(shù),請(qǐng)用單引號(hào)',勿用雙引號(hào)"。
Suse使用qpopper作為pop3工具
沒(méi)有的話,自己安裝下,安裝完成后,使用如下命令進(jìn)行檢查及啟動(dòng)服務(wù),qpopper是由xinetd服務(wù)來(lái)管理的,所以重啟是需要啟動(dòng)xinetd,當(dāng)然首先是要確定服務(wù)是on的
#chkconfig--listqpopper
#chkconfigqpopperon
#rcxinetdrestart
mailserver的DNS,默認(rèn)使用/etc/resolv.conf中設(shè)置的dns服務(wù)器來(lái)做解析,所以,完全沒(méi)有必要在mailserver上再架設(shè)DNSserver。當(dāng)然,你有興趣搞定,那是perfect。筆者嘗試過(guò)powerdns+dnscache,比傳統(tǒng)的bind好用,支持web維護(hù),后話了。。。,有空也整理這塊,^_^。
使用Postfix+SASL來(lái)完成SMTP的SMTP-AUTH功能
Postfix本身并無(wú)帳號(hào)認(rèn)證機(jī)制,故使用系統(tǒng)SASLservice來(lái)做這塊,工作原理是,當(dāng)postfix發(fā)現(xiàn)有人要relay郵件時(shí),會(huì)將帳號(hào)及密碼信息傳給SASL(saslauthddaemon),SASL會(huì)根據(jù)自己的驗(yàn)證方式,比如對(duì)/etc/passwd及/etc/shadow來(lái)決定是否可以relay郵件。
修改mynetworks為127.0.0.1可以relay郵件,所以此時(shí)當(dāng)MUA嘗試將郵件郵寄至另一臺(tái)mailserver時(shí),會(huì)出現(xiàn)rlayaccessdenied的錯(cuò)誤提示
mail:~#postconf-e'mynetworks=127.0.0.1'
mail:~#postconfmynetworks
mynetworks=127.0.0.1
mail:~#rcpostfixrestart
Shuttingdownmailservice(Postfix)done
Startingmailservice(Postfix)done
修改/etc/postfix/main.cf
mail:~#vi/etc/postfix/main.cf
smtpd_sasl_auth_enable=yes
smtpd_sasl_security_options=noanonymous
broken_sasl_auth_clients=yes
smtpd_recipient_restrictions=permit_sasl_authenticated,
permit_mynetworks,reject_unauth_destination
(注意,在main.cf中,縮進(jìn)是意味著上一行的延續(xù),可以看成是同一行)
利用postconf方式如下:
postconf-e'smtpd_sasl_auth_enable=yes'
postconf-e'smtpd_sasl_security_options=noanonymous'
postconf-e'broken_sasl_auth_clients=yes'
postconf-e
'smtpd_recipient_restrictions=permit_sasl_authenticated,
permit_mynetworks,reject_unauth_destination'
上述參數(shù)的解釋如下:
smtpd_sasl_auth_enable:開(kāi)啟mailclient啟動(dòng)sasl認(rèn)證,默認(rèn)此項(xiàng)是不開(kāi)啟的
smtpd_sasl_security_options:取消匿名登陸方式
broken_sasl_auth_clients:開(kāi)啟此項(xiàng)的目的是讓不支持RFC2554的smtpclient也可以跟postfix做交互。
smtpd_recipient_restrictions:設(shè)定郵件中有關(guān)收件人部分的限制,(rcptto:<收件人e-mail>),應(yīng)用規(guī)則是[第一條符合后,便不會(huì)往下繼續(xù)檢查]。
permit_sasl_authenticated:允許使用sasl認(rèn)證方式的使用者relay郵件
permit_mynetworks:允許mynetworks中設(shè)置的用戶relay郵件
reject_unauth_destination:阻止@xxx.xxx,不在my_destination中的地址,退回他們的郵件。
修改系統(tǒng)sasl的相關(guān)設(shè)置vi/etc/sysconfig/saslauthd
##Path:System/Security/SASL
##Type:list(getpwent,kerberos5,pam,rimap,shadow,ldap)
##Default:pam
##ServiceRestart:saslauthd
#
#Authenticationmechanismtousebysaslauthd.
#Seeman8saslauthdforavailablemechanisms.
#
SASLAUTHD_AUTHMECH=pam
看這里是否為pam,其實(shí)默認(rèn)就是使用pam的,主要檢查下
檢查,啟動(dòng)saslauthdservice
#chkconfig--listsaslauthd
#rcsaslauthdstart
重新啟動(dòng)postfix
#rcpostfixrestart
部門(mén)郵件,郵件列表功能/etc/aliases,其語(yǔ)法如下:
mail帳號(hào):真實(shí)帳號(hào)1,真實(shí)帳號(hào)2,真實(shí)帳號(hào)3
mail帳號(hào)::include:郵寄人名單
例如:
vi/etc/aliases
mis:ray,fly,edison
vi/etc/aliases
allusers::include:/etc/allusers
前者直接寫(xiě)明帳號(hào),適合人員少的情況;后者使用了一個(gè)文件,適合大量人員的情況
重新生成aliases.db,執(zhí)行
#newaliases
#ls-l/etc/aliases
-rw-r--r--1rootroot2579Jun162006aliases
-rw-r--r--1rootroot12288Dec2302:54aliases.db
同時(shí),利用/etc/aliases文件,還能實(shí)現(xiàn)郵件的簡(jiǎn)單轉(zhuǎn)發(fā)功能
#vi/etc/aliases
ray:ray,fly(這里郵寄給ray的信件會(huì)同時(shí)轉(zhuǎn)發(fā)給ray和fly)
#newaliases
利用此文件有一個(gè)明顯的缺點(diǎn):只有root用戶有操作權(quán)限,普通用戶無(wú)法直接操作,提供如下方法,可以使普通用戶也有權(quán)限。
以普通用戶登陸后,創(chuàng)建~/.forward文件
\ray,fly
或者簡(jiǎn)化為
ray,fly
利用~/.forward還可以使用vacation命令來(lái)做假期郵件自動(dòng)回復(fù)
在用戶的家目錄,編譯.forward文件
ray@mailtest:~>vi.forward
\neo,"|/usr/bin/vacationneo"
編寫(xiě)內(nèi)容文件vi~/.vacation.msg
Subject:ray1/10~1/22休假
7/10~7/20我正在休假中
有關(guān)你的Mail"$SUBJECT"
我回來(lái),會(huì)盡快處理
初始化vacation庫(kù),使用如下命令
ray@mailtest:~>vacation-i
取消自動(dòng)回復(fù),只需要?jiǎng)h除或重新命名.forward文件即可。
Postfix的轉(zhuǎn)錄機(jī)制(always_bcc)
Postfix可以設(shè)置把所有收到和寄出的郵件,都轉(zhuǎn)發(fā)到某個(gè)帳號(hào)里,設(shè)定非常簡(jiǎn)單
mailtest:~#postconfalways_bcc
always_bcc=<-默認(rèn)值為空
mail:~#postconf-e'always_bcc=ray@mailtest.tm'
此功能適合對(duì)信息安全要求較高的公司,或者滿足保留公司郵件的需要,很多外國(guó)公司,按照他們的法律,所有的郵件都要保存7年,比如美國(guó)。通過(guò)本文的介紹,我想大家也逐漸熟悉了Suse Postfix配置,希望本文對(duì)你有所幫助。
【編輯推薦】

















