1. 程式人生 > >詳解postfix郵箱服務器安裝、配置及其工作原理(內附源碼包)

詳解postfix郵箱服務器安裝、配置及其工作原理(內附源碼包)

zhang 關閉防火墻 互聯 分享 接收郵件 目錄 ifconfig shutdown 數字

簡介

postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要為使用最廣泛的sendmail提供替代品的一個嘗試。在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用sendmail,每天投遞上億封郵件。這真是一個讓人吃驚的數字。Postfix試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性。

工作原理

技術分享圖片

客戶端通過Outlook軟件,向郵件服務器發送一封郵件,郵件服務器會檢查是發往本域?還是發往其他域?
1、如果發送到本域,直接存放到Mailbox中,另外一個用戶上線,需要收取這封郵件,需要借助dovecot(dovecot提供的是MRA的功能)軟件,通過dovecot進入數據庫驗證身份,驗證通過以後,就可以通過MRA調用POP3或者IMAP4的協議,進入郵箱收取郵件,並且將郵件轉發給用戶

2、如果發送到其他域,其他MTA。但是轉發之前,驗證用戶身份,是否要為其轉發郵件,驗證的時候是用到了SASL函數庫,用戶的信息是放到了數據庫中,此時我們需要一個中間層authlib,通過authlib替SASL函數庫向數據庫進行驗證,做“發信認證”,認證通過,允許轉發,驗證不通過,拒絕轉發
3、通過瀏覽器訪問郵件服務器(EXtmall),轉發到其他域,放到郵箱,到數據庫驗證

郵件系統角色

MUA:郵件用戶代理(客戶端 例如微軟郵件客戶端)
MTA:郵件傳輸代理(服務器端 postfix)
MDA:郵件分發代理分發郵件(至mialbox中)
MRA:郵件檢索代理

郵件應用協議

1、SMTP,簡單郵件傳輸協議,TCP,25端口,加密時使用TCP,465端口(發送郵件)客戶端向其他服務器發送郵件或者服務器向其他服務器轉發郵件,發送方使用的都是SMTP協議
2、POP3,第3版郵局協議, TCP 110端口,加密時使用TCP 995端口[收郵件 收取郵件的時候,先將服務器的郵件下載到本地,所有的操作都是在本地完成
3、IMAP4,第4版互聯網消息訪問協議,TCP 143端口,機密時使用993端口(比POP3靈活)接收郵件,客戶端和服務器端交互了以後,在服務器端處理,好處能實現更多的功能,例如查看郵件的信息,但是消耗的系統的資越高

實驗環境

系統環境:centos6.5
虛擬機IP地址:192.168.1.77

yum掛載目錄:/mnt/sr0
DNS域名:bt.com.
源碼包下載地址:百度雲下載 密碼:kv94

搭建步驟:

一、準備工作:

1、關閉selinux、iptables

[root@mail ~]# vim /etc/sysconfig/selinux
技術分享圖片

[root@mail ~]# chkconfig iptables off #開機關閉防火墻服務,永久關閉
[root@mail ~]# shutdown -r now #重啟生效

2、安裝依賴包

[root@mail ~]# yum -y install gcc gcc-c++ #安裝編譯器
[root@mail ~]# yum -y install db4-devel #有些機器默認已經安裝,註意看下
[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh cyrus-sasl-devel-2.1.23-13.el6_3.1.x86_64.rpm

二、指定DNS,實現郵件交換記錄

1、安裝DNS服務器

[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

2、查看網卡信息

[root@mail ~]# ifconfig
技術分享圖片

3、修改DNS服務器配置文件

[root@mail ~]# vim /etc/named.conf #修改主配置文件

技術分享圖片

4、創建並修改DNS正向解析文件

[root@mail ~]# cd /var/named/
[root@mail named]# cp -p named.localhost bt.com.zone #將模板文件改為正向解析文件進行修改
[root@mail named]# vim /var/named/bt.com.zone # 修改正向解析文件
技術分享圖片

5、創建並修改DNS反向解析文件

[root@mail named]# cp -p bt.com.zone 192.168.1.zone
[root@mail named]# vim 192.168.1.zone
技術分享圖片
[root@mail named]# /etc/init.d/named start #啟動DNS服務器

6、測試DNS解析

技術分享圖片

一、源碼安裝Postfix

1、解壓、編譯及安裝

[root@redhat6 ~]# tar xvfz postfix-2.11.11.tar.gz -C /usr/src/ #解壓
[root@redhat6 ~]# cd /usr/src/postfix-2.11.11/
[root@redhat6 postfix-2.11.11]# make makefiles ‘CCARGS=-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl‘ ‘AUXLIBS=-L/usr/lib/sasl/sasl2 -lsasl2‘
CCARGS:支持SASL認證;
-I:增加一個文件的路徑;
AUXLIBS:添加一個函數庫的位置,sasl2代表第二個版本

[root@redhat6 postfix-2.11.11]# postconf -a #查看postfix支持的功能
技術分享圖片

[root@redhat6 postfix-2.11.11]# postfix start

技術分享圖片

2、修改postfix配置文件

[root@mail ~]# vim /etc/postfix/main.cf
inet_interfaces = all //監聽服務的IP地址,有一個默認localhost,修改時候註意下,別忘記
myhostname = mail.bt.com //郵件服務器主機名
mydomain = bt.com //郵件域名
myorigin = $mydomain //發件人地址郵件域名
mydestination = $mydomain, $myhostname //收件人地址郵件域名
home_mailbox = Maildir/ //郵件存放位置

3、重載Postfix服務

[root@mail ~]# postfix reload #註意:postfix沒有重啟的命令,只有stop後在start相當於restart,直接reload就可以了,註意有時候不太靠譜,建議先stop、後start

4、添加郵箱測試賬號

[root@mail ~]# groupadd mailusers
[root@mail ~]# useradd -g mailusers -s /sbin/nologin zhangsan
[root@mail ~]# passwd zhangsan

[root@mail ~]# useradd -g mailusers -s /sbin/nologin lisi
[root@mail ~]# passwd lisi

二、源碼安裝Dovecot(POP3/IMAP的接收信件的服務器軟件)

1、解壓Dovecot源碼包

[root@mail ~]# tar xvfz dovecot-2.0.21.tar.gz -C /usr/src/

2、建立系統賬戶

[root@mail ~]# useradd -M -s /sbin/nologin dovecot #建立系統用戶與postfix關聯
[root@mail ~]# useradd -M -s /sbin/nologin dovenull

3、源碼包配置

[root@mail ~]# rpm -qa |grep pam
技術分享圖片

[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm

[root@mail ~]# cd /usr/src/dovecot-2.0.21/
[root@mail dovecot-2.0.21]# ./configure --sysconfdir=/etc/ --with-pam
sysconfdir:指定配置文檔所在目錄
with-pam:讓其支持pam認證

4、編譯及編譯安裝

[root@mail dovecot-2.0.21]# make && make install

5、建立配置文件以及添加PAM認證

[root@mail dovecot-2.0.21]# cp -rf /usr/local/share/doc/dovecot/example-config/* /etc/dovecot/ #一般情況下把所有的配置樣例都復制到dovecot目錄下
[root@mail dovecot-2.0.21]# cd /etc/pam.d/
[root@mail pam.d]# cp login dovecot #復制一個模板,建立配置文件。dovecot是需要pam認證的,需要建立pam文件
[root@mail pam.d]# ls -l login dovecot
技術分享圖片

[root@mail pam.d]# vim dovecot #修改dovecot對應的pam配置文件

技術分享圖片

6、修改配置文件

[root@mail pam.d]# cd /etc/dovecot/
[root@mail dovecot]# vim dovecot.conf
開啟protocols = imap pop3 lmtp
修改!include conf.d/10-auth.conf #啟動本地系統的賬戶和密碼
添加ssl=no #不使用加密
添加disable_plaintext_auth=no #啟用明文認證
添加mail_location = maildir:~/Maildir #設置郵件位置

7、添加系統權限

[root@mail dovecot-2.0.21]# cd /usr/src/dovecot-2.0.21/doc/
[root@mail doc]# cp dovecot-initd.sh /etc/init.d/dovecot #將dovecot的啟動腳本復制到/etc/init.d/
[root@mail doc]# chmod a+x /etc/init.d/dovecot #賦予可執行權限
[root@mail doc]# chkconfig --add dovecot #添加為系統為服務,添加的前提條件/etc/init.d/有dovecot服務腳本

8、啟動服務

[root@mail ~]# service dovecot start

[root@mail ~]# netstat -anpt | grep dovecot

技術分享圖片

三、測試收發郵件

[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh telnet-0.17-47.el6_3.1.x86_64.rpm #安裝telent客戶端服務,通過telent命令連接25端口進行測試。

1、發送郵件

[root@mail ~]# telnet 192.168.1.77 25
技術分享圖片

2、接收郵件

[root@mail ~]# telnet mail.bt.com 110

技術分享圖片

詳解postfix郵箱服務器安裝、配置及其工作原理(內附源碼包)