我在 /etc/postfix/main.cf 中有:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
Run Code Online (Sandbox Code Playgroud)
并且 SASL 似乎正在工作:
$ testsaslauthd -u yang -p ... -f /var/spool/postfix/var/run/saslauthd/mux -s smtpd
0: OK "Success."
Run Code Online (Sandbox Code Playgroud)
但是从网络外部连接时,我收到“中继访问被拒绝”(例如 localhost 仍然可以正常工作):
$ telnet blah.com 25
auth plain ...
235 2.7.0 Authentication successful
mail from:<yang@blah.com>
250 2.1.0 Ok
rcpt to:<yang@dest.com>
554 5.7.1 <yang@dest.com>: Relay access denied
Run Code Online (Sandbox Code Playgroud)
日志:
Oct 18 21:10:19 blah postfix/smtpd[13882]: connect from unknown[x.x.x.x]
Oct 18 21:10:19 blah postfix/smtpd[13882]: setting up TLS connection from unknown[x.x.x.x]
Oct 18 21:10:19 blah postfix/smtpd[13882]: Anonymous …Run Code Online (Sandbox Code Playgroud) 我正在尝试svnserve在我的 Slackware 13.1 服务器上使用 SASL 支持进行设置,经过一些试验和错误后,我能够使其与下面列出的配置一起使用:
[general]
anon-access = read
auth-access = write
realm = myrepo
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256
Run Code Online (Sandbox Code Playgroud)
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /etc/sasl2/my_sasldb
mech_list: DIGEST-MD5
Run Code Online (Sandbox Code Playgroud)
$ sasldblistusers2 -f /etc/sasl2/my_sasldb
test@myrepo: cmusaslsecretOTP
test@myrepo: userPassword
Run Code Online (Sandbox Code Playgroud)
您会注意到,输出sasldblistusers2显示我的测试用户具有加密的cmusaslsecretOTP密码和纯文本 userPassword密码。即,如果我要运行,strings /etc/sasl2/my_sasldb我会以明文形式看到测试用户的密码。这两个密码条目是使用以下 subversion book 推荐命令创建的:
saslpasswd2 -c -f /etc/sasl2/my_sasldb -u myrepo test
Run Code Online (Sandbox Code Playgroud)
阅读后,man saslpasswd2我看到以下选项:
-n 不要为用户设置明文 userPassword …
我有一台主机 (rhea),我在其中安装了 postfix 来中继来自我的家庭服务器 (tronics24) 的电子邮件,该服务器位于 DSL 连接上。
我已经生成了自签名证书:(在 rhea 上)
touch smtpd.key
chmod 600 smtpd.key
openssl genrsa 1024 > smtpd.key
openssl req -new -key smtpd.key -x509 -days 3650 -out smtpd.crt
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
sudo mv smtpd.key /etc/ssl/private/
sudo mv smtpd.crt /etc/ssl/certs/
sudo mv cakey.pem /etc/ssl/private/
sudo mv cacert.pem /etc/ssl/certs/
Run Code Online (Sandbox Code Playgroud)
我已经测试了证书:
root@rhea:~# openssl s_client -showcerts -cert /etc/ssl/certs/smtpd.crt -key /etc/ssl/private/smtpd.key -starttls smtp -CAfile /etc/ssl/certs/cacert.pem -connect localhost:25
Run Code Online (Sandbox Code Playgroud)
postfix 回复到哪个 (/var/log/mail.log):
Apr 26 02:44:36 …Run Code Online (Sandbox Code Playgroud) 我正在尝试配置在 Centos 6.5 上运行的 SASL,以允许对企业 Active Directory 服务器进行身份验证。最终目标是验证对该服务器上运行的某些 subversion 存储库的访问权限,但在此阶段,我只是尝试让 saslauthd 进行身份验证,并使用 testsaslauthd 对其进行测试。
每次身份验证都失败,日志中显示以下内容:
saslauthd[20843] :do_auth : auth failure: [user=MYUSER] [service=svn] [realm=MYREALM] [mech=ldap] [reason=Unknown]
saslauthd[20843] :do_request : response: NO
Run Code Online (Sandbox Code Playgroud)
这是我的 /etc/saslauthd.conf:
ldap_auth_method: bind
ldap_servers: ldaps://ldap.ad.mycompany.com:3269/
ldap_bind_dn: MYBINDDN
ldap_password: xxxxxxxxxx
ldap_search_base: DC=mycompany,DC=xx
ldap_filter: (&(cn=%u)(objectClass=person))
ldap_referrals: yes
log_level: 10
Run Code Online (Sandbox Code Playgroud)
请注意,我知道 ldap 服务器 URI、绑定 DN、密码、搜索库和过滤器是正确的,因为我有一个 perl 脚本,它使用这些来为网站执行身份验证,并且它工作正常。perl 脚本使用 Net::LDAP,绑定到 AD,使用搜索库和过滤器搜索用户,然后尝试使用用户的 DN 和密码进行绑定。据我了解,这正是 SASL 应该按照我的配置方式尝试做的事情。
我的第一个观察结果是,尽管将 log_level 设置为 10,但我只收到一行告诉我它因未知原因失败。我正在使用 -d(调试)选项从 shell 启动 saslauthd。我还能做些什么来获得更多的调试输出?
有什么方法可以记录 LDAP 交互?
最后,有人能看出我的配置有什么问题吗?也许一些 AD 怪癖需要在 SASL 配置中进行特殊设置?
我使用以下 LDIF 文件来激活对 LDAP 服务器的 TLS 支持:
dn: cn=config
changetype: modify
add: olcTLSCipherSuite
olcTLSCipherSuite: NORMAL
-
add: olcTLSCRLCheck
olcTLSCRLCheck: none
-
add: olcTLSVerifyClient
olcTLSVerifyClient: never
-
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/CA.crt
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/server.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/key.pem
Run Code Online (Sandbox Code Playgroud)
并使用以下 LDIF 强制客户端连接使用 TLS:
dn: cn=config
changetype: modify
add: olcSecurity
olcSecurity: tls=1
Run Code Online (Sandbox Code Playgroud)
在此之后,我不能再使用“-Y EXTERNAL”来读取或修改配置架构。例如,如果我运行,我会收到 SASL 错误:
$ sudo ldapsearch -Q -Y EXTERNAL -H ldapi:/// -b "" -LLL -s base -Z supportedSASLMechanisms
ldap_sasl_interactive_bind_s: Authentication method not supported (7)
additional info: SASL(-4): …Run Code Online (Sandbox Code Playgroud) 我最近不得不将 SMTP 中继从 Cablevision 更改为 Verizon。Verizon 阻止端口 25,但他们将通过端口 465 接受 SSL(根据此)。我使用this和this将stunnnel转发postfix的数据转发到端口 465。
不幸的是,我的邮件没有成功。我在 mail.log 中收到以下错误:
Sep 8 15:16:25 DServ postfix/qmgr[6178]: A9EF9480429: from=<mark.kasson@docsmit.com>, size=545, nrcpt=1 (queue active)
Sep 8 15:16:25 DServ postfix/smtp[6777]: A9EF9480429: to=<markkasson@gmail.com>, relay=127.0.0.1[127.0.0.1]:12345, delay=231428, delays=231428/0.01/0.4/0, dsn=4.7.0, status=deferred (SASL authentication failed; server 127.0.0.1[127.0.0.1] said: 500 5.7.0 Unknown AUTH error -1 (Internal authentication error).)
Run Code Online (Sandbox Code Playgroud)
Dovecot 发出消息,但是,它们似乎都不是错误消息。我还看到了以下内容:
Sep 8 17:26:26 DServ postfix/error[7112]: D0B944801A9: to=<mkasson@sigmgt.com>, relay=none, delay=197679, delays=197679/0.01/0/0.03, dsn=4.7.0, status=deferred (delivery temporarily suspended: …Run Code Online (Sandbox Code Playgroud) 从 Fedora Core 16 升级到 Fedora Core 21 后,新的 Dovecot 安装无法正确进行身份验证,而且根本不清楚原因。
我们有 50 多个电子邮件帐户由该服务器提供服务,因此我希望让以前的方案继续为人们服务。
多年来我们一直非常成功地使用 CRAM-MD5。我移动了配置,根据新版本(2.2.15-3)的需要进行了更新,并尝试连接。日志说:
Requested CRAM-MD5 scheme, but we have only CRYPT
Run Code Online (Sandbox Code Playgroud)
然而,当我按照 Dovecot 网站上的测试指南(可以在此处找到http://wiki2.dovecot.org/TestInstallation)时,测试命令显示 CRAM-MD5 确实可用:
# telnet localhost 143
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
IDLE STARTTLS AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN]
Dovecot ready.
Run Code Online (Sandbox Code Playgroud)
可以看出,CRAM-MD5 是列出的第一个支持的授权类型。
此外,鸽舍参数测试程序也没有显示任何问题:
# dovecot -n
# 2.2.15: /etc/dovecot/dovecot.conf
# …Run Code Online (Sandbox Code Playgroud) 我在想我的熵水平可能很低?
$ cat /proc/sys/kernel/random/entropy_avail
Run Code Online (Sandbox Code Playgroud)
我平均在 132-178 左右。池大小默认为 4096(顺便说一下,这是虚拟器上的容器)。
我也跑了:
$ cat /dev/urandom | rngtest -c 1000
Run Code Online (Sandbox Code Playgroud)
并得到:
rngtest: starting FIPS tests...
rngtest: bits received from input: 20000032
rngtest: FIPS 140-2 successes: 999
rngtest: FIPS 140-2 failures: 1
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 1
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=26.272; avg=628.845; max=19073.486)Mibits/s
rngtest: FIPS tests speed: (min=73.928; avg=108.740; max=130.640)Mibits/s
rngtest: Program …Run Code Online (Sandbox Code Playgroud) 我的 kerberos 域在 MYEXAMPLE.ORG 中,但服务器位于 dmz-int.example.org dns 区域。
LDAP 服务器是 b1.dmz-int.example.org;它的密钥表包括:
udo ktutil -k /etc/krb5.keytab 列表 /etc/krb5.keytab: Vno 类型主要别名 7 arcfour-hmac-md5 b1$@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 b1$@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 b1$@MYEXAMPLE.ORG 7 arcfour-hmac-md5 主机/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 主机/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 主机/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 arcfour-hmac-md5 ldap/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 ldap/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 ldap/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 arcfour-hmac-md5 ldap/ldap.dmz-int.example.org@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 ldap/ldap.dmz-int.example.org@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 ldap/ldap.dmz-int.example.org@MYEXAMPLE.ORG 7 arcfour-hmac-md5 ldap/ldap.unimore.it@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 ldap/ldap.unimore.it@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 ldap/ldap.unimore.it@MYEXAMPLE.ORG
ldap2.myexample.org是CNAME的b1.dmz-int.example.org
现在我可以连接GSSAPI到 LDAP 服务器:
$ kinit
$ ldapsearch -ZZ -h …Run Code Online (Sandbox Code Playgroud) 今天我从这里设置了一个带有德语教程的邮件服务器:
现在我已经完成了,需要帮助解决我的问题。Sry 英语不好 - 我希望我的信息能帮助你帮助我 ^^
邮件日志:
11 月 18 日 16:30:00 srv01 postfix/smtpd[23275]:从 localhost[::1] 连接 11 月 18 日 16:30:00 srv01 postfix/smtpd[23275]:警告:SASL:连接到私有/auth_dovecot 失败:没有这样的文件或目录 11 月 18 日 16:30:00 srv01 postfix/smtpd[23275]:致命:没有 SASL 身份验证机制 11 月 18 日 16:30:01 srv01 postfix/master[15201]:警告:进程 /usr/lib/postfix/smtpd pid 23275 退出状态 1 11 月 18 日 16:30:01 srv01 postfix/master[15201]:警告:/usr/lib/postfix/smtpd:命令启动错误——节流
邮件错误:
11 月 18 日 16:30:00 srv01 postfix/smtpd[23275]:致命:没有 SASL 身份验证机制 11 月 18 日 16:39:07 srv01 postfix/postmap[23556]:致命:打开 /etc/postfix/smtp_auth:没有那个文件或目录
postconf -n:
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = …