Postfix郵件系統(一)

Postfix郵件系統(一)


一、電子郵件系統基礎

1)、郵件系統角色、郵件協議

【前提條件】:需要DNS服務器提供域名的解析

1、電子郵件系統的角色

【MTA(Mail Transfer  Agent,電子傳輸代理)】

一般稱爲郵件服務器軟件

負責接收客戶端軟件發送的郵件,並將郵件傳輸給其他的MTA程序

包括:ExchangeSendmailPostfix

【MUA(Mail  User Agent,郵件用戶代理)】

一般稱爲郵件客戶端軟件

功能:爲用戶提供發送、接收和管理電子郵件的界面

包括:OutlookFoxmailOutlook Express

【MDA(Mail Delivery  Agent,郵件分發代理)】

MDA軟件負責在服務器中將郵件分發到用戶的郵箱記錄

Postfix就集成了MDA的功能

2、郵件通信協議

【SMTP(Simple  Mail Transfer  Protocol,簡單郵件傳輸協議)】

作用:用於發送和傳輸郵件

端口:TCP/25

【POP(Post  Office Protocol,郵局協議)】

作用:用於從郵件服務器中收取郵件

端口:TCP/110

【IMAP(Internet  Message Access  Protocol,互聯網消息訪問協議)】

作用:用於收取郵件

端口:TCP/143

2)、常見的郵件服務器軟件

1、商業郵件系統

【Exchange】:微軟公司收費產品,windows服務器平臺構建郵件系統的首選產品

【Notes/Domino】:IBM公司收費產品,多應用於一些高校、政府、銀行類型的企業

2、開源郵件系統

【Sendmail】:運行在UNIX/Linux環境中,屬於早期產品,sendmail運行的穩定性較好,但安全性欠佳

【Qmail】:運行在UNIX/Linux環境中,比sendmail具有更好的執行效率,且配置,管理更加方便

【Postfix】:運行在UNIX/Linux環境中,其目的是爲Sendmail提供一個更好的替代產品,postfix在投遞效率、穩定性、服務性能及安全性能方面都相當的出色

二、Postfix郵件服務基礎

Postfix郵件服務器採用模塊化的設計,由許多個不同的程序集合而成,分別用於實現不同的功能

Postfix在啓動時首先啓動名爲master的進程,由master進程主導郵件的處理工作,並在需要時自動加載其他程序以協同工作

1)、編譯安裝及服務控制

1、準備工作

spacer.gif         /etc/init.d/sendmail  stop                                       /先要停止此服務

        Chkconfig  --level 2345  sendmail  off        /永久關閉它

        Rpm  -qa |  grep  cyrus                                    /查看cyrus相關軟件包

《注意》:

雖然停了sendmail的服務,但不能卸載它,因爲Postfix能兼容sendmail,如果把sendmail卸了,那麼在安裝postfix時就找不到對應的目錄。

spacer.gif    yum -y  install  db*-devel

   yum  -y install  cyrus-sasl-*         /安裝相關依賴包

        yum  -y install  pam-devel*

2、源碼編譯安裝

【創建運行組、用戶】

   groupadd -g  1200  postdrop

   groupadd -g  1000  postfix

   useradd -M  -u  1000 -g  postfix  -G postdrop  -s  /sbin/nologin postfix

【解包】

   tar zxf  postfix-2.8.2.tar.gz  -C /usr/src

   cd /usr/src/postfix-2.8.2

【配置】

   make makefiles  ‘CCARGS=-DUSE_SASL_AUTH  -DUSE_CYRUS_SASL  -I/usr/include/sasl’  ‘AUXLIBS=-L/usr/lib/sasl2  -lsasl2’

spacer.gif#CCARGS參數:爲編譯器提供額外的擴展參數。例如啓用SASL認證,並指出cyrus_sasl認證程序的文件位於/usr/include/sasl  

#AUXLIBS參數:爲編譯器指出位於標準位置之外的額外函數庫。例如,cyrus_sasl認證程序的庫文件位於/usr/lib/sasl2/

   make &&  make  install

   postconf -a                /檢查所支持的認證方式

3、postfix服務控制

   postfix start              /啓動postfix服務

   netstat -antp  |  grep 25  /查看服務進程’master’是25號端口

   postfix check              /語法檢查

2)、主要目錄和配置文件

1、主要目錄

/etc/postfix:postfix服務的主配置文件,各類腳本、查詢等表

/usr/libexec/postfix:包括postfix服務的各個服務器程序文件

/var/spool/postfix:包括postfix服務的郵件隊列相關的子目不錄

spacer.gifincoming(傳入):存放剛接收到的郵件

active(活動):存放正在投遞的郵件

deferred(推遲):存放以前投遞失敗的郵件

hold(約束):存放被阻止發送的郵件

corrupt(錯誤):存放不可讀或不可分析的郵件

/usr/sbin/:包括postfix服務的各種管理工具程序,這些程序文件名以post開頭

spacer.gifpostalias:構造、修改和查詢別名表

postconf:顯示和編輯main.cf配置文件

postfix:啓動、停止postfix郵件服務,要求有root用戶權限

postmap:構造、修改或查詢查詢表文件

postqueue:查看郵件隊列、一般用戶可以使用

postsuper:管理郵件隊列,要求有root用戶權限

2、主要配置文件

【包括】:main.cf/一般不改它   master.cf/一般改它

【位置】:/etc/postfix/目錄下

      postconf -n  >  ganbing               /簡化參數並輸出爲“ganbing”

      mv /etc/postfix/main.cf /etc/postfix/main.cf.bak   /改名

      mv ganbing  /etc/postfix/main.cf          /把ganbing移動並改名

3、postfix的日誌文件

【位置】:/var/log/maillog

【定義】:該文件中記錄了本機中的郵件進出相關的消息,包括郵件服務的啓動、出錯、與其他SMTP服務器的會話信息等

三、郵件服務器的基本構建

1)、配置SMTP發信服務

【位置】:/etc/postfix/main.cf

1、設置main.cf並啓動服務

vim  /etc/postfix/main.cf              

spacer.gif    inet_interfaces=10.0.0.1 127.0.0.1 /監聽服務器的IP地址默認爲all

   myhostname=mail.benet.com              /郵件服務器的主機名

   mydomain=benet.com                     /郵件域

myorigin=$mydomain                  /引用郵件域,外發郵件時發件人地址中的郵件域

   mydestination=$mydomain,$myhostname    /允許投遞到本地的目標郵件域

   home_mailbox=Maildir/                  /設置郵件存儲位置和格式

postfix  reload

【postfxi支持兩種最常見的郵箱存儲方式】

Mailbox:同一個用戶的所有郵件內容存儲爲單個文件,保存在/var/spool/mail/目錄下,文件名與用戶名相同,Mailbox存儲方式比較古老,當郵件數量較多時會降低查詢和管理效率

Maildir:使用目錄結構來存儲用戶的郵件內容,每一個用戶使用一個目錄,每封郵件都作爲獨立的文件存放,Maildir方式的存取速度和效率要好一些

2、添加郵箱賬號

groupadd  mailusers                            /創建郵箱用戶組,也可不要

useradd  -g mailusers  -s /sbin/nologin  gan      /新建賬號gan

passwd  gan                                   /設個密碼

useradd  -g mailusers  -s /sbin/nologin  bing     /新建賬號bing

passwd  bing

3、SMTP發送郵件測試

telnet  mail.benet.com  25          /連接到postfix服務器

spacer.gifhelo  nihao                     /打招呼,告訴客戶機在哪

mail from: [email protected]       /告知發件人地址

rcpt to: [email protected]    /告知收件人地址

data                        /告知要發送郵件數據

          #################

subject:this is a test mail /指定郵件標題

          ###############.     /郵件正文,以.點號表示結束正文

quit                        /斷開並退出連接

   ls -lh  /home/bing/Maildir/new

   cat /home/bing/Maildir/mew/130.....mail.benet.com      /查看郵件內容

2)、配置POP/IMAP收信服務

Dovecot是一個安全性較好的pop3/IMAP服務器軟件,響應速度快而且擴展性好

Dovecot默認也使用Linux的系統用戶,並通過PAM(Pluggable  Authentication  Module,可插拔認證模塊)機制進行身份認證,只有通過認證後才允許用戶收取郵件

1、編譯安裝Dovecot軟件包

【預先創建運行用戶】

   useradd -M  -s  /sbin/nologin dovecot

   useradd -M  -s  /sbing/nologin  dovenull

【源碼編譯安裝】

   tar zxf  dovecot-2.0.12.tar.gz  -C /usr/src/

   cd /usr/src/dovecot-2.0.12

   ./configure --sysconfdir=/etc         /指定配置文檔的父目錄

   make &&  make  install

【添加爲系統服務dovecot】

   cp doc/dovecot-initd.sh /etc/init.d/dovecot

   chkconfig --add  dovecot

2、建立配置文件,並啓動服務

【建立配置文檔】

   cp -r /usr/local/share/doc/dovecot/example-config/*  /etc/dovecot/

   vim /etc/pam.d/dovecot

spacer.gif       #%PAM-1.0

      auth       required      pam_nologin.so

      auth       include           system_auth

      account       include           system_auth

      session       include           system_auth

【調整主配置文件】

   vim /etc/dovecot/dovecot.conf

      ......//省略部分內容

      !include conf.d/lo-auth.conf      /只使用系統用戶認證

      ssl=no                          /禁用SSL機制

      disable_plaintext_auth=no          /允許明文的驗證

      mail_location=maildir:~/Maildir /設置郵箱格式及位置

【啓動dovecot服務,並確認監聽狀態】

   /etc/init.d/dovecot  start

   netstat -anpt  |  grep dovecot

3)、測試發信、收信功能

使用Microsoft  office 2007的Outlook爲例

1、設置郵箱賬號

2、發送郵件測試

3、接收郵件測試


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章