詳解postfix郵箱服務器安裝、配置及其工作原理(內附源碼包)
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的協議,進入郵箱收取郵件,並且將郵件轉發給用戶
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
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郵箱服務器安裝、配置及其工作原理(內附源碼包)