sendmail郵件服務器搭載smtp和pop3認證的配置方法 && SMTP測試方法(轉載)

sendmail郵件服務器搭載smtp和pop3認證的配置方法
網上介紹sendmail的文章千百種,不多有跟着作下來一次成功的。多少都有些說的不許確的地方。我給你們共享一下我通過實驗環境測試,徹底可行的方法。linux

1.軟件準備數據庫

操做系統:centos5.0centos

我選擇centos5,最新的操做系統,不要再用redhat9了,好久沒有更新了,企業裏用有風險的。更新換代吧。服務器

如下軟件,centos5所有自帶,無需另外下載。測試

郵件系統:
               sendmail8.13
               sendmail-cf-8.13
               m4-1.4操作系統

pop3認證:dovecot-1.0dns

smtp認證:
        cyrus-sasl-2.1
        cyrus-sasl-md5-2.1
        cyrus-sasl-plain-2.1
          cyrus-sasl-lib-2.1進程

sasl這裏,我要說一句,網上有人說「sendmail-8.13已經包含cyrus-sasl的功能,所不必再安裝cyrus-sasl」
大 哥大姐們,沒有cyrus-sasl用什麼作認證.....sendmail官方只是說,sendmail的rpm包默認已經支持了cyrus-sasl 認證方式,也就是說,sendmail會在cyrus-sasl的工做目錄下自動建立相關認證配置文件,並監聽25號端口,就不用你去手動本身創建配置文 件和監聽端口了。當有請求進入25號端口的時候,sendmail會自動找到/usr/lib/sasl2/Sendmail.conf讀取認證方法。下 面我會詳細解釋。ip

2.安裝軟件md5

rpm -ivh把上面軟件全裝上,都在光盤裏呢,好裝。

3.認證配置

pop3:

網上說修改/etc/dovecot.conf文件,將第17行的:#protocols = imap imaps pop3 pop3s的#去掉。其實不用,它默認已經啓用了這些服務,除非你只想用dovecot-auth的認證,你能夠改爲protocols = none,不然不用改。

smtp:
注意,smtp稍微麻煩一下。

我講下原理:

當用戶請求進入 25號端口後,sendmail調用cyrus-sasl的saslauthd進程,saslauthd要求對方輸入本地系統用戶的用戶名和密碼,當用戶 輸入好後,saslauthd會去查找系統的/etc/shadow文件,密碼確認無誤,放行,告訴sendmail,這個用戶合法,能夠使用郵件服務來 發郵件。

這時候你去/usr/lib/sasl2/下看看,sendmail已經作好了一個sendmail.conf文件,裏面指明瞭:pwcheck_method=saslauthd,說明sendmail認證時就要調用saslauthd
因此要實現上述功能,就要設置cyrus-sasl的saslauthd,給它指定認證方式。
首先,進入/etc/sysconfig/,打開saslauthd的腳本,找到第7行的:

MECH=

等號後面無論寫什麼,咱們都要改爲:

MECH=shadow

保存

這樣saslauthd纔會去找shadow文件給用戶作認證。


其實saslauthd還能夠用本身的用戶名和密碼數據庫作驗證,但這樣不方便,還要另外建立用戶,不如直接用系統自身存在的用戶名和密碼。


4.Sendmail配置.

配置郵件服務器名稱:

打開/etc/mail/local-host-names
加入你 @後面的郵箱地址。好比我這裏是otto@linuxedentest.com
那麼,你要在local-host-names文件裏的第二行添加:
linuxedentest.com
保存

固然
local-host-names還能夠設置郵箱別名,這個很少說,你們查文檔看看。

改好後還要去你的dns服務器上,打上mx標誌,添加A標記,用來解析dns名和地址。具體方法就要查查bind的設置方法了,或者win2003的dns設置方法。


配置sendmail.mc:

打開/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

把前面的dnl註釋去掉,變成:

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

上面兩句的意思是:

放行那些經過EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式驗證的郵件用戶,無視access文件中的設置。

confAUTH_MECHANISMS,肯定系統支持的認證方式。LOGIN PLAIN 方式下,outlook用的多。


還不算完,找到:

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, )dnl

改爲:

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, )dnl

這樣全部ip地址均可以經過smtp端口使用咱們的郵件服務器了。


-----------------------------------------------------------
這裏要說一句,不要改

dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

這句話!保持註釋狀態。

上面那句話,網上好多文章都說把Port=submission,改爲Port=25,說是強制全部用戶在25端口上作認證。

我不知道sendmail之前的版本是怎麼樣設置smtp認證的。sendmail8.13不用這麼設置,這句話人家sendmail的意思是:取消註釋後,一旦當25號端口被重定向或者被屏蔽,或者在25號端口打不開的狀況下,立刻使用587備用端口給用戶作認證。

原本人家sendmail就已經打開了25端口(Port=smtp了已經),你卻在這裏還Port=25,把備用端口也改爲25,這不是讓sendmail的sm-client認

證進程和sendmail的主進程搶端口麼....

-----------------------------------------------------------


到此爲止,保存sendmail.mc


用m4從新生成sendmail.cf文件

# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf


啓動dovecot進程:
/etc/init.d/dovecot start

啓動saslauthd進程:
/etc/init.d/saslauthd start

啓動sendmail進程:
/etc/init.d/sendmail start


把這些進程加入到啓動腳本中去:
chkconfig dovecot on
chkconfig saslauthd on
chkconfig sendmail on

ok,全部設置所有完成,能夠正常認證和收發郵件了。

相關文章
相關標籤/搜索