<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    分享java帶來(lái)的快樂(lè)

    我喜歡java新東西

    Postfix的配置詳解

    4.1 postfix的配置文件結(jié)構(gòu)

    postfix的配置文件位于/etc/postfix下,安裝完postfix以后,我們可以通過(guò)ls命令查看postfix的配置文件:

    [root@mail postfix]# ls

    install.cf main.cf master.cf postfix-script

    這四個(gè)文件就是postfix最基本的配置文件,它們的區(qū)別在于:

    mail.cf:是postfix主要的配置文件。

    Install.cf:包含安裝過(guò)程中安裝程序產(chǎn)生的postfix初始化設(shè)置。

    master.cf:是postfix的master進(jìn)程的配置文件,該文件中的每一行都是用來(lái)配置postfix的組件進(jìn)程的運(yùn)行方式。

    postfix-script:包裝了一些postfix命令,以便我們?cè)趌inux環(huán)境中安全地執(zhí)行這些postfix命令。

    4.2 postfix的基本配置

    postfix大約有100個(gè)配置參數(shù),這些參數(shù)都可以通過(guò)main.cf 指定。配置的格式是這樣的,用等號(hào)連接參數(shù)和參數(shù)的值。如:

    myhostname = mail.mydomain.com

    等號(hào)的左邊是參數(shù)的名稱,等號(hào)的右邊是參數(shù)的值; 當(dāng)然,我們也可以在參數(shù)的前面加上$來(lái)引用該參數(shù),如:

    myorigin = $myhostname

    雖然postfix有100個(gè)左右的參數(shù),但是 postfix為大多數(shù)的參數(shù)都設(shè)置了缺省值,所以在讓postfix正常為你服務(wù)之前,你只需要配置為數(shù)不多的幾個(gè)參數(shù)。下面我們一起來(lái)看一看這些基本的postfix參數(shù)。需要注意的是,一旦你更改了main.cf文件的內(nèi)容,則必須運(yùn)行 postfix reload命令使其生效。

    1. myorigin

    myorigin參數(shù)指明發(fā)件人所在的域名。如果你的用戶的郵件地址為user@domain.com,則該參數(shù)指定@后面的域名。缺省地, postfix使用本地主機(jī)名作為myorigin,但是建議你最好使用你的域名,因?yàn)檫@樣更具有可讀性。比如:安裝postfix的主機(jī)為 mail.domain.com則我們可以這樣指定myorigin:

    myorigin = domain.com

    當(dāng)然我們也可以引用其他參數(shù),如:

    myorigin = $mydomain

    2. mydestination

    mydestination參數(shù)指定postfix接收郵件時(shí)收件人的域名,換句話說(shuō),也就是你的postfix系統(tǒng)要接收什么樣的郵件。比如:你的用戶的郵件地址為user@domain.com, 也就是你的域?yàn)閐omain.com, 則你就需要接收所有收件人為user_name@domain.com的郵件。與myorigin一樣,缺省地,postfix使用本地主機(jī)名作為 mydestination。如:

    mydestination = $mydomain

    mydestination = domain.com

    3. notify_classes

    在postfix系統(tǒng)中,必須指定一個(gè)postfix系統(tǒng)管理員的別名指向一個(gè)用戶,

    只有這樣,在用戶遇到問(wèn)題時(shí)才有報(bào)告的對(duì)象,postfix也才能將系統(tǒng)的問(wèn)題報(bào)告給管理員。notify_classes參數(shù)就是用來(lái)指定向postfix管理員報(bào)告錯(cuò)誤時(shí)的信息級(jí)別。共有以下幾種級(jí)別:

    bounce:將不可以投遞的郵件的拷貝發(fā)送給postfix管理員。出于個(gè)人隱私的緣故,該郵件的拷貝不包含信頭。

    2bounce:將兩次不可投遞的郵件拷貝發(fā)送給postfix管理員。

    delay:將郵件的投遞延遲信息發(fā)送給管理員,僅僅包含信頭。

    policy:將由于UCE規(guī)則限制而被拒絕的用戶請(qǐng)求發(fā)送給postfix管理員,包含整個(gè)SMTP會(huì)話的內(nèi)容。

    protocol:將協(xié)議的錯(cuò)誤信息或用戶企圖執(zhí)行不支持的命令的記錄發(fā)送給postfix管理員。同樣包含整個(gè)SMTP會(huì)話的內(nèi)容。

    resource:將由于資源錯(cuò)誤而不可投遞的錯(cuò)誤信息發(fā)送給postfix管理員,比如:隊(duì)列文件寫錯(cuò)誤等等。

    software:將由于軟件錯(cuò)誤而導(dǎo)致不可投遞的錯(cuò)誤信息發(fā)送給postfix管理員。

    缺省值為:

    notify_classes = resource, software

    4.myhostname

    myhostname 參數(shù)指定運(yùn)行postfix郵件系統(tǒng)的主機(jī)的主機(jī)名。缺省地,該值被設(shè)定為本地機(jī)器名。你也可以指定該值,需要注意的是,要指定完整的主機(jī)名。如:

    myhostname = mail.domain.com

    5.mydomain

    mydomain參數(shù)指定你的域名,缺省地,postfix將myhostname的第一部分刪除而作為mydomain的值。你也可以自己指定該值,如:

    mydomain = domain.com

    6.mynetworks

    mynetworks 參數(shù)指定你所在的網(wǎng)絡(luò)的網(wǎng)絡(luò)地址,postfix系統(tǒng)根據(jù)其值來(lái)區(qū)別用戶是遠(yuǎn)程的還是本地的,如果是本地網(wǎng)絡(luò)用戶則允許其訪問(wèn)。你可以用標(biāo)準(zhǔn)的A、B、C類網(wǎng)絡(luò)地址,也可以用CIDR(無(wú)類域間路由)地址來(lái)表示,如:

    192.168.1.0/24

    192.168.1.0/26

    7.inet_interfaces

    inet_interfaces 參數(shù)指定postfix系統(tǒng)監(jiān)聽(tīng)的網(wǎng)絡(luò)接口。缺省地,postfix監(jiān)聽(tīng)所有的網(wǎng)絡(luò)接口。如果你的postfix運(yùn)行在一個(gè)虛擬的ip地址上,則必須指定其監(jiān)聽(tīng)的地址。如:

    inet_interfaces = all

    inet_interface = 192.168.1.1

    4.3 postfix的UCE(unsolicited commercial email)控制

    所謂UCE控制就是指控制postfix接收或轉(zhuǎn)發(fā)來(lái)自于什么地方的郵件。

    缺省地,postfix轉(zhuǎn)發(fā)符合以下條件的郵件:

    * 來(lái)自客戶端ip地址符合$mynetworks的郵件。

    * 來(lái)自客戶端主機(jī)名符合$relay_domains及其子域的郵件。

    * 目的地為$relay_domains及其子域的郵件。

    缺省地,postfix接受符合以下條件的郵件:

    * 目的地為$inet_interfaces的郵件。

    * 目的地為$mydestination的郵件。

    * 目的地為$virtual_maps的郵件。

    但是我們也可以通過(guò)下面的規(guī)則來(lái)實(shí)現(xiàn)更強(qiáng)大的控制功能。

    1. 信頭過(guò)濾

    通過(guò)header_checks參數(shù)限制接收郵件的信頭的格式,如果符合指定的格式,則拒絕接收該郵件。可以指定一個(gè)或多個(gè)查詢列表,如果新郵件的信頭符合列表中的某一項(xiàng)則拒絕該接收郵件。如:

    header_checks = regexp:/etc/postfix/header_checks

    header_checks = pcre:/etc/postfix/header_checks

    缺省地,postfix不進(jìn)行信頭過(guò)濾。

    2.客戶端主機(jī)名/地址限制

    通過(guò)smtpd_client_restrictions參數(shù)限制可以向postfix發(fā)起SMTP 連接的客戶端的主機(jī)名或ip地址。可以指定一個(gè)或多個(gè)參數(shù)值,中間用逗號(hào)隔開(kāi)。限制規(guī)則是按照查詢的順序進(jìn)行的,第一條符合條件的規(guī)則被執(zhí)行。可用的規(guī)則有:

    reject_unknown_client:如果客戶端的ip 地址在DNS中沒(méi)有PTR記錄則拒絕轉(zhuǎn)發(fā)該客戶端的連接請(qǐng)求。可以用 unknown_client_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為450)。如果你有用戶沒(méi)有作DNS記錄則不要啟用該選項(xiàng)。

    permit_mynetworks:如果客戶端的ip地址符合$mynetworks參數(shù)定義的范圍則接受該客戶端的連接請(qǐng)求,并轉(zhuǎn)發(fā)該郵件。

    check_client_access maptype:mapname:根據(jù)客戶端的主機(jī)名、父域名、ip地址或?qū)儆诘木W(wǎng)絡(luò)搜索access數(shù)據(jù)庫(kù)。如果搜索的結(jié)果為REJECT 或者 '[45]XX text' 則拒絕該客戶端的連接請(qǐng)求;如果搜索的結(jié)果為OK、RELAY 或數(shù)字則接受該客戶端的連接請(qǐng)求,并轉(zhuǎn)發(fā)該郵件。。可以用access_map_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為 554)。

    reject_maps_rbl:如果客戶端的網(wǎng)絡(luò)地址符合$maps_rbl_domains參數(shù)的值則拒絕該客戶端的連接請(qǐng)求。可以用maps_rbl_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為554)。

    示例:

    smtpd_client_restrictions = hash:/etc/postfix/access, reject_maps_rbl

    smtpd_client_restrictions = permit_mynetworks, reject_unknown_client

    該參數(shù)的缺省值為:

    smtpd_client_restrictions =

    也即接收來(lái)自任何客戶端的SMTP連接。

    3. 是否請(qǐng)求HELO命令

    可以通過(guò)smtpd_helo_required參數(shù)指定客戶端在SMTP會(huì)話的開(kāi)始是否發(fā)送一個(gè)HELO命令。你可以指定該參數(shù)的值為yes或no。缺省值為:

    smtpd_helo_required = no

    4. HELO主機(jī)名限制

    可以通過(guò)smtpd_helo_restrictions參數(shù)指定客戶端在執(zhí)行HELO命令時(shí)發(fā)送給postfix的主機(jī)名。缺省地, postfix 接收客戶端發(fā)送的任意形式的主機(jī)名。可以指定一個(gè)或多個(gè)參數(shù)值,中間用逗號(hào)隔開(kāi)。限制規(guī)則是按照查詢的順序進(jìn)行的,第一條符合條件的規(guī)則被執(zhí)行。可用的規(guī)則有:

    reject_invalid_hostname:如果HELO命令所帶的主機(jī)名參數(shù)不符合語(yǔ)法規(guī)范則拒絕客戶機(jī)的連接請(qǐng)求。可以用invalid_hostname_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為501)。

    permit_naked_ip_address:RFC要求客戶端的HELO命令包含的ip地址放在方括號(hào)內(nèi),你可以用permit_naked_ip_address參數(shù)取消該限制。因?yàn)橛械膍ail客戶端不遵守該RFC的規(guī)定。

    reject_unknown_hostname:如果客戶端執(zhí)行HELO命令時(shí)的主機(jī)名在DNS中沒(méi)有相應(yīng)的A 或 MX 記錄則拒絕該客戶端的連接請(qǐng)求。可以用invalid_hostname_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為450)。

    reject_non_fqdn_hostname:如果客戶端執(zhí)行HELO命令時(shí)的主機(jī)名不是RFC規(guī)定的完整的域名則拒絕客戶端的連接請(qǐng)求。可以用invalid_hostname_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為504)。

    check_helo_access maptype:mapname:根據(jù)客戶端HELO的主機(jī)名、父域名搜索access數(shù)據(jù)庫(kù)。如果搜索的結(jié)果為REJECT 或者 '[45]XX text' 則拒絕該客戶端的連接請(qǐng)求;如果搜索的結(jié)果為OK、RELAY 或數(shù)字則接受該客戶端的連接請(qǐng)求。可以用access_map_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為554)。

    示例:

    smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname

    5. RFC 821信頭限制

    RFC 821對(duì)郵件的信頭做了嚴(yán)格的規(guī)定,但是廣泛使用的sendmail并不支

    持該規(guī)定,所以對(duì)于該參數(shù)我們只能說(shuō)不,即:

    strict_rfc821_envelopes = no

    6. 通過(guò)發(fā)件人地址進(jìn)行限制

    可以用smtpd_sender_restrictions參數(shù)通過(guò)發(fā)件人在執(zhí)行MAIL FROM命令時(shí)提供的地址進(jìn)行限制。可以指定一個(gè)或多個(gè)參數(shù)值,中間用逗號(hào)隔開(kāi)。限制規(guī)則是按照查詢的順序進(jìn)行的,第一條符合條件的規(guī)則被執(zhí)行。可用的規(guī)則有:

    reject_unknown_sender_domain:如果MAIL FROM命令提供的主機(jī)名在DNS中沒(méi)有相應(yīng)的A 或 MX 記錄則拒絕該客戶端的連接請(qǐng)求。可以用unknown_address_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為450)。

    check_sender_access maptype:mapname:根據(jù)MAIL FROM命令提供的主機(jī)名、父域搜索access數(shù)據(jù)庫(kù)。如果搜索的結(jié)果為REJECT 或者 '[45]XX text' 則拒絕該客戶端的連接請(qǐng)求;如果搜索的結(jié)果為OK、RELAY 或數(shù)字則接受該客戶端的連接請(qǐng)求。可以用access_map_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為554)。可以通過(guò)該參數(shù)過(guò)濾來(lái)自某些不受歡迎的發(fā)件人的郵件。

    reject_non_fqdn_sender:如果MAIL FROM命令提供的主機(jī)名不是RFC規(guī)定的完整的域名則拒絕客戶端的連接請(qǐng)求。可以用non_fqdn_reject_code 參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為504)。

    缺省地,postfix接受來(lái)自任何發(fā)件人的郵件。

    示例:

    smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain

    7. 通過(guò)收件人地址進(jìn)行過(guò)濾

    可以用smtpd_recipient_restrictions參數(shù)通過(guò)發(fā)件人在執(zhí)行RCPT TO命令時(shí)提供的地址進(jìn)行限制。缺省值為:

    smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains

    可以指定一個(gè)或多個(gè)參數(shù)值,中間用逗號(hào)隔開(kāi)。限制規(guī)則是按照查詢的順序進(jìn)行的,第一條符合條件的規(guī)則被執(zhí)行。可用的規(guī)則有:

    check_relay_domains:如果符合以下的條件,則接受SMTP連接請(qǐng)求,否則拒絕該連接,可以用relay_domains_reject_code 參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為504)。

    * 客戶端主機(jī)名符合$relay_domains及其子域

    * 目的地為$inet_interfaces、$mydestination或$virtual_maps

    permit_auth_destination:不管客戶端的主機(jī)名,只要符合以下的條件,就

    接受SMTP連接請(qǐng)求:

    * 解析后的目標(biāo)地址符合$relay_domains及其子域

    * 解析后的目標(biāo)地址符合$inet_interfaces、$mydestination或$virtual_maps

    reject_unauth_destination:不管客戶端的主機(jī)名,只要符合以下的條件,就拒絕該客戶端SMTP連接請(qǐng)求:

    * 解析后的目標(biāo)地址符合$relay_domains及其子域

    * 解析后的目標(biāo)地址符合$inet_interfaces、$mydestination或$virtual_maps

    check_recipient_access:根據(jù)解析后的目標(biāo)地址、父域搜索access數(shù)據(jù)庫(kù)。如果搜索的結(jié)果為REJECT 或者 '[45]XX text' 則拒絕該客戶端的連接請(qǐng)求;如果搜索的結(jié)果為OK、RELAY 或數(shù)字則接受該客戶端的連接請(qǐng)求。可以用access_map_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為554)。

    reject_unknown_recipient_domain:如果收件人的郵件地址在DNS中沒(méi)有相應(yīng)的A 或 MX 記錄則拒絕該客戶端的連接請(qǐng)求。可以用unknown_address_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為450)。

    reject_non_fqdn_recipient:如果發(fā)件人在執(zhí)行RCPT TO命令時(shí)提供的地址

    不是完整的域名則拒絕其SMTP連接請(qǐng)求。可以用The non_fqdn_reject_code參數(shù)指定返回給客戶機(jī)的錯(cuò)誤代碼(缺省為504)。

    4.4 posftfix的性能控制

    之所以對(duì)postfix的性能進(jìn)行控制,是為了在遇到郵件風(fēng)暴時(shí)保證postfix可以正常運(yùn)行。通常,我們可以通過(guò)對(duì)下列postfix 參數(shù)的配置來(lái)調(diào)節(jié)postfix的性能,這些參數(shù)都是通過(guò)mail.cf配置文件進(jìn)行配置的,修改以后不要忘了運(yùn)行postfix reload命令來(lái)使配置生效。

    1. 進(jìn)程數(shù)限制

    可以通過(guò)default_process_limit 參數(shù)來(lái)控制postfix系統(tǒng)同時(shí)可以運(yùn)行的最大進(jìn)程數(shù)目。缺省值是50個(gè)。

    2. 對(duì)同一目標(biāo)主機(jī)的并發(fā)連接限制

    當(dāng)向同一目標(biāo)主機(jī)發(fā)出SMTP連接時(shí),postfix初始化發(fā)出兩個(gè)SMTP連接,如果投遞成功則增加并發(fā)的SMTP連接數(shù)目,遇到擁塞時(shí)又減少并發(fā)連接的數(shù)目。postfix中通過(guò)以下的參數(shù)對(duì)同一目標(biāo)主機(jī)的并發(fā)連接進(jìn)行控制:

    * initial_destination_concurrency:控制對(duì)同一目標(biāo)主機(jī)的初始化并發(fā)連接數(shù)目。缺省值為2。

    * default_destination_concurrency_limit:控制初始化連接后對(duì)同一目標(biāo)主機(jī)的最大并發(fā)連接數(shù)目。缺省值為10。

    * local_destination_concurrency_limit:控制對(duì)同一本地收件人的最大同時(shí)投遞的郵件數(shù)目。缺省值為2,因?yàn)閷?duì)本地同一收件人投遞郵件時(shí)投遞工作只能一個(gè)接一個(gè)的進(jìn)行,所以設(shè)得在大也沒(méi)用。

    3. 對(duì)同一封郵件的收件人數(shù)目限制

    通過(guò)default_destination_recipient_limit參數(shù)來(lái)控制postfix的投遞代理(如

    smtp進(jìn)程)可以將同一封郵件發(fā)送給多少個(gè)收件人。缺省值為50。也可以用明確指出該投遞代理的參數(shù)來(lái)覆蓋該缺省值。如用smtpd_recipient_limit來(lái)指定smtp投遞代理可以將同一封郵件發(fā)送給多少個(gè)收件人,該參數(shù)的缺省值為1000。

    4. 推遲投遞控制

    通過(guò)defer_transports參數(shù),我們可以推遲投遞該參數(shù)指定的郵件直到postfix明確的提出投遞要求。下面我們看一個(gè)例子:

    有一個(gè)小型的局域網(wǎng),用戶都將郵件發(fā)送給局域網(wǎng)內(nèi)部的一臺(tái)postfix郵件服務(wù)器,然后通過(guò)在該服務(wù)器上撥號(hào)將郵件發(fā)送出去。這時(shí)我們可以這樣指定該參數(shù)的值:

    defer_transports = smtp

    該語(yǔ)句表示postfix推遲投遞所有的郵件直到執(zhí)行sendmail -q命令,這樣我們就可以在ppp的腳本中加上sendmail -q,以便在撥號(hào)成功后讓postfix開(kāi)始投遞郵件。

    posted on 2011-12-11 19:36 強(qiáng)強(qiáng) 閱讀(567) 評(píng)論(0)  編輯  收藏 所屬分類: linux 操作系統(tǒng)配置sendmail

    主站蜘蛛池模板: 又长又大又粗又硬3p免费视频| 巨胸喷奶水视频www网免费| 亚洲另类无码专区首页| 亚洲AV无码乱码国产麻豆| 国产一区视频在线免费观看 | 成人免费午夜视频| 久久免费视频99| 七次郎成人免费线路视频| 亚洲综合欧美色五月俺也去| 91亚洲国产在人线播放午夜 | 一级做a爰片性色毛片免费网站 | 免费91麻豆精品国产自产在线观看| 欧洲亚洲综合一区二区三区| 日本亚洲色大成网站www久久 | 国产成人精品一区二区三区免费| 色婷婷综合缴情综免费观看| 亚洲国产aⅴ成人精品无吗| 亚洲成人黄色在线观看| 亚洲综合一区二区| 亚洲人成电影在线天堂| 久久国产精品亚洲综合| 亚洲国产精品无码中文字| 国产精品亚洲w码日韩中文| 国产在线观看免费不卡| 日本免费一区二区三区最新| 女人被免费视频网站| 毛片高清视频在线看免费观看| 色片在线免费观看| 国产91免费在线观看| 国产桃色在线成免费视频 | 亚洲人成色在线观看| 亚洲第一成年网站视频| 亚洲成AV人片在WWW| 亚洲精品国产精品| 亚洲国产精品嫩草影院| 国产亚洲成在线播放va| 一级黄色片免费观看| 精品一区二区三区高清免费观看| 久久免费香蕉视频| 中文字幕乱码一区二区免费| 免费成人高清在线视频|