Sendmail是具有較長歷史並不斷發展的郵件伺服器軟體,通過對Sendmail伺服器的配置管理,可以實現基本的郵件發送功能;dovecot伺服器實現了POP3協議,可以與Sendmail伺服器配合工作,實現用戶對郵件的收取功能.本次我"/> Sendmail是具有較長歷史並不斷發展的郵件伺服器軟體,通過對Sendmail伺服器的配置管理,可以實現基本的郵件發送功能;dovecot伺服器實現了POP3協議,可以與Sendmail伺服器配合工作,實現用戶對郵件的收取功能.本次我"/>
歡迎您光臨本站 註冊首頁

Linux系列-Red Hat5平台下Sendmail郵件服務搭建

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
Linux系列-Red Hat5平台下Sendmail郵件服務搭建<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> Sendmail是具有較長歷史並不斷發展的郵件伺服器軟體,通過對Sendmail伺服器的配置管理,可以實現基本的郵件發送功能;dovecot伺服器實現了POP3協議,可以與Sendmail伺服器配合工作,實現用戶對郵件的收取功能.本次我們會看到Sendmaildovecot結合運用的實例.本次分三部分說,先來了解一下sendmail. 第一部分:sendmail的安裝、控制啟動及主要配置文件 一. Sendmail安裝 Sendmail

伺服器在RHEL5系統中是默認安裝的,完整的安裝應包括四個軟體包.如果沒安裝或是重新安裝,可以使用rpm命令進行手動安裝.如下:
1>.sendmail //sendmail伺服器程序的安裝包,是最重要的軟體包 2>.m4 //包括了配置sendmail伺服器的必要工具 3>.sendmail-cf //包括了重新配置sendmail伺服器的必要配置文件 4>.sendmail-doc //包括了sendmail伺服器的說明文檔 注意:Sendmail

服務程序在安裝后並沒有設置在系統啟動時自動運行,所以我們還得使用chkconfig命令設置它在系統啟動時自動啟動
二. Sendmail的控制啟動 在啟動sendmail伺服器程序之前,需要先確保運行sendmail伺服器的主機有完整的域名,在internet上能夠解析到,並且有相應的郵件交換(MX)記錄以及能夠反向解析. Sendmail伺服器使用名為sendmail的啟動腳本進行程序的啟動與停止,此腳本位於「/etc/init.d/」目錄中.也可以使用service命令調用sendmail腳本執行sendmail伺服器的啟動和停止操作. 三. Sendmail主要配置文件 1. sendmail

伺服器的配置目錄
sendmail伺服器使用的所有配置文件都保存在目錄「/etc/mail」中,該目錄中保存了sendmail伺服器運行所需要的配置文件以及庫文件等多種類型的文件,如下: [root@mail ~]# ls /etc/mail access helpfile Makefile submit.cf virtusertable access.db local-host-names sendmail.cf submit.cf.bak virtusertable.db domaintable mailertable

sendmail.mc submit.mc
domaintable.db mailertable.db spamassassin trusted-users 2. 配置文件sendmail.cfsendmail.mc Sendmail伺服器的主配置文件是sendmail.cf.它比較複雜,所以通常我們不會直接去編輯它,而是編輯sendmail.mc文件然後使用m4命令由sendmail.mc文件生成sendmail.cf文件. 3. 資料庫配置文件和資料庫文件 資料庫文件用於進行sendmail伺服器的輔助配置.在「/etc/mail」目錄中所有擴展名為「.db」的文件都是資料庫文件,每個資料庫文件在同一目錄下都對應有同名的無擴展名文件,例如對於

access.db文件,對應有名為access的文本文件,稱為資料庫配置文件.當我們在資料庫配置文件中進行相應的設置后,需要使用makemap命令將資料庫配置文件生成「.db」的資料庫文件.
4. 日誌文件 Sendmail伺服器的日誌文件位於「/var/log」目錄中,文件名為maillog,通過該文件可以了解到sendmail伺服器的運行狀態信息. 第二部分:sendmail的配置實例 上面我們大概對sendmail有了一個了解,現在我們來看看具體的做法,拓撲圖就用下面這個夠簡單的吧. 1. 域名設置

郵件伺服器的正常工作需要在DNS伺服器中進行相應的設置,本實驗我們DNSSendmail位於同一台伺服器上,下面是DNS的設置: [root@mail ~]# tail -10 /var/named/chroot/etc/named.conf … … zone "zpp.com" IN { type master; file "zpp.com.zone"; }; zone "1.168.192.in-addr.arpa" IN {

//
反向區域必須要有,否則會被當作垃圾郵件伺服器
type master; file "192.168.1.rev"; }; [root@mail ~]# cat /var/named/chroot/var/named/zpp.com.zone $TTL 86400 @ IN SOA mail.zpp.com. admin.zpp.com. (

1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS mail.zpp.com.

mail IN A 192.168.1.1 @ IN MX 5 mail.zpp.com. //設置MX記錄之後才可以實現與其它郵件伺服器通郵 [root@mail ~]# cat /var/named/chroot/var/named/192.168.1.rev $TTL 86400 @ IN SOA mail.zpp.com. admin.zpp.com.

(
1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS

mail.zpp.com.
1 IN PTR mail.zpp.com. [root@mail ~]# 2. 設置local-host-names文件 sendmail伺服器的配置目錄下,local-host-names文件用於設置郵件伺服器提供郵件服務的域名. [root@mail ~]# cat /etc/mail/local-host-names # local-host-names - include all aliases for your machine here. zpp.com

[root@mail ~]# 3. 開啟sendmail伺服器的網路介面 Sendmail伺服器出於安全考慮,默認只對lo網路介面(127.0.0.1)提供服務,為了使伺服器能夠為主機的所有網路介面(地址為0.0.0.0)提供服務,需要在sendmail.mc文件中進行配置的修改. [root@mail ~]# vi /etc/mail/sendmail.mc //查找此行 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

//改為 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl 說明:修改之後,sendmail伺服器將監聽主機所有網路介面的25 4. sendmail伺服器的用戶管理 1>.設置SMTP的用戶認證 為避免大量垃圾郵件產生,在sendmail伺服器中需要設置發送郵件的用戶認證,RHEL5系統中提供的Sendmail伺服器提供了SMTP的用戶認證功能,默認沒有啟用,因此需要在sendmail.mc文件中進行如下配置:

[root@mail ~]# vi /etc/mail/sendmail.mc //查找此行 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl //改為 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
說明:在sendmail.mc文件中,行首的dnl表示該行為註釋行,是無效的,因此通過去除行首的dnl字元串可以開啟相應的設置行. sendmail伺服器中,使用了sasl的第2版(sasl2)作為SMTP的認證方式,在「/usr/lib/sasl2/」目錄中的sendmail.conf配置文件設置了使用saslauthd服務程序提供用戶的認證服務 [root@mail ~]# cat /usr/lib/sasl2/Sendmail.conf pwcheck_method:saslauthd 因此當sendmail伺服器使用SMTP認證功能時,需要確保saslauthd服務程序正確運行.

[root@mail ~]# chkconfig --list saslauthd
saslauthd 0:off 1:off 2: off 3: off 4: off 5: off 6: off [root@mail ~]# chkconfig --level 35 saslauthd on [root@mail ~]# /etc/init.d/saslauthd start Starting saslauthd: [ OK ] [root@mail ~]# 2>.建立用戶帳號

[root@mail ~]# groupadd group-zpp
[root@mail ~]# adduser -g group-zpp -s /sbin/nologin zpp001 [root@mail ~]# adduser -g group-zpp -s /sbin/nologin zpp002 [root@mail ~]# passwd zpp001 Changing password for user zpp001. New UNIX password: BAD PASSWORD: it is too simplistic/systematic Retype new UNIX password: passwd: all authentication tokens updated successfully.

[root@mail ~]# passwd zpp002 Changing password for user zpp002. New UNIX password: BAD PASSWORD: it is too simplistic/systematic Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@mail ~]# 說明:建立郵件用戶組是為了便於郵件用戶的管理.使用「-s」選項指定用戶的shell為「/sbin/nologin,即不允許用戶登錄Linux系統,從而起到安全的作用.

3>.設置郵件別名和郵件群發功能 sendmail伺服器中使用aliases機制實現郵件別名和郵件群發功能,在「/etc」目錄下存在名為aliasesaliases.db的兩個文件,在對「/etc/aliases」文件的內容進行修改後,需要執行newaliases命令,使aliases文件中的內容重新生成aliases.db文件. [root@mail ~]# tail -10 /etc/aliases sales: postmaster support: postmaster # trap decode to catch security attacks

decode: root # Person who should get root's mail #root: marc zoupanpan: zpp001,zpp002 [root@mail ~]#newaliases /etc/aliases: 78 aliases, longest 13 bytes, 787 bytes total 說明:此處我們創建包含用戶zpp001,zpp002的別名zoupanpan,稍後驗證時,以此實現群發. 5. 訪問控制的設置

Sendmail伺服器中使用access.db資料庫進行基於主機地址的訪問控制 [root@mail ~]# cat /etc/mail/access Connect:localhost.localdomain RELAY Connect:localhost RELAY Connect:127.0.0.1 RELAY 說明:此處我們保持默認設置即可,以此讓sendmail伺服器所在主機中的用戶任意發送郵件,而 不需要身份驗證. 6.

生成sendmail.cf文件
[root@mail ~]# cd /etc/mail [root@mail mail]# m4 sendmail.mc > sendmail.cf [root@mail mail]# 7. 重新啟動sendmail伺服器 [root@mail mail]# /etc/init.d/sendmail restart Shutting down sendmail: [ OK ] Shutting down sm-client:

[ OK ]
Starting sendmail: [ OK ] Starting sm-client: [ OK ] 至此sendmail伺服器就算搭建好了,下面我們來看一下郵局的基本配置. 第三部分:郵局基本配置 sendmail伺服器實現了SMTP功能,只實現了郵件的發送功能,收取則需要使用POP3IMAP,下面是郵局基本配置: 一. 安裝POP3服務

1.安裝dovecot軟體包 RHEL5系統中自帶了名為dovecotRPM安裝包,用於安裝dovecot伺服器,由於該伺服器依賴的軟體包較多,所以不適合用rpm命令安裝,最好是在圖形界面下使用軟體包管理程序進行安裝 2.設置dovecot軟體包 [root@mail mail]# vi /etc/dovecot.conf //找到下面的一行 #protocols = imap imaps pop3 pop3s

//#註釋掉即可如下 protocols = imap imaps pop3 pop3s 3.啟動dovecot服務程序 [root@mail mail]# /etc/init.d/dovecot restart Stopping Dovecot Imap: [OK] Starting Dovecot Imap: [OK] 5. 設置

dovecto服務的啟動狀態
[root@mail mail]# chkconfig --list dovecot dovecot 0:off 1: off 2: off 3: off 4: off 5: off 6: off [root@mail mail]# chkconfig --level 35 dovecot on [root@mail mail]# chkconfig --list dovecot dovecot 0: off 1: off 2: off 3:on 4: off 5:on 6: off

[root@mail mail]# netstat -ntpl | grep 110
tcp 0 0 :::110 :::* LISTEN 6509/dovecot 二. 使用郵件客戶端驗證 客戶端軟體我們就使用windows自帶的OE.帳號設置就不說了很簡單.需要注意的是設置帳戶時不要忘了將身份驗證的選項卡勾上,Sendmail伺服器設置了SMTP認證,如下圖: 下圖顯示的是用戶zpp001的發件箱,可以看到用戶zpp001可以給用戶zpp002和用於群發的別名zoupanpan發送郵件.

下圖是用戶zpp002的收件箱,可以看到他能夠正常收信.
現在我們就搭建好了sendmail郵件伺服器!


[火星人 ] Linux系列-Red Hat5平台下Sendmail郵件服務搭建已經有542次圍觀

http://coctec.com/docs/linux/show-post-51993.html