Linux下sendmail的smtp认证的问题及其解决方案

1,问题的提出
   为了防止垃圾邮件,通常管理员会 启用邮件服务器的smtp认证功能。但是发现在配置了smtp的认证之后,如果客户端不勾选“我的服务器需要认证”,则客户端同样能够发送邮件

2,质疑
   如果用户都能够不勾选认证选项就进行邮件的发送,还要smtp的认证做什么?

3,测试环境 red hat Linux AS 4 sendmail 8.14,新建邮件用户,测试的时候用这个用户样为自己发邮件

4,问题的分析
      分析中。。。反复测始终。。。

5,问题的解决
     1,发现问题所在,通常配置smtp的方法
      TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA,ME=a' )dnl
问题就出现在了第一句话上(他的意思是只要通过其列出的认证方法认证的用户,不通过smtp也可以发送邮件)
     2,初步方案
      dnl #TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA,ME=a' )dnl
注释掉第一行的内容,这样只有通过认证的用户才能发送邮件了.
      3,第二方案,
     TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl #DAEMON_OPTIONS(`Port=25, Name=MSA')dnl
这样就强制所有使用该邮件服务器进行邮件转发的用户在认证后才能发邮件了。此时只有在发件人或收件人中至少有一方是服务器本地用户是才予以发送,否则拒绝.
      4.注意问题,初步方案和第二方案中的access文件中必须保持只有127.0.0.1 是RELAY的,其它内容都清空掉.不要忘记把它生成数据库格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值