LAB_RHEL5下sendmail+dovecot+openwebmail郵件系統配置

 

電子郵件系統對於一個企業的作用相信已經沒有人不知道,目前比較主流的郵件系統包括SendMail、exchange、Lotus Notes、Qmail、Postfix等。
Microsoft的Exchange只能運行在Windows平臺,而且必須基於活動目錄,雖然在功能上exchange的確有一定的優勢,比如用戶管理、與office等微軟其它產品的高集成性等等,但運營成本過高。
Lotus Notes作爲IBM的產品性能、功能當然是不用說了,不過本人總認爲IBM的產品都有一個共同的特點,那就是隻有運行在IBM的軟、硬件平臺時才能將其功能最大化的發揮出來。
    SendMail可以運行在幾乎所有的類Unix平臺,功能也比較強大。當然SendMail也有一些自身的問題,但隨着其版本的升級很多方面已經有了很大的改善。
本文中主要介紹在RHEL 5下通過SendMail搭建一個郵件系統平臺,並結合dovecot實現pop3/IMAP4以及通過OpenWebMail實現客戶端通過瀏覽器訪問郵件系統。在講述過程中採用以下網絡拓撲。
一、安裝並配置DNS
      DNS的作用相信也不需要過多介紹了,如果企業的郵件服務器如果需要接收來到公網的郵件,需要擁有公網IP及域名,而DNS解析工作都是有ISP提供的。在本文的配置中假設該郵件系統只供企業內部使用,所以需要配置DNS。

1、安裝bind及相關軟件包。
#rpm -ivh /mnt/cdrom/Server/bind-9.3.6-4.p1.el5.i386.rpm
#rpm -ivh /mnt/cdrom/Server/bind-chroot-9.3.6-4.p1.el5.i386.rpm
#rpm -ivh /mnt/cdrom/Server/caching-nameserver-9.3.6-4.p1.el5.i386.rpm

2、在/var/named/chroot/etc目錄下有一個全局配置的例子文件,將其複製一份改名爲named.conf。如下圖複製時一定要加-a(或-p),如果全局配置文件的擁有組不是named時,BIND服務是無法運行的。


3、編輯named.conf文件,修改如下圖所示位置,保存退出。


4、修改/var/named/chroot/etc/named.rfc1912.conf(DNS主配置文件)文件最尾部添加內容如下。


5、在/var/named/chroot/var/named中正向、反向各有一個例子,將這二個例子複製一份進行修改,如下圖複製時一定要加-p,因爲如果區域配置文件的擁有組不是named時,BIND服務是無法運行的。


6、編輯正向解析文件yinhe.zone,修改如下。


7、編輯反向解析文件yinhe.local,修改內容如下。

8、啓動bind並將其設置爲自動運行,再使用nslookup測試是否可以正常解析。


注意:如果無法正常解析,請使用system-config-network命令檢查本機網卡IP和DNS配置!
          確認DNS配置正確的情況下,使用setup命令檢查Firewall配置是否允許tcp\udp的53端口!

二、安裝並配置SendMail
1、安裝sendmail及相關軟件包。
#rpm -ivh /mnt/cdrom/Server/sendmail-8.13.8-2.el5.i386.rpm   \\默認已安裝
#rpm -ivh /mnt/cdrom/Server/m4-1.4.5-3.el5.1.i386.rpm         \\默認已安裝
#rpm -ivh /mnt/cdrom/Server/sendmail-cf-8.13.8-2.el5.i386.rpm
#rpm -ivh /mnt/cdrom/Server/sendmail-doc-8.13.8-2.el5.i386.rpm

2、增加本服務器可處理的FQDN或區域名(只有在列表的本服務器才處理)。這需要修改/etc/mail/local-host-names文件。


3、SendMail默認只偵聽127.0.0.1,要修改sendmail.mc配置文件偵聽指定網絡接口或0.0.0.0(所有IP)


4、通過sendmail.mc生成sendmail.cf文件,並重啓sendmail服務。
    SendMail運行過程是讀取/etc/mail/sendmail.cf配置文件,但該文件配置比較複雜,所以一般是配置/etc/mail/sendmail.mc,然後通過以下命令生成sendmail.cf文件(每次修改sendmail.mc後都必須通過使用該命令後再重啓sendmail服務,否則配置不會生效)。
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
在/etc/mail/sendmail.mc文件中對格式要求非常嚴格:每句左邊不能有空格;區分大小寫;註釋在最左邊加dnl,每句必須以dnl結束;增加的語句,不能在最後一行;注意語句中的引號。



4、執行完以上步驟後就可以使用SendMail測試收發郵件了。
     到此一個最簡單的郵件系統已經通過SendMail實現了。直接使用系統本地賬號做爲郵件賬號就可以了,下面來看看如何通過telnet命令測試郵件系統是否可以正常工作。

接收郵件:
    使用收件人賬號登陸系統,在linux字符模式中收取當前用戶收件箱內容使用mail命令,Mial命令行模式下可直接輸入”? ”查詢命令行幫助。如下圖所示接收及查看郵件內容:

三、SendMail其它配置
1、SendMail本地別名
    SendMail可以通過本地別名實現以下功能郵件轉發、郵件羣發等功能,配置時用戶必須是本地郵件用戶。實現時需要vim編輯/etc/aliases文件,在aliases文件最末尾添加內容即可,例如下圖:

user1的郵件轉發一份user2。
user3的郵件轉發給user4,user3收不到。
發送給hr(系統中沒有這個用戶)的郵件user5及user6可收到。

2、SendMail虛擬別名
SendMail可以通過本地別名實現以下功能郵件轉發等功能,配置時用戶可以任意,該功能可以將郵件轉發
到外部區域。實現時需要vim編輯/etc/mail/virtusertable文件內容,舉例如下圖:

   1:發送給
[email protected]的郵件轉發到[email protected]
   2:發送給[email protected]的郵件轉發到[email protected]
   3:所有發送給@yinhe.com區域的郵件全部轉發到[email protected]
   4:所有發送給@sohu.com的郵件轉到對應%[email protected],%1表示收件人

3、SendMail地址僞裝
SendMail對本服務器所有發出的郵件進行地址僞裝(自動修改發件人地址)。
全局僞裝:全局僞裝針對所有本區域用戶,此功能需要vim修改/etc/mail/sendmail.mc配置文件,下面的例子中所有發住外部區域的郵件收件人所有區域自動修改爲yinhe.com:


指定用戶僞裝:指定用戶的地址僞裝,該功能只能用於收件人是外部域。這個可以和全局地址僞裝同時使用。下面的例子中將所有
[email protected]發出的郵件發件人修改爲[email protected]
   a.修改/etc/mail/sendmail.mc文件。在文件最末尾添加內容如下:
     
   b.建立用戶列表。手動創建/etc/mail/genericstable文件並添加內容如下:
     
   c.在lost-hosts-names中加入虛擬區域名稱
     


4、SendMail訪問控制
通過/etc/access可以對通過SendMail的郵件流進行控制,其對郵件流通過的動作主要有以下幾種:
From:發件人是其它域,收件人是當前域
To:發件人是當前域,收件人是其它域
Connect:發件人、收件人都是其它域
中繼限制可用動作:
REJECT:拒收併發退信通知
OK:無條件接收,當與REJECT發生衝突時優生
RELAY:接收,當與REJECT發生衝突時REJECT優先
DISCARD:拒絕
ERROR:550 your message:拒絕,返回特定通知
下圖是一個/etc/access文件的例子:

四、Dovecot安裝和配置

    SendMail只能實現SMTP協議的功能,而目前在使用郵件系統時很多用戶還是習慣使用類似foxmail的一些郵件客戶端軟件,這些軟件通常都支持pop3、IMAP4等協議。如果希望在RHEL中實現pop3、IMAP4需要使用dovecot。

1、安裝dovecot及相關軟件包。
#rpm –ivh /mnt/cdrom/Server/perl-DBI-1.52-2.el5.i386.rpm
#rpm –ivh /mnt/cdrom/Server/mysql-5.0.77-3.el5.i386.rpm
#rpm –ivh /mnt/cdrom/Server/dovecot-1.0.7-7.el5.i386.rpm

2、dovecot配置比較簡單,通常只需修改Dovecot修改支持的協議即可。在/etc/dovecot.conf中已有,只需取消註釋即可(如下圖)。


3、啓動dovecot並將其設置爲自動運行。

五、配置POPs&IMAPs

    pop3及IMAP4協議都是採用明文方式進行數據傳輸,不過可以通過SSL對其數據傳輸進行加密。配置方法如下:
在/etc/pki/tls/certs目錄下輸入以下命令生成密鑰(dovecot.pem 文件名可任意)。


編輯/etc/dovecot.conf文件,修改內容如下:


在dovecot配置完成後可以通過mutt命令對pop3/pops及imap/iamps進行測試。具體方法如下:
1、使用POP3方法驗證Dovecot
mutt -f pop://user@server[:port]    或   mutt -f pops://user@server[:port]
輸入命令可通過pop(如使用pops方式,將下圖命令中pop改爲pops即可)方式收取郵件,注意是接服務器名稱。如下圖所示,tom用戶使用pop方式收取郵件。


2、使用IMAP4方法驗證Dovecot
mutt -f imap://user@server[:port]   或   mutt -f imaps://user@server[:port]

輸入以上命令可通過imap方式收取郵件。如下圖所示:

輸入”o”同意開始通過imap連接服務器。

進入後輸入用戶密碼,可看到該用戶的郵件。


在上、下移動選擇郵件回車可查看。


六、OpenWebMail配置
     對於一個完整的郵件系統,提供用戶通過瀏覽器訪問是一個必不可少的功能,在linux下可使用OpenWebMail爲用戶提供該功能。不過在RHEL中默認並沒有提供OpenWebMail的軟件包,只有從openwebmail.org網站或從其它rpm包下載網站下載。OpenWebMail需要使用到apache、perl-Text-Iconv、perl-suidper軟件包。

1、安裝OpenWebMail及相關軟件包。
rpm -ivh perl-Text-Iconv-1.7-2.el5.i386.rpm
rpm -ivh perl-CGI-SpeedyCGI-2.22-1.2.el5.rf.i386.com
rpm –ivh perl-suidperl-5.8.8-10.el5_2.3.i386
rpm –ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm
rpm -ivh –-nodeps openwebmail-2.53-3.i386.rpm
rpm -ivh –-nodeps openwebmail-data-2.53-3.i386.rpm

2、將配置文件/var/www/cgi-bin/openwebmail/etc/dbm.conf的內容修改爲以下內容。


3、使用以下命令初始化OpenWebMail。


4、修改相關默認配置,編輯/var/www/cgi-bin/openwebmail/etc/openwebmail.conf文件。
default_language zh_cn gb2312                       將預設語言改爲簡體中文。
   default_iconset Cool 3D.Chinese.Simplified    將English改爲Chinese.Simplified,顯示中文圖標。
   domainnames yinhe.com              更改爲自己定義的域名。
   smtpserver 192.168.1.100              更改smtp服務器的地址。
   authpop3_server 192.168.1.100      更改pop3服務器的地址。
   auth_module auth_unix.pl             將用戶認證方式改爲使用/etc/passwd及/etc/shadow文件

5、郵件客戶端使用瀏覽器打開地址
http://yinhe.com/cgi-bin/openwebmail/openwebmail.pl就可以訪問到openwebmail了。


6、很顯然這個地址太長了,可以修改/etc/httpd/conf/httpd.conf文件中增加如下內容。

修改完成之後客戶端可通過地址http://yinhe.com/mail就可以訪問openwebmail了。


7、設置用戶配額。
在/var/www/cgi-bin/openwebmail/etc/openwebmail.conf中最尾幾行是配額的例子,下面是相關參數的作用。
quota_module            quota_unixfs.pl       quota的模板,由於郵件帳戶還是Linux帳戶,所以選它
spool_limit                5120                    郵箱限定5M
quota_limit               10240                  所有空間(包括郵箱)限定10M
quota_threshold         70                     空間使用達到配額的70%就提示
delmail_ifquotahit      no                     是否在空間使用超出配額時刪除舊的郵件
delfile_ifquotahit        no                     是否在空間使用超出配額時刪除舊的文件
到此整個郵件環境已搭建完成,不過這些只能算是第一步,對於一個成熟的郵件系統還有很多工作要做。永遠都要記住郵件系統是貌似簡單但實際維護量非常大的應用系統。比如防止垃圾郵件、病毒郵件、用戶行爲控制等等,這些將會在後繼的文章中爲大家講解。


 

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