Dovecot - 记录所有 IMAP 命令

Dovecot - 记录所有 IMAP 命令

我在 Debian Stretch 上成功运行了 Dovecot 2.2.27。我的服务器上有一些可疑活动,我想记录我的服务器发送/接收的所有原始 IMAP 通信。这是 /etc/dovecot/conf.d/ 中的一个 .conf 文件

service imap-login {
  executable = imap-login -R rawlogs
}

(来源:https://wiki.dovecot.org/Debugging/Rawlog

当用户登录我的 IMAP 服务器时,Rawlog 会进行记录(登录前 Rawlog)。但那时它就停止了。此后它不会记录任何通信。我希望所有 IMAP 通信都接收/发送以进行连接(登录、检查邮箱、下载新邮件等)。

以下是 .in 文件的示例:

1523905191.015557 1 LOGIN ***EMAIL ADDRESS HERE*** ***PASSWORD HERE***

.out 文件如下:

1523905190.806295 * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

我在上述 .conf 文件中添加了以下代码,用于登录后日志记录:

service imap {
  # tell imap to do post-login lookup using a socket called "imap-postlogin"
  executable = imap imap-postlogin
}

# The service name below doesn't actually matter.
service imap-postlogin {
  # all post-login scripts are executed via script-login binary
  executable = script-login /usr/lib/dovecot/rawlog

  # the script process runs as the user specified here (v2.0.14+):
#  user = $default_internal_user
  user = pksml
  # this UNIX socket listener must use the same name as given to imap executable
  unix_listener imap-postlogin {
  }
}

(来源:https://wiki.dovecot.org/PostLoginScripting

没什么区别。即使我在检查邮件帐户时,日志仍然只用于身份验证,没有其他用途。是我做错了什么,还是这不是 Dovecot 的功能?谢谢。

PS:我在更改.conf 文件后重新加载了 Dovecot 服务。

PS #2:邮件用户是虚拟用户,而不是真正的 Linux 系统用户


编辑-当前.conf文件:

import_environment = $import_environment DEBUG=1

service imap-login {
  executable = imap-login -R rawlogs
}

protocol imap {
  rawlog_dir = /var/run/dovecot/login/rawlogs
}

service imap {
  executable = imap imap-postlogin
}

service imap-postlogin {
  executable = script-login -d /usr/lib/dovecot/rawlog -I
  unix_listener imap-postlogin {
  }
}

答案1

我最终完成了 IMAP 命令的记录。

顺便说一句,我最初使用以下教程设置了我的服务器https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql/

以下是 rawlog 相关的 dovecot 配置命令:

mail_location = maildir:/var/mail/vhosts/%d/%n
userdb {
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
  driver = static
}
service imap-login {
  executable = imap-login -R rawlogs
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service imap-postlogin {
  executable = script-login -d rawlog
}
service imap {
  executable = imap imap-postlogin
}
protocol imap {
  rawlog_dir = /var/run/dovecot/login/rawlogs
}

您将获得.in和存储在( ).out中的用于身份验证的文件。/var/run/dovecot/login/rawlogsrawlog_dir

目前该rawlog_dir目录有777权限。

身份验证完成后,特定用户与服务器之间传输的 IMAP 通信位于用户主文件夹中名为 的子文件夹中dovecot.rawlog(您必须创建)。例如,在我的设置中,我创建了 文件夹/var/mail/vhosts/domain.com/user/dovecot.rawlog。此文件夹具有777权限,归 拥有root:vmail

注意:在这些.in文件中.out,您将看到传输的所有 IMAP 信息,包括电子邮件纯文本格式。另请注意,此文件夹将迅速地填满文件。密切关注。

总结:原始日志最有可能的用途是调试或了解 IMAP 协议。连续几个月保持开启状态并不是一个好主意!

答案2

doveadm 日志错误

或者和实时日志过滤的旧解决方案:

尾部-f / var / log / syslog | grep 鸽舍

相关内容