AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 664945
Accepted
NickSoft
NickSoft
Asked: 2015-02-05 06:16:39 +0800 CST2015-02-05 06:16:39 +0800 CST 2015-02-05 06:16:39 +0800 CST

CentOS 6 上的 sendmail 和 sasl 身份验证

  • 772

我正在将邮件服务器从一个 CentOS 6 移动到另一个。我使用带有 sasl pam 身份验证的 sendmail。当我尝试发送邮件时,它失败了,因为用户未通过身份验证并且邮件客户端不需要密码。新旧服务器上的所有配置文件都相同。我用 telnet(新服务器)对此进行了测试:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 new.mldb.org ESMTP Sendmail 8.14.4/8.14.4; Wed, 4 Feb 2015 14:05:18 +0100
ehlo localhost
250-new.mldb.org Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-STARTTLS
250-DELIVERBY
250 HELP

旧服务器:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mldb.org ESMTP Sendmail 8.14.4/8.14.4; Wed, 4 Feb 2015 16:07:23 +0200
ehlo localhost
250-mldb.org Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP

新服务器上缺少此行 250-AUTH LOGIN PLAIN。

以下是 sendmail 配置的一部分:

define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

我使用这个命令测试了 sasl

# testsaslauthd -s smtp -u <user> -p <password>
0: OK "Success."

我检查过的其他文件:

# cat /etc/sasl2/Sendmail.conf
pwcheck_method:saslauthd
saslauthd_path:/var/run/saslauthd
mech_list: LOGIN PLAIN

# cat /etc/pam.d/smtp
#%PAM-1.0
auth       include      password-auth
account    include      password-auth

# cat /etc/sysconfig/saslauthd
SOCKETDIR=/var/run/saslauthd
MECH=pam
FLAGS=

当我尝试发送邮件时,我在日志中得到了这个:

# tail /var/log/maillog
Feb  4 15:17:38 new sendmail[12070]: STARTTLS=server, relay=*******.spectrumnet.bg [****], version=TLSv1/SSLv3, verify=NO, cipher=DHE-RSA-AES256-SHA, bits=256/256
Feb  4 15:17:38 new sendmail[12070]: t14EHba9012070: ruleset=check_rcpt, arg1=<****@mail.bg>, relay=*****.spectrumnet.bg [**********], reject=550 5.7.1 <****@mail.bg>... Relaying denied. Proper authentication required.
Feb  4 15:17:40 new sendmail[12070]: t14EHba9012070: from=<*****@*****.eu>, size=422, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=*******.spectrumnet.bg [******]

在我更改任何内容 /etc/mail 后,我运行“make”

sendmail 不提供身份验证的原因应该是什么?

更新

sendmail 不需要身份验证的主要原因是我没有安装这个数据包:cyrus-sasl-plain

我安装了它,现在邮件客户端要求输入密码,但密码总是失败。

更多来自配置:# grep TrustAuthMech sendmail.cf C{TrustAuthMech}EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN R$* $| $={TrustAuthMech} $# RELAY # grep AuthMechanisms sendmail.cf O AuthMechanisms=EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

centos
  • 2 2 个回答
  • 4116 Views

2 个回答

  • Voted
  1. Ricardo
    2015-02-05T06:32:16+08:002015-02-05T06:32:16+08:00

    你的 sendmail.mc 看起来不错。除了停止并再次启动 sendmail(我猜你已经这样做了)。我会查看名为 sendmail.cf 的实际配置文件。

    确保您看到以下线条:

    C{TrustAuthMech}DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
    

    和

    # list of authentication mechanisms
    O AuthMechanisms=DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
    

    如果 LOGIN PLAIN 不存在,那么您的“make”不会从 .mc 文件生成 .cf 文件。

    • 1
  2. Best Answer
    NickSoft
    2015-02-05T06:57:11+08:002015-02-05T06:57:11+08:00

    好吧,唯一的问题是我没有在新服务器上安装包 cyrus-sasl-plain 。重新启动所有服务(saslauthd 和 sendmail)以及邮件客户端发送和身份验证后工作正常。

    • 1

相关问题

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • 持续监控许多服务器运行状况的简单方法?

  • Hudson 无法在 tomcat5 中启动

  • CentOS 的依赖挑战

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve