我想调试所有auth会话。
例如在 / var / log / exim / mainlog 上显示这样的auth错误;
登录验证器失败(xx)[x.x.x.x]:535不正确 验证数据(set_id = xxx)
登录验证器失败(xx)[x.x.x.x]:535不正确 验证数据(set_id = xxx)
登录验证器失败(xx)[x.x.x.x]:535不正确 验证数据(set_id = xxx)
但是我想显示密码就像这样;
登录验证器失败(xx)[x.x.x.x]:535不正确 身份验证数据(set_id = xxx, set_pwd = yyy )登录身份验证器 (xx)[x.x.x.x]失败:535验证数据不正确 (set_id = xxx, set_pwd = yyy )登录验证器失败(xx) [x.x.x.x]: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的任何信息。
那么,如何通过清除文本密码来捕获auth错误。
答案 0 :(得分:1)
Exim的配置选项应该在exim.conf
中编辑,因为dovecot.conf只影响dovecot的工作方式。它们是两个独立的程序。
据我所知,没有办法直接配置Exim在日志文件中以明文形式记录密码。您可以做的是添加以下
之类的行server_debug_print = "running smtp auth $1 $2"
在exim.conf
(或所有这些)中的正确身份验证器下运行exim -d
,启用调试模式(但也使exim在前台运行,所有调试输出都转到stdout) 。
答案 1 :(得分:0)
我刚刚找到了解决方案。
我更改了dovecot.conf passdb选项,如;
passdb {
driver = checkpassword
args = /etc/dovecot/chk.sh
}
在bash.log文件中为write args写一个bash脚本。
像
#!/bin/bash
echo "$1 username and $2 password" > /etc/dovecot/log.txt