exim如何在日志文件上显示密码

时间:2014-03-09 12:17:38

标签: smtp centos exim dovecot

我想调试所有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错误。

2 个答案:

答案 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