[RHEL5企業(yè)級Linux服務(wù)攻略]--第5季 Sendmail服務(wù)全攻略之常規(guī)配置
1.Sendmail服務(wù)軟件包
sendmail-8.13.8-2.el5.i386.rpm:sendmail服務(wù)的主程序包,服務(wù)器端必須安裝該軟件包。
sendmail-cf-8.13.8-2.el5.i386.rpm:sendmail宏文件包
sendmail-devel-8.13.8-2.el5.i386.rpm:sendmail服務(wù)器開發(fā)工具軟件包
sendmail-doc-8.13.8-2.el5.i386.rpm:sendmail服務(wù)器的說明文檔
m4-1.4.5-3.el5.1.i386.rpm:宏處理過慮軟件包
dovecot-1.0-1.2.rc15.el5.i386.rpm:接收郵件軟件包,安裝時(shí)需要注意安裝順序
2.Sendmail相關(guān)配置文檔
sendmail.cf:sendmail核心配置文件,位于/etc/mail/sendmail/sendmail.cf
sendmail.mc:sendmail提供sendmail文件模板,通過編輯此文件后再使用m4工具將結(jié)果導(dǎo)入sendmail.cf完成配置sendmail核心配置文件,降低配置復(fù)雜度,位于/etc/mail/sendmail.mc
local-host-name:定義收發(fā)郵件服務(wù)器的域名和主機(jī)別名,位于/etc/mail/local-host-name
access.db:用來設(shè)置sendmail服務(wù)器為哪些主機(jī)進(jìn)行轉(zhuǎn)發(fā)郵件,位于/etc/mail/access.db
aliases.db:用來定義郵箱別名,位于/etc/mail/aliases.db
virtusertable.db:用來設(shè)置虛擬賬戶,位于/etc/mail/virtusertable.db
3.郵件功能組件
MUA:郵件用戶代理(Mail User Agent)
MTA:郵件傳輸代理(Mail Transfer Agent)
MDA:郵件遞送代理(Mail Delivery Agent)
4.Sendmail常規(guī)服務(wù)器配置
搭建Sendmail服務(wù)器流程:
(1)配置sendmail.mc文件
(2)使用m4工具將sendmail.mc文件導(dǎo)入sendmail.cf文件
(3)配置local-host-names文件
(4)建立用戶賬號
(5)重新啟動服務(wù)使配置生效
Sendmail應(yīng)用案例1:
局域網(wǎng)網(wǎng)段:192.168.8.0/24
企業(yè)域名:redking.com
DNS及Sendmail服務(wù)器地址:192.168.8.1
sendmail服務(wù)是和DNS服務(wù)結(jié)合相當(dāng)緊密的一個(gè)服務(wù),所以我們在配置sendmail之前,需要設(shè)置并調(diào)試好DNS服務(wù)器(DNS配置請參考上季[RHEL5企業(yè)級Linux服務(wù)攻略]--第4季 DNS服務(wù)全攻略),DNS配置中設(shè)置MX資源記錄指定郵件服務(wù)器地址。
(1)配置DNS主配置文件named.conf
(2)配置redking.com區(qū)域文件
使用MX記錄設(shè)置郵件服務(wù)器,這條記錄一定要有,否則Sendmail無法正常工作。
(3)配置redking.com反向區(qū)域文件
(4)修改DNS域名解析的配置文件
vim /etc/resolv.conf
(5)重啟named服務(wù)使配置生效
(6)安裝Sendmail軟件包
RHEL5默認(rèn)安裝sendmail-8.13.8-2.el5及m4-1.4.5-3.el5.1軟件包,我們只需要安裝sendmail-cf-8.13.8-2.el5宏文件包就可以了。
(7)編輯sendmail.mc修改SMTP偵聽網(wǎng)段范圍
配置郵件服務(wù)器需要更改IP地址為公司內(nèi)部網(wǎng)段或者0.0.0.0,這樣可以擴(kuò)大偵聽范圍(通常都設(shè)置成0.0.0.0),否則郵件服務(wù)器無法正常發(fā)送郵件。
vim /etc/mail/sendmail.mc
第116行將smtp偵聽范圍從127.0.0.1改為0.0.0.0
第155行修改成自己域:LOCAL_DOMAIN(`redking.com')dnl
使用m4命令生成sendmail.cf文件,其實(shí)sendmail.mc即是一個(gè)模板文件哈~
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
(8)修改local-host-names文件添加域名及主機(jī)名
vim /etc/mail/local-host-names
(9)安裝Dovecot軟件包(POP3和IMAP)
到這里sendmail服務(wù)器基本配置完成后,Mail Server就可以完成郵件發(fā)送工作,如果需要使用POP3和IMAP協(xié)議接收郵件還需要安裝dovecot軟件包。在rhel5里dovecot整合了IMAP。
安裝dovecot軟件包要解決其依賴性,安裝per-DBI-1.52-1.fc6.i386.rpm和mysql-5.0.22-2.1.0.1.i386.rpm
(10)啟動Sendmail服務(wù)
service sendmail restart和service dovecot restart命令啟動sendmail和dovecot服務(wù),如果每次開機(jī)啟動,可以使用chkconfig命令修改。
(11)測試端口
使用netstat命令測試是否開啟SMTP的25端口、POP3的110端口及IMAP的143端口。
也可以使用netstat -ntla
(12)驗(yàn)證Sendmail的SMTP認(rèn)證功能
telnet localhost 25 后輸入ehlo localhost驗(yàn)證Sendmail的SMTP認(rèn)證功能
telnet localhost 110
telnet mail.redking.com 25
telnet mail.redking.com 110
(13)建立用戶
(14)客戶端測試
Sendmail應(yīng)用案例2:
公司采用兩個(gè)網(wǎng)段和兩個(gè)域來分別管理內(nèi)部員工
team1.redking.com域采用192.168.10.0/24網(wǎng)段
team2.redking.com域采用192.168.20.0/24網(wǎng)段
DNS及Sendmail服務(wù)器地址:192.168.8.1
要求:
(1)員工可以自由收發(fā)內(nèi)部郵件并且能夠通過郵件服務(wù)器往外網(wǎng)發(fā)信。
(2)設(shè)置兩個(gè)郵件群組team1和team2,確保發(fā)送給team1的郵件“team1.redking.com”域成員都可以收到,同理哈,發(fā)送給team2的郵件“team2.redking.com”域成員都可以收到。
(3)禁止待客室的主機(jī)192.168.10.88使用Sendmail服務(wù)器。
需求分析:
要求(1)中設(shè)置員工自由收發(fā)內(nèi)部郵件可以參考Sendmail應(yīng)用案例1去設(shè)置哈,如果需要郵件服務(wù)器把郵件發(fā)到外網(wǎng)需要設(shè)置access文件。
要求(2)需要別名設(shè)置來實(shí)現(xiàn)群發(fā)功能。
要求(3)需要在access文件中拒絕(REJECT)192.168.10.88
因?qū)嶒?yàn)原因:由senmail郵件服務(wù)器代替路由器功能哈~
配置實(shí)戰(zhàn):
(1)配置DNS服務(wù)
配置DNS主配置文件named.conf
配置redking.com.zone區(qū)域文件
配置8.168.192.in-addr.arpa.zone反向區(qū)域文件
配置team1.redking.com.zone區(qū)域文件
配置10.168.192.in-addr.arpa.zone反向區(qū)域文件
配置team2.redking.com.zone區(qū)域文件
配置20.168.192.in-addr.arpa.zone反向區(qū)域文件
(2)修改DNS域名解析的配置文件
vim /etc/resolv.conf
(3)重啟named服務(wù)使配置生效
(4)安裝Sendmail軟件包
RHEL5默認(rèn)安裝sendmail-8.13.8-2.el5及m4-1.4.5-3.el5.1軟件包,我們只需要安裝sendmail-cf-8.13.8-2.el5宏文件包就可以了。
(5)編輯sendmail.mc修改SMTP偵聽網(wǎng)段范圍
配置郵件服務(wù)器需要更改IP地址為公司內(nèi)部網(wǎng)段或者0.0.0.0,這樣可以擴(kuò)大偵聽范圍(通常都設(shè)置成0.0.0.0),否則郵件服務(wù)器無法正常發(fā)送郵件。
vim /etc/mail/sendmail.mc
第116行將smtp偵聽范圍從127.0.0.1改為0.0.0.0
第155行修改成自己域:LOCAL_DOMAIN(`redking.com')dnl
使用m4命令生成sendmail.cf文件,其實(shí)sendmail.mc即是一個(gè)模板文件哈~
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
(6)修改local-host-names文件添加域名及主機(jī)名
vim /etc/mail/local-host-names
(7)群發(fā)郵件設(shè)置
vim /etc/aliases
aliases文件語法格式:
真實(shí)用戶賬號:別名1,別名2
使用newaliases命令生成aliases.db數(shù)據(jù)庫文件
(8)配置訪問控制的access文件
在RHEL5中,默認(rèn)Sendmail服務(wù)器所在的主機(jī)的用戶可以任意發(fā)送郵件,而不需要任何身份驗(yàn)證,即注意/etc/mail/access文件中有一行Connect: 127.0.0.1 RELAY
生成access數(shù)據(jù)庫文件
makemap hash access.db > access
(9)安裝Dovecot軟件包(POP3和IMAP)
到這里sendmail服務(wù)器基本配置完成后,Mail Server就可以完成郵件發(fā)送工作,如果需要使用POP3和IMAP協(xié)議接收郵件還需要安裝dovecot軟件包。在rhel5里dovecot整合了IMAP。
安裝dovecot軟件包要解決其依賴性,安裝per-DBI-1.52-1.fc6.i386.rpm和mysql-5.0.22-2.1.0.1.i386.rpm
(10)啟動Sendmail服務(wù)
service sendmail restart和service dovecot restart命令啟動sendmail和dovecot服務(wù),如果每次開機(jī)啟動,可以使用chkconfig命令修改。
(11)測試端口
使用netstat -ntla命令測試是否開啟SMTP的25端口、POP3的110端口及IMAP的143端口。
(12)建立用戶
(13)客戶端測試
192.168.8.0/24網(wǎng)段測試
群發(fā)測試
192.168.10.0/24網(wǎng)段測試
在服務(wù)器端可以看到team1組成員郵箱已經(jīng)收到192.168.8.0/24網(wǎng)段中michael用戶發(fā)的郵件。下面我們在192.168.10.0/24網(wǎng)段接收測試下~~~
正常接收群發(fā)郵件
下面由team1.redking.com區(qū)域向team2.redking.com用戶成員群發(fā)郵件~~~
成功發(fā)送~~
下面team2成員用戶應(yīng)該收到兩個(gè)封郵件
192.168.20.0/24網(wǎng)段測試
服務(wù)器端狀態(tài):
客戶端狀態(tài):
待客室主機(jī)192.168.10.88測試
最后我們測試禁止待客室的主機(jī)192.168.10.88使用Sendmail服務(wù)器
192.168.10.88主機(jī)不能使用Sendmail郵件功能
將受限的IP地址192.168.10.88換成其他不受限制的IP地址就可以將這原本不能發(fā)送的郵件發(fā)送出去了~~~
##########################華麗分割線############################
本季講解了[RHEL5企業(yè)級Linux服務(wù)攻略]--第5季 Sendmail服務(wù)全攻略之常規(guī)配置,下季更新[RHEL5企業(yè)級Linux服務(wù)攻略]--第5季 Sendmail服務(wù)全攻略之高級配置哈,敬請期待哈~~~0(^-^)0
##########################華麗分割線############################
[RHEL5企業(yè)級Linux服務(wù)攻略]--第5季 Sendmail服務(wù)全攻略之高級配置
企業(yè)環(huán)境
公司郵件服務(wù)器,統(tǒng)一為員工設(shè)置企業(yè)郵箱,公司業(yè)務(wù)以銷售為主,員工數(shù)量為300人并辦公地點(diǎn)不固定。員工收發(fā)郵件一般較小,大部分為產(chǎn)品信息及銷售報(bào)表。為了減少郵件服務(wù)器負(fù)荷,提高郵件傳輸效率,需要有效拒絕垃圾郵件。
郵件服務(wù)器域名:mail.redking.com
郵件服務(wù)器IP地址:192.168.8.1
需求分析
根據(jù)企業(yè)情況,搭建郵件服務(wù)器的需求有以下兩點(diǎn):
1.減少成本
公司員工數(shù)量較多,會占用郵件服務(wù)器大量的磁盤空間,如果不對用戶郵箱容量加以解決限制,可能會隨著郵件數(shù)量的增加,導(dǎo)致服務(wù)器存儲空間不足而擴(kuò)展磁盤容量,所以我們需要對郵箱進(jìn)行磁盤配額限制哈~
2.拒絕垃圾郵件
處理垃圾郵件會增加服務(wù)器的負(fù)擔(dān),占用郵件服務(wù)器的硬件資源,造成正常響應(yīng)的延遲。而企業(yè)員工會經(jīng)常出差,辦公地點(diǎn)不固定,無法使用access數(shù)據(jù)庫做相應(yīng)的篩選,只能通過郵件的認(rèn)證機(jī)制防止垃圾郵件濫用服務(wù)器資源。
解決方案
1.配置DNS服務(wù)器
(1)配置DNS主配置文件named.conf
vim /etc/named.conf
(2)配置redking.com.zone區(qū)域正向解析文件
(3)配置8.168.192.in-addr.arpa.zone區(qū)域反向解析文件
(4)重啟named服務(wù)使配置生效
2.修改local-host-names文件
vim /etc/mail/local-host-names
3.配置sendmail.cf
確保sasl庫已經(jīng)安裝
編輯sendmail.mc配置文件
(1)開啟sendmai認(rèn)證
互聯(lián)網(wǎng)上運(yùn)行的郵件服務(wù)器,必須開啟中繼功能才能完成外部郵件的轉(zhuǎn)發(fā)哈~,但是如果不加以限制,則會使非法用戶有機(jī)會執(zhí)行各種操作,如使用服務(wù)器發(fā)送垃圾郵件,甚至?xí)黄渌]件服務(wù)器屏蔽哈,這樣偶們滴郵件服務(wù)器就無法向外部轉(zhuǎn)發(fā)郵件,我們可以添加郵件的認(rèn)證機(jī)制,通過驗(yàn)證郵件使用者的賬號和密碼,能夠有效拒絕非法用戶使用郵件服務(wù)器中繼功能哈~~~
去掉以下三行的dnl字段開啟sendmail認(rèn)證功能
52行 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53行 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
123行 DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
TRUST_AUTH_MECH的作用是使sendmail不管access文件中如何設(shè)置都能relay那些通過LOGIN、PLAIN或DIGEST-MD5方式驗(yàn)證的郵件。
`confAUTH_MECHANISMS'的作用是確定系統(tǒng)的認(rèn)證方式。
`Port=submission, Name=MSA, M=Ea'的作用是開啟認(rèn)證,并以子進(jìn)程運(yùn)行MSA實(shí)現(xiàn)郵件的賬戶和密碼的驗(yàn)證。
注意:FEATURE要加在MAILER語句前面,否則可能造成郵件服務(wù)器運(yùn)行錯誤哈~~~
(2)設(shè)置用戶用戶郵件的大小限制
在sendmail.mc中沒有這個(gè)選項(xiàng),這個(gè)要在sendmail.cf中設(shè)置哈~
vim /etc/mail/sendmail.cf
默認(rèn)不限制:
# maximum message size
#O MaxMessageSize=0
我們可以設(shè)置成郵件最大不超過20MB
# maximum message size
O MaxMessageSize=20971520
意思為每次收發(fā)郵件最大為20MB,任何超過這個(gè)值的郵件將被拒絕。
(3)設(shè)置本地郵箱的域名
LOCAL_DOMAIN(`redking.com')dnl
(4)使用m4生成新的sendmail.cf文件
4.配置磁盤配額
(1)修改fstab文件
為了方便管理哈,將用戶的郵件信息存放在/var/mail目錄中,建議將/var劃分到獨(dú)立的分區(qū),這樣我們才能對/var文件系統(tǒng)添加磁盤配額功能,參考[RHEL5企業(yè)級Linux服務(wù)攻略]--第1季 Linux服務(wù)器的搭建與測試。
vim /etc/fstab
添加/var文件系統(tǒng)參數(shù)
LABEL=/var /var ext3 defaults,usrquota,grpquota 1 2
usrquota為用戶的配額參數(shù),grpquota為組的配額參數(shù)
修改/etc/fstab文件后保存退出,重啟系統(tǒng),使系統(tǒng)按照新的參數(shù)掛載文件系統(tǒng)。
參考RHCE課程-RH131Linux管理筆記六-Linux文件系統(tǒng)管理、掛載及sudo設(shè)置與使用
重啟過程中,因?yàn)槿笔漕~文件,所以操作系統(tǒng)在裝載文件系統(tǒng)時(shí)會報(bào)錯,通過下面創(chuàng)建配額文件工作后將會消除錯誤。
(2)創(chuàng)建配額文件
因?yàn)榇娣培]件信息的/var目錄在獨(dú)立的分區(qū)哈~所以我們使用quotachek命令在/var目錄下分別為用戶和組創(chuàng)建配額文件
quotacheck -cugm /var
(3)設(shè)置磁盤配額
為用戶和組設(shè)置詳細(xì)的配額限制,我們可以使用edquota命令進(jìn)行磁盤配額的設(shè)置哈~
edquota命令格式:
edquota -u 用戶名
edquota -g 組名
比如為用戶michael配置磁盤配額限制,執(zhí)行edquota命令,打開用戶配額配置文件
edquota -u michael
Filesystem:文件系統(tǒng)的名稱
blocks:用戶當(dāng)前使用的塊數(shù)(磁盤空間),單位為KB
soft:可以使用的最大磁盤空間,可以在一段時(shí)期內(nèi)被超過軟限制規(guī)定
hard:可以使用的磁盤空間的絕對最大值,達(dá)到了該限制后,操作系統(tǒng)將不再為用戶或組分配磁盤空間
inodes:用戶當(dāng)前使用的inode節(jié)點(diǎn)數(shù)量(文件數(shù))
soft:可以使用的最大文件數(shù)??梢栽谝欢螘r(shí)期內(nèi)被超過軟限制規(guī)定
hard:可以使用的文件數(shù)的絕對最大值。達(dá)到該限制后,用戶或組將不能再建立文件
設(shè)置磁盤空間或者文件數(shù)限制,需要修改對應(yīng)的soft、hard值,而不要修改blocks和inodes值哈~根據(jù)當(dāng)前磁盤的使用狀態(tài),操作系統(tǒng)會自動設(shè)置這兩個(gè)字段的值。
注意:如果soft或者hard值被設(shè)置為0則表示沒有限制哈~
比如對用戶michael將磁盤空間硬限制設(shè)置為200MB
(4)使磁盤配額生效
命令:quotaon -augv 目錄名
參數(shù):
-a 開啟在/ect/fstab文件里,有加入quota設(shè)置的分區(qū)的空間限制。
-g 開啟群組的磁盤空間限制。
-u 開啟用戶的磁盤空間限制。
-v 顯示指令指令執(zhí)行過程。
quotaon -av
注意:磁盤配額對root用戶沒有效果,并且磁盤配額設(shè)置的參數(shù)要比現(xiàn)有的數(shù)量要大,如分區(qū)大小要比現(xiàn)使用空間要大,文件數(shù)要比現(xiàn)有文件數(shù)要大。
(5)查看磁盤配額狀態(tài)
repquota -a
注意:
OK,如果企業(yè)員工較多,那么像這樣一個(gè)個(gè)為每個(gè)員工單獨(dú)配置磁盤配額將會增加我們管理的難度哈~這里我們可以建立一個(gè)樣簡單的腳本,將所有用戶的磁盤空間科學(xué)硬限制為200MB哈~
在/etc/mail/目錄下創(chuàng)建一個(gè)quota.sh磁盤配額腳本文件
vim /etc/mail/quota.sh
quota.sh腳本內(nèi)容:
#!/bin/bash
for i in michael redhat michaelwang client1 client2 client3 clienta clientb clientc
do
setquota -u $i 0 200000 0 0 /var
done
for循環(huán)語句in后面跟需要進(jìn)行磁盤配額的用戶名
setquota能夠在命令行下直接進(jìn)行磁盤配額限制,格式如下哈~
setquota -u 用戶 block軟限制 block硬限制 inode軟限制 inode硬限制
因?yàn)樾枰獙⒂脩羰褂玫拇疟P空間限制為200MB,所以只需要更改block硬限制就可以了哈~
我們可以使用 . /etc/mail/quota.sh執(zhí)行此腳本哈~
執(zhí)行quotaoff -av后執(zhí)行quotaon -av使設(shè)置的磁盤配額生效
5.配置dovecot
確認(rèn)已經(jīng)安裝了dovecot RPM包哈~安裝完dovecot軟件包后,默認(rèn)情況下,POP3和IMAP就可以正常工作,能夠接收客戶端的接受郵件請求哈~,但是為了保證客戶端能夠使用加密的形式接受郵件,還需要為dovecot添加相應(yīng)的密鑰和證書,啟動POP3S或者IMAPS的支持哈~這時(shí)Mail服務(wù)器必須生成相應(yīng)的密鑰和證書才能正常工作哈~
(1)生成私鑰和自簽名證書
Mail服務(wù)器會使用私鑰加密郵件,客戶端在收取郵件時(shí),則使用Mail服務(wù)器證書中的公鑰對郵件進(jìn)行解密,這樣才能正常讀取郵件哈~,/etc/pki/tls/certs/Makefile文件保存著生成密鑰和證書的腳本設(shè)置,這里使用make命令制作dovecot.pem文件,其保存郵件服務(wù)器的私鑰和公鑰信息。
make -C /etc/pki/tls/certs/ dovecot.pem
生成證書時(shí),按要求依次填寫國家、省份、城市等等信息哈~
(2)修改dovecot.conf配置文件
vim /etc/dovecot.conf
查詢dovecot使用的密鑰和證書的位置
修改dovecot.conf配置信息中密鑰和證書的位置指向我們剛剛生成的dovecot.pem
(3)重啟sendmail、dovecot、saslauthd服務(wù)
(4)查看端口狀態(tài)
netstat -tupln
6.測試
(1)服務(wù)器狀態(tài)
eth1網(wǎng)卡192.168.5.110當(dāng)路由器用哈~我不知道在vmware中怎么模擬路由器,汗~~哪位大哥如果會的話,教一下偶哈~
(2)客戶端測試
網(wǎng)段:192.168.5.0/24
發(fā)個(gè)郵件測試下哈~
接收測試郵件~
測試發(fā)送20MB郵件
20MB郵件發(fā)送成功
client3郵箱狀態(tài)
測試發(fā)送超出20MB限制的郵件
提示超出郵件限制大小,OK,成功~
最后我們測試郵箱用戶的磁盤配額設(shè)置哈,現(xiàn)在client3用戶的郵件中差不多有196MB郵件容量,限額是200MB哈~
下面我們測試如果再發(fā)個(gè)10MB的郵件,這樣就超出200MB限額了,看下能否發(fā)送成功哈~
在michael用戶端顯示成功發(fā)送哈~
如果所發(fā)郵件超出收件人磁盤配額限額哈~,發(fā)件人會收到一封系統(tǒng)退信哈~
提示:procmail: Quota exceeded while writing "/var/mail/client3"
這時(shí),收件人必須接收完郵件服務(wù)器上的郵件或由管理員增加到使用空間的限額后才能正常接收郵件哈~
########################Michael分割線########################
謹(jǐn)以此博文慶祝blog成為blog star,獻(xiàn)給關(guān)注、支持本blog的網(wǎng)友哈~謝謝大家的支持、留言及回復(fù),大家也可以將自己研究及配置的實(shí)驗(yàn)方案提供一下,大家一起研究交流一下,共同進(jìn)步哈~~~下季內(nèi)容[RHEL5企業(yè)級Linux服務(wù)攻略]--第6季 vsftpd服務(wù)全攻略之常規(guī)配置,敬請期待~~~
########################Michael分割線########################