linux as3.0 sendmail SMTP 验证 成功总结
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                linux as3.0 sendmail SMTP 验证 成功总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            一、檢查所需的包是否已經安裝好
要在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,只能收發信而不能登陸到服務器運行其他程序,安全一點。
 
                        
                        
                        要在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,只能收發信而不能登陸到服務器運行其他程序,安全一點。
轉載于:https://www.cnblogs.com/cailinaaa/archive/2005/05/23/160852.html
總結
以上是生活随笔為你收集整理的linux as3.0 sendmail SMTP 验证 成功总结的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 家父张二河什么意思呢
- 下一篇: 我骄傲我是一棵树原文的拼音
