你的Postfix郵件伺服器安全麼?

2021-09-03 04:59:13 字數 4019 閱讀 5164

postfix是linux上常用的郵件伺服器之一。本文對postfix郵件伺服器的引數進行了簡述,並著重介紹了配置過程中需要注意的安全事項。

原文請見:

快速配置postfix郵件伺服器

postfix最被人稱道的地方就在於其配置檔案的可讀性很高。postfix的主配置檔案是/etc/postfix/main.cf。

在main.cf檔案中,引數都是以類似變數的設定方法來設定的,這些引數的使用主要包含兩部分的內容:

(1)定義和宣告變數:例如definename = good-better-best。等號左邊是變數的名稱,等號右邊是變數的值。

(2)引用變數:可以在變數的前面加上符號「$」來引用該變數,如:myname = $ definename(相當於definename = good-better-best)。

需要注意的是:等號兩邊需要有空格字元。此外,如果變數有兩個以上的設定值,就必須用逗號「,」或者空格符「 」將它們分開。

在熟悉了上述變數的定義和引用方法後,下面詳細介紹如何安全、高效地配置postfix伺服器的相關選項。

1.設定postfix服務監聽的網路介面

預設情況下,inet_inte***ces引數的值被設定為localhost,這表明只能在本地郵件主機上寄信。如果郵件主機上有多個網路介面,而又不想使全部的網路介面都開放postfix服務,就可以用主機名指定需要開放的網路介面。不過,通常是將所有的網路介面都開放,以便接收從任何網路介面來的郵件,即將inet_inte***ces引數的值設定為「all」,如下所示:

inet_inte***ces = all
2.安全設定可接收郵件的主機名稱或網域名稱

mydestination引數非常重要,因為只有當發來的郵件的收件人位址與該引數值相匹配時,postfix才會將該郵件接收下來。通過該選項的設定可以過濾掉許多沒有經過認證和授權的郵件,從而節省伺服器的儲存空間,以及節省使用者的郵件處理時間。

舉乙個簡單的例子,使用者可以將該引數值設定為如下:

accept_domain = test.net

mydestination = $accept_domain

這就表明無論來信的收件人位址是[email protected](其中x表示某使用者在test.net域中的郵件賬戶名),postfix都會接收這些郵件。而除此之外的郵件,postfix都不會接受。

3.安全設定可**郵件的網路(ip設定)

有關安全設定可**郵件的網路可以使用mynetworks引數來設定。可將該引數值設定為所信任的某台主機的ip位址,也可設定為所信任的某個ip子網或多個ip子網(採用「,」或者「 」分隔)。

比如,使用者可以將mynetworks引數值設定為172.168.96.0/24,則表示這台郵件主機只**子網172.168.96.0/24中的客戶端所發來的郵件,而拒絕為其他子網**郵件:

mynetworks = 172.168.96.0/24
除了mynetworks引數外,還有乙個用於控制網路郵件**的引數是mynetworks-style,它主要用來設定可**郵件網路的方式。通常有以下三種方式:

(3)host:在這種方式下,postfix只會開放本機。

通常,使用者一般不需要設定mynetworks-style引數,而直接設定mynetworks引數。如果這兩個引數都進行了設定,那麼mynetworks引數的設定有效。

4.設定可**郵件的網路(網域名稱設定)

上面介紹的mynetworks引數是針對郵件**的ip來設定的,而relay_domains引數則是針對郵件**的網域名稱或主機名來設定的,其實從原理上來說是一致的,不過是區分了ip位址和網域名稱而已,不過,relay_domains還需要依賴dns這個基礎設施。

例如,使用者可以將relay_domains引數值設定為test.net,則表示任何由域test.net發來的郵件都會被認為是信任的,postfix會自動對這些郵件進行**,如下所示:

relay_domains = test.net
那麼,要使它能在實際網路中更好地**郵件,還必須進行相應的dns設定。那麼,需要在該網路的dns伺服器上定義了乙個主區域test.net,並在該區域配置檔案中定義了以下記錄:

//定義郵件伺服器的ip位址

patterson.test.net. in a 172.168.96.254

//定義郵件伺服器的別名

mail.test.net. in cname patterson.test.net.

//定義優先級別

上述記錄只對郵件伺服器進行了定義,還有諸如soa、ns等的定義,在這裡就不再贅述。

配置postfix使用smtp安全認證

postfix預設不會對外開放**功能,而僅對本機(localhost)開放**功能。但是,在實際應用中,必須在postfix主配置檔案中通過設定mynetworks、relay_domains引數來開放一些所信任的網段或網域,否則該郵件伺服器幾乎沒有什麼用處。在開放了這些所信任的網段或網域後,還可以通過設定smtp認證,對要求**郵件的客戶端進行使用者身份(使用者賬戶名與密碼)驗證。只有通過了驗證,才能接收該使用者寄來的郵件並幫助**。同樣,postfix中目前比較常用的smtp認證機制是通過cyrus sasl包來實現的。

預設情況下,postfix並沒有啟用smtp認證機制。要讓postfix啟用smtp認證,就必須對postfix的主配置檔案/etc/postfix/main.cf進行修改。使用者需要在main.cf檔案中新增如下有關smtp認證的設定部分:

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain = ''

smtpd_recipient_restrictions = permit_mynetworks

permit_sasl_authenticated, reject_unauth_destination

broken_sasl_auth_clients=yes

smtpd_client_restrictions = permit_sasl_authenticated

smtpd_sasl_security_options = noanonymous

其中,每個選項的具體含義如下:

(1)smtpd_sasl_auth_enable:指定是否要啟用sasl作為smtp認證方式。預設不啟用,這裡必須將它啟用,所以要將該引數值設定為yes。

(2)smtpd_sasl_local_domain:如果採用cyrus-sasl版進行認證,那麼這裡不做設定。

permit_sasl_authenticated:表示允許**通過sasl認證的郵件。

(4)broken_sasl_auth_clients:表示是否相容非標準的smtp認證。有一些microsoft的smtp客戶端採用非標準的smtp認證協議,只需將該引數設定為yes就可解決這類不相容問題。

(5)smtpd_client_restrictions:表示限制可以向postfix發起smtp連線的客戶端。如果要禁止未經過認證的客戶端向postfix發起smtp連線,則可將該引數值設定為permit_sasl_authenticated。

(6)smtpd_sasl_security_options:用來限制某些登入的方式。如果將該引數值設定為noanonymous,則表示禁止採用匿名登入方式。

在完成上述設定後,必須使用

/etc/init.d/postfix reload
重新載入配置檔案,或使用

/etc/init.d/postfix restart
重新啟動postfix服務,以使該配置生效。這兩個命令的具體使用需要根據不同的linux版本來選用。

此外,由於當postfix要使用smtp認證時,會讀取/usr/lib/sasl2/smtpd.conf檔案中的內容,以確定所採用的認證方式,因此如果要使用saslauthd這個守護程序來進行密碼認證,就必須確保/usr/lib/sasl2/smtpd.conf檔案中的內容為:

pwcheck_method: saslauthd

你的Postfix郵件伺服器安全麼?

postfix是linux上常用的郵件伺服器之一。本文對postfix郵件伺服器的引數進行了簡述,並著重介紹了配置過程中需要注意的安全事項。原文請見 快速配置postfix郵件伺服器 postfix最被人稱道的地方就在於其配置檔案的可讀性很高。postfix的主配置檔案是 etc postfix m...

postfix郵件伺服器安全

分析smtp傳送 把內部ip從郵件 的信任網路中去掉,然後測試郵件傳送 依靠郵件發件人 root slackbox telnet mail.com 25 trying 10.70.253.52.connected to mail.com.escape character is 220 mail.co...

postfix郵件伺服器安全

分析smtp傳送 把內部ip從郵件 的信任網路中去掉,然後測試郵件傳送 依靠郵件發件人 root slackbox telnet mail.com 25 trying 10.70.253.52.connected to mail.com.escape character is 220 mail.co...