Postfix郵件系統(一)
一、電子郵件系統基礎
(1)、郵件系統角色、郵件協議
【前提條件】:需要DNS服務器提供域名的解析
1、電子郵件系統的角色
【MTA(Mail Transfer Agent,電子傳輸代理)】
一般稱爲郵件服務器軟件
負責接收客戶端軟件發送的郵件,並將郵件傳輸給其他的MTA程序
包括:Exchange、Sendmail、Postfix
【MUA(Mail User Agent,郵件用戶代理)】
一般稱爲郵件客戶端軟件
功能:爲用戶提供發送、接收和管理電子郵件的界面
包括:Outlook、Foxmail、Outlook 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、準備工作
/etc/init.d/sendmail stop /先要停止此服務
Chkconfig --level 2345 sendmail off /永久關閉它
Rpm -qa | grep cyrus /查看cyrus相關軟件包
《注意》:
雖然停了sendmail的服務,但不能卸載它,因爲Postfix能兼容sendmail,如果把sendmail卸了,那麼在安裝postfix時就找不到對應的目錄。
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’
#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服務的郵件隊列相關的子目不錄
incoming(傳入):存放剛接收到的郵件
active(活動):存放正在投遞的郵件
deferred(推遲):存放以前投遞失敗的郵件
hold(約束):存放被阻止發送的郵件
corrupt(錯誤):存放不可讀或不可分析的郵件
/usr/sbin/:包括postfix服務的各種管理工具程序,這些程序文件名以post開頭
postalias:構造、修改和查詢別名表
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
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服務器
helo 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
#%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、接收郵件測試