作者 主題: [FC5 sendmail 心得] Proper authentication required  (閱讀 7646 次)

0 會員 與 1 訪客 正在閱讀本文。

fz150n

  • 憂鬱的高中生
  • ***
  • 文章數: 111
    • 檢視個人資料
了然,一直都用Openwebmail收發信件,不然outlook也用HiNet寄信,
不然就用人家現成的mailserver寄信,直到昨天幫朋友安裝FedoraCore5時,
才遇到這個問題。

所以我想,如果剛好有人也遇到相同的問題,希望能夠參考我的心得之後,可以
快速的將sendmail認證設定好。

不想變成OpenRelay,sendmail當然最好還是開啟認證的功能,(就是當你想利
用這台郵件主機寄信時,一定要透過適當的認證方式才能寄信),其實網路上有
很多作法都可以參考,我的心得只針對Fedora系列,其他平台我就沒試過了。

1. 首先要確認有這些sendmail套件:
代碼: [選擇]
sendmail-cf-8.13.5-3
sendmail-devel-8.13.5-3
sendmail-8.13.5-3


2. Cyrus-sasl則要有這些套件:
代碼: [選擇]
cyrus-sasl-devel-2.1.21-10
cyrus-sasl-lib-2.1.21-10
cyrus-sasl-md5-2.1.21-10
cyrus-sasl-2.1.21-10
cyrus-sasl-plain-2.1.21-10
cyrus-sasl-gssapi-2.1.21-10


Cyrus-sasl不一定要全裝,只是我還沒測試過哪些可以不要。

3. 修改/etc/mail/sendmail.mc

代碼: [選擇]
dnl define(`confAUTH_OPTIONS', `A')dnl
define(`confAUTH_OPTIONS', `A p')
TRUST_AUTH_MECH(`EXTERNAL PLAIN DIGEST-MD5 CRAM-MD5 LOGIN')
define(`confAUTH_MECHANISMS', `PLAIN EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')


其他部份我就沒動了,改好之後存檔。

4. 產生新的sendmail.cf
代碼: [選擇]
先備份舊的:  mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak
產生新的:m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

5. 確認saslauthd是否啟動

完成第4個步驟就重新啟動sendmail的話,還不夠,Fedora好像預設不會自動啟動saslauthd,所以你可以先手動啟動saslauthd:

代碼: [選擇]
/etc/rc.d/init.d/saslauthd start

看一下/car/log/message的訊息:
代碼: [選擇]
Aug 12 12:45:46 myfedora saslauthd[29710]: detach_tty      : master pid is: 29710
Aug 12 12:45:46 myfedora saslauthd[29710]: ipc_init        : listening on socket: /var/run/saslauthd/mux


這樣就表示saslauthd6啟動成功了,為了確保下次開機會自動啟動:
代碼: [選擇]
chkconfig --level 234 saslauthd on

6. 重新啟動sendmail

7. 本機測試:
外部也可以啦~假設你連到本機去:
代碼: [選擇]
[root@mail init.d]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 myfedora.com.tw ESMTP Sendmail 8.13.5/8.13.5; Sat, 12 Aug 2006 12:49:18 +0800
ehlo localhost
250-myfedora.com.tw Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH PLAIN GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP


該有的認證都有了,是該用outlook寄寄看了:

8. 設定outlook

帳號設定都一樣,把「我的伺服器需要認證」打勾,帳號密碼跟登入的一樣,不然你喜歡重打一次也可以。

接著寄一封信到外面的信箱,像hotmail yahoo之類的。

看一下 /var/log/maillog

引用
Aug 12 12:39:21 myfedora sendmail[29471]: AUTH=server, relay=111-222-333-444.dynamic.hinet.net [111.222.333.444], authid=my.name, mech=LOGIN, bits=0


這樣就不會出現錯誤,而且你的郵件主機也不會被拿來當郵件跳板了。