Postfix軟體需求CentOS 6

(此編教學都是在CentOS 6下進行的,其它的Linux版本或是CentOS 5之前的版本可能不適用)

Postfix安裝

安裝指令

yum install postfix

CentOS 5之前預設的Mail Server服務是Sendmail,而在CentOS 6 後即是以Postfix當作預設的 Mail Server,Postfix比起Sendmail在設定上更容易上手,因此不需要像網路上其它的教學安裝system-switch-mail,因為system-switch-mail是用來將Sendmail切換成Postfix。

Postfix最主要的功能則是啟動SMTP的服務,也就是架設一台MTA(Mail Transfer Agent)。

Postfix設定

Postmail的主要設定都在”etc/postfix/main.cf”,編輯的方式如下

#vi /etc/postfix/main.cf

以下就來介紹要架設完一台MTA(也就是Mail Server的SMTP服務)的相關設定

1.設定Hostname,Hostname即是我們的郵件伺服器的主機名稱,是由英文字母或數字所組成,比如www.google.com或mail.google.com就是一個Hostname。Postmail的Hostname設定如下

尋找”#myhostname =”字串,預設會看到”#myhostname = host.domain.tld”和”#myhostname = virtual.domain.tld”這二行字串

請在這二行後面增加以下的字串設定即可

#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = 你的主機名稱		#新增此行,約加在第77 行

2.設定網域名稱(Domain Name),主機名稱通常都是在建立在網域名稱之內,像是www.google.com則是網頁服務,mail.google.com則會是郵件主機服務,通常網域名稱都會是主機名稱(Hostname)去掉第一個掉包含前面的文字部份,比如說www.google.com的Domain則是google.com。 以下則是Postfix的網域名稱設定方法

尋找”#mydomain =”字串,預設會看到”#mydomain =domain.tld”

新增一行如下

#mydomain =domain.tld
mydomain = 你的網域名稱         #新增此行,約加在第  85 行

3.設定Origin Name,Origin Name是我們的郵件位址在”@”後面的文字內容,比如像是[email protected],gmail.com就是我們的Origin Name,而stnet253則是郵件擁有人的帳號名稱。以下為Postfix的Origin Name的設定。

尋找”#myorigin = $mydomain”字串,將”#”移除,變成

#myorigin = $mydomain                               #刪除此行

myorigin = $mydomain                 #新增此行,約加在第  100 行

4.設定 postfix 的監聽介面,Postfix預設只會監聽來自於本機端的所傳出的封包,必須使用下列設定,才可以傳收所有來自於網路端的所有封包。

尋找”#inet_interfaces = all”字串,將”#”移除 (表示此行Enable) 。

後面的”inet_interfaces = localhost”字串,在最前面加上”#”(表示disable此行設定)

此步驟的設定內容整理如下

inet_interfaces = all			#修改此行,約在第 114 行
#inet_interfaces = $myhostname		
#inet_interfaces = $myhostname, locatlhost
#inet_interfaces = localhost		#修改此行,約在第 117 行

5.修改Postfix的通訊協定,目前網路的協定主流有IPv4與IPv6,在大部份的情況下,我們都是利用IPv4在通訊的,如果你的Mail Server沒有需要使用到IPv6,可以做以下的設定修改。

尋找” inet_protocols = all”字串,改成

inet_protocols = ipv4				#約在第 120 行

6.設定能收收信件的主機名稱,Postfix預設只能收到設定的Hostname與Domain Name以及本機端的信件,此步驟是再增加能收信件的網路名稱。

尋找”mydestination = $myhostname, localhost.$mydomain, localhost”字串,在最前面加入”#”(表示此行disable)。

將”#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain”的”#”移除(表示此行Enable)。

#mydestination = $myhostname, localhost.$mydomain, localhost

#修改此行,約在第 165行

mydestination = $myhostname, localhost.$mydomain, localhost, mydomain

#修改此行,約在第 166行

7.設定信任的用戶端,當要寄信時,會參考此值,若非信任的用戶,則不會幫你的信件轉到其它的MTA主機上

尋找”#mynetworks =”,在”#mynetworks = hash:/etc/postfix/networks”這行後面加上

#mynetworks = hash:/etc/postfix/networks

mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/etc/postfix/access

#加入此行,約在268行

8.規範可以 relay 的 MTA 主機位址,通常這個都直接設為mydestination

尋找”#relay_domains = $mydestination”,將”#”移除,變成

relay_domains = $mydestination                 #修改此行,約在第 298 行

9.設定郵件別名的路徑

檢查” alias_maps”設定是否為以下字串設定

alias_maps = hash:/etc/aliases                     #約在第 388 行

10.設定指定郵件別名表資料庫路徑

檢查” alias_ database”設定是否為以下字串設定

alias_database = hash:/etc/aliases               #約在第 399行

在main.cf的設定整理如下:

myhostname = 你的主機名稱                    #約在第  77 行

mydomain = 你的網載名稱                        #約加在第  85 行

myorigin = $myhostname                             #約在第 100 行

inet_interfaces = all                       #約在第 114 行,117 行要註解掉

inet_protocols = ipv4                     #約在第 120 行

mydestination = $myhostname, localhost.$mydomain, localhost, mydomain  #約在第166 行

mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/etc/postfix/access #約在268行

relay_domains = $mydestination                 #約在第 298 行

alias_maps = hash:/etc/aliases                     #約在第 388 行

alias_database = hash:/etc/aliases               #約在第 399 行

11.設定完成後,請在終端機下輸入以下二行指令(詳細請參考後面章節” 設定郵件主機使用權限與過濾機制”及” 郵件別名”)

# postmap hash:/etc/postfix/access

# postalias hash:/etc/aliases

12.重啟postfix就可以利用smtp的服務收發信件,在終端機視窗下輸入

# service postfix restart

13.檢查SMTP服務是否開啟,如果有的話,輸入下列命列,會看到Port 25正在監聽的狀態

# netstat -tlunp | grep ':25'

Postfix測試

1.寄信測試

此時我們已經可以利用此台主機使用smtp收送電子郵件了, 利用mail指令來測試

mail root@網域名稱

Subject:Test

This is test mail

.

EOT

2.收信測試

當我們從內部或外部寄信過來時,預設的郵件存放位址如下:

/var/spool/mail(或 /var/mail)

從此目錄裡查看帳號名稱的檔案,我們所收發的信件都會存在這裡

如果使用 ip:222.222.222.222 的主機經由outlook smtp寄信 會被
554 5.7.1 <[email protected]>: Relay access denied

請在main.cf中mynetworks設定後面加入

mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/etc/postfix/access
cd /etc/postfix 
vi access 

加入外寄允許的ip

222.222.222.222  OK

不允許smtp

222.222.222.222 REJECT

修改完畢後要下行

postmap /etc/postfix/access

 

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料