设为首页 收藏本站
查看: 824|回复: 0

[经验分享] sendmail中關於只認access控制文件的問題

[复制链接]

尚未签到

发表于 2015-9-15 04:35:31 | 显示全部楼层 |阅读模式
  目標是建一個支持SMTP認證服務器.   
我安裝的是REDHAT AdvanceServer 3,系統自帶的是sendmail8.12.10,我直接升級到sendmail 8.13.1後編譯安裝了cyrus-sasl-2.1.19,telnet localhost 25信息如下:   
[iyunv@freemail mail]# telnet localhost 25   
Trying 127.0.0.1...   
Connected to localhost.localdomain (127.0.0.1).   
Escape character is '^]'.   
220 freemail.161.com ESMTP Sendmail 8.12.11/8.12.11; Fri, 3 Sep 2004 09:29:22 +0800   
ehlo sd   
250-freemail.161.com Hello localhost.localdomain [127.0.0.1], pleased to meet you   
250-ENHANCEDSTATUSCODES   
250-PIPELINING   
250-EXPN   
250-VERB   
250-8BITMIME   
250-SIZE   
250-DSN   
250-ETRN   
250-AUTH LOGIN PLAIN   
250-DELIVERBY   
250 HELP   
250-AUTH LOGIN PLAIN出現應該是已經支持SMTP認證了.   
我的ACCESS文件內容:   
localhost.localdomain RELAY   
localhost RELAY   
127.0.0.1 RELAY   
問題就出現了,我用客戶端OUTLOOK發信,始終說我IP不在支持範圍:   
Sep 3 09:32:57 freemail sendmail[3805]: i831Wjej003805: ruleset=check_rcpt, arg1=<microsea@go.com>, relay=[208.5.5.145], reject=550 5.7.1 <microsea@go.com>... Relaying denied. IP name lookup failed [208.5.5.145]   
Sep 3 09:33:00 freemail sendmail[3805]: i831Wjej003805: from=<microsea@161.com>, size=0, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=[208.5.5.145]   
我只好在access文件中加入208.5.5 RELAY,但是這樣一加,SMTP認證就失效了,只要是208.5.5網段的都可以發信.試來試去始終是access文件生效,走不到smtp認證這一步,應該是SMTP認證先於access文件吧?   
大家有沒碰到過這樣的情況?如何解決?急盼!
http://www.lslnet.com/images/icon_new.gif Re: sendmail中關於只認access控制文件的問題
  終於搞定了,原來是sasl沒配置好的原因!!而且sasl 2版本和1有些不一樣,被它搞s了,以下是配置步驟給大家分享一下:   
* 安裝cyrus-sasl-2.1.19下載地址: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/   
./configure --enable-login   
make   
make install   
安裝完成後,要仔細檢查sasl的函數庫位置,否則會給後面的配置帶來很多問題.   
缺省情況下,所有的庫函數安裝到/usr/local/lib目錄下,但sendmail使用的庫函數是在目錄/usr/lib下的,所以需要做一些調整。   
cd /usr/lib   
ln /usr/local/lib/sasl2/ ./sasl -s   
在/usr/lib/sasl目錄下建立文件Sendmail.conf,加入如下一行   
pwcheck_method:saslauthd #-------->很關鍵啊!!   
檢查saslauthd的配置:   
首先檢查/usr/lib/sasl/Sendmail.conf裡的那句話是否使用的是saslauthd,   
其次檢查/etc/sysconfig/saslauthd這個文件,將裡面的:   
MECH=pam改為MECH=shadow   
然後啟動/etc/rc.d/init.d/saslauthd start,查看進程是否有以下進程:   
root 5093 1 0 13:39 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow   
root 5094 5093 0 13:39 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow   
root 5095 5093 0 13:39 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow   
root 5096 5093 0 13:39 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow   
root 5098 5093 0 13:39 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow   
如果以上sasl模塊沒有生效,sendmail將會跳過認證直接讀取access文件來判斷是否允許relay.通常就會出現:   
Sep 1 15:57:31 freemail sendmail[16694]: i817vP38016694: ruleset=check_rcpt, arg1=<microsea@126.com>, relay=[222.5.5.145], reject=550 5.7.1 <microsea@126.com>... Relaying denied. IP name lookup failed [222.5.5.145]   
Sep 1 15:57:44 freemail sendmail[16694]: i817vP38016694: from=<microsea@go2north.com>, size=0, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=[222.5.5.145]   
這樣的錯誤   
* 編譯和配置sendmail   
解壓sendmail軟件到你希望的目錄,進入sendmail-8.12.11目錄。   
在devtools/Site/目錄下創建config.site.m4文件,加入如下文字,把SMTP認證   
功能編譯到sendmail中。   
PREPENDDEF(`confMAPDEF', `-DMAP_REGEX')   
PREPENDDEF(`confOPTIMIZE', `-O6')   
PREPENDDEF(`confOPTIMIZE', `-O6')   
APPENDDEF(`confENVDEF', `-DSASL=2')   
APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')   
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib -L/usr/local/lib/sasl2')   
APPENDDEF(`confINCDIRS', `-I/usr/local/include -I/usr/local/include/sasl')   
回到sendmail-8.12.11目錄,再進入sendmail目錄,開始編譯sendmail。   
./Build -c(如果不是第一次編譯,需要加入-c選項,清除以前的配置)   
編譯成功後,運行./Build install安裝軟件。   
接下來編輯 sendmail 設置範本文件以便產生出具有身份認證功能的 sendmail.cf 設置檔,請以下列指令執行   
# cd cf/cf   
# cp generic-linux.mc MYCF.mc   
# cd ../feature   
# cat access_db.m4 >> ../cf/MYCF.mc   
# cat delay_checks.m4 >> ../cf/MYCF.mc   
# cat virtusertable.m4 >> ../cf/MYCF.mc   
# cd ../cf   
# cat >> MYCF.mc   
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl   
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl   
^D   
# sh Build MYCF.cf   
# mkdir /etc/mail   
# cp MYCF.cf /etc/mail/sendmail.cf   
# cd /etc/mail   
# cat > access   
localhost.localdomain RELAY   
localhost RELAY   
127.0.0.1 RELAY   
說明:&quot;TRUST_AUTH_MECH&quot;的作用是使sendmail不管access文件中如何設置,都能   
relay那些通過LOGIN,PLAIN或DIGEST-MD5方式驗證的郵件。   
&quot;confAUTH_MECHANISMS&quot;的作用是確定系統的認證方式。   
&quot;confDEF_AUTH_INFO&quot;的作用是當你的計算機作為客戶機時,向另外一台有smtp認   
證功能的主機進行認證,用戶和密碼存放在auth-info文件中,在這個例子中並不需要這   
個功能,所以註釋掉了。   
現在基本上可以了,啟動sendmail讓我們來測試一下吧   
sendmail -bd -q20m   
運行下面命令   
[iyunv@freemail mail]# telnet 222.5.5.55 25   
Trying 222.5.5.55...   
Connected to freemail.161mail.com (222.5.5.55).   
Escape character is '^]'.   
220 freemail.161mail.com ESMTP Sendmail 8.12.11/8.12.11; Thu, 2 Sep 2004 16:09:18 +0800   
ehlo localhost   
250-freemail.161mail.com Hello freemail.161mail.com [222.5.5.55], pleased to meet you   
250-ENHANCEDSTATUSCODES   
250-PIPELINING   
250-EXPN   
250-VERB   
250-8BITMIME   
250-SIZE   
250-DSN   
250-ETRN   
250-AUTH LOGIN PLAIN   
250-DELIVERBY   
250 HELP   
quit   
221 2.0.0 freemail.161mail.com closing connection   
Connection closed by foreign host.   
有出現250-AUTH LOGIN PLAIN說明sendmail提供認證功能了,再用outlook或其它客戶端軟件測試一下!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-113624-1-1.html 上篇帖子: linux sendmail 配置发送外部邮件(redhat6) 下篇帖子: postfix与sendmail冲突
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表