linux as3.0 sendmail SMTP 驗證 成功總結

來源:互聯網
上載者:User
一、檢查所需的包是否已經安裝好
要在Quick Linux AS3裡使用SMTP認證,需要安裝sendmail和cyrus-sasl,這兩個包在Quick AS3安裝時預設應該都是安裝好了的,如果你在使用Redhat或其他的Linux版本,請檢查這兩個包是否已經裝好
二、我們來改一下幾個設定檔
1。先來看一下/usr/lib/sasl2/Sendmail.conf檔案,裡面的內容應該是pwcheck_method:saslauthd,將這個檔案複製成smtpd.conf,即cp Sendmail.conf smtpd.conf,這個檔案也要在/usr/lib/sasl2/目錄下;
2.然後/etc/init.d/saslauthd start來啟動sasl的密碼認證(要每次開機自動啟動這項服務,就運行ntsysv選中saslauthd,再存檔退出ntsysv)。注意:我把這裡添加就 OK
3。修改/etc/mail/sendmail.mc檔案,有3個地方要改:
第42行和43行,把最前面的dnl刪除,變成:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
第84行DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl注釋掉
這是讓sendmail監聽在全部網路連接埠上,而不是只監聽在本機上,有很多人抱怨sendmail沒辦法收信,這是最基本要修改的地方,最簡單就事注釋 掉
DAEMON_OPTIONS(`Port=587, Name=MSA, M=Ea')dnl 改為
DAEMON_OPTIONS(`Port=25, Name=MSA')dnl
根據這樣的配置,sendmail只有在587連接埠才對使用者強制進行身份認證,而在smtp服務預設用的連接埠25(OutlookExpress上預設用的就是25)上則使用者認不認證都無所謂,我在OutlookExpress上選擇“我的伺服器要求身份認證”sendmail就進行認證,若不選該選項, sendmail伺服器不加任何認證就會轉寄任何郵件。這種策略顯然是不合理的,安全的策略是只在預設的25連接埠強制進行身份認證,否則不予轉寄郵件,在其他連接埠根本不開啟。在這種配置下,郵件伺服器僅在收發雙方都是本機使用者的時候才不強制進行身份認證,其他情況的時候都要進行認證。
注意千萬不要寫成 這樣
DAEMON_OPTIONS(`Port=25, Name=MTA')dnl
DAEMON_OPTIONS(`Port=25, Name=MSA')dnl
兩句同時存在 ,這樣 25連接埠不能開啟
好了,都改完了,我們存檔退出。
4.把mc檔案編譯成sendmail的配置,運行m4 sendmail.mc >sendmail.cf;
5./etc/init.d/sendmail restart(重新啟動sendmail)
大功告成,重新測試OUTLOOK吧。注意在OUTLOOK裡“郵件發送伺服器”選中"我的伺服器要求身分識別驗證“,設定裡只要選擇”使用與郵件接受伺服器相同的設定“即可。否則的話出現郵件服務發送的錯誤。
在access檔案中不要設定拒絕轉寄任何郵件,我是將access檔案清空在重建access.db,讓sendmail完全按照sendmail.cf中的配置去做
大部分都像樓主所說的那樣,只不過我的telnet localhost 25後雖然出現:

250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
但是認證後總是提示“535 5.7.0 authentication failed”。後來查看記錄檔發現提示“May 24 16: 11:42 DGIT01 saslauthd[1546]: do_auth : auth failure: [user=zj ] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]”
於是我在/etc/pam.d/目錄下參照其它檔案建立一個“smtp”檔案(postfix的是smtp.postfix),內容如下:
#%PAM-1.0
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
上面幾行是什麼意思,可以參考PAM 方面的文檔,從此認證成功。
還有,要防止本機使用者利用 Sendmail 伺服器上的漏洞,最好是讓郵件使用者只使用電子郵件程式來訪問 Sendmail 伺服器。郵件伺服器上的 Shell 帳號不應該被允許,/etc/passwd 檔案中的所有使用者 shell 都應該被設定為 /sbin/nologin,在添加系統使用者時可以useradd -s /sbin/nologin 使用者名稱,這樣添加的使用者名稱就沒有了shell,只能收發信而不能登陸到伺服器運行其他程式,安全一點。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.