2

我想调试所有身份验证会话。

例如在/var/log/exim/mainlog 上显示这样的身份验证错误;

(xx) [xxxx] 的登录验证器失败:535 验证数据不正确 (set_id=xxx)

(xx) [xxxx] 的登录验证器失败:535 验证数据不正确 (set_id=xxx)

(xx) [xxxx] 的登录验证器失败:535 验证数据不正确 (set_id=xxx)

但我也想像这样显示密码;

(xx) [xxxx] 的登录验证器失败:535 验证数据不正确 (set_id=xxx, set_pwd=yyy ) (xx) [xxxx] 的登录验证器失败:535 验证数据不正确 (set_id=xxx, set_pwd=yyy ) 登录验证器(xx) [xxxx] 失败:535 身份验证数据不正确 (set_id=xxx, set_pwd=yyy )

我更改了 dovecot conf 并添加了;

auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes

但是 /var/log/exim/mainlog 仍然不显示密码,并且 /var/log/maillog 不提供有关 smtp 的任何信息。

那么,如何使用清除的文本密码捕获身份验证错误。

4

2 回答 2

1

应在 中编辑 Exim 的配置选项exim.conf,因为 dovecot.conf 仅影响 dovecot 的工作方式。它们是两个独立的程序。

据我所知,没有办法直接配置 Exim 在日志文件中以明文形式记录密码。您可以做的是添加如下行

server_debug_print = "running smtp auth $1 $2"

在您exim.conf(或全部)中正确的身份验证器下,然后运行exim -d以启用调试模式(但也使 exim 在前台运行,所有调试输出都进入标准输出)。

于 2014-03-09T22:20:41.760 回答
0

我刚刚找到了解决方案。

我更改了 dovecot.conf passdb 选项,例如;

passdb {
  driver = checkpassword
  args = /etc/dovecot/chk.sh
}

并编写一个 bash 脚本以在 bash.log 文件上写入参数。

喜欢

#!/bin/bash
echo "$1 username and $2 password" > /etc/dovecot/log.txt
于 2014-03-09T22:19:30.893 回答