为什么 internal-sftp 详细日志记录不包括重命名、移动和删除操作?

为什么 internal-sftp 详细日志记录不包括重命名、移动和删除操作?

我已经配置了 CentOS 7.7 安装以使用 internal-sftp 子系统并将特定用户 chroot 到特定文件夹。我想启用日志记录,因此我像这样配置了 sshd:

Subsystem sftp internal-sftp

Match User username
    AuthorizedKeysFile /etc/ssh/authorized_keys/username
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory %h
    ForceCommand internal-sftp -d /folder -l VERBOSE

这样,我就可以立即看到读写操作,而无需在 chroot 中创建任何支持文件。条目存储在/var/log/secure

Dec 16 11:23:33 machine sshd[30798]: opendir "/folder/Test" [postauth]
Dec 16 11:23:33 machine sshd[30798]: closedir "/folder/Test" [postauth]
Dec 16 11:23:33 machine sshd[30798]: open "/folder/Test/TEST.csv" flags WRITE,CREATE,TRUNCATE mode 0666 [postauth]
Dec 16 11:23:33 machine sshd[30798]: close "/folder/Test/TEST.csv" bytes read 0 written 606 [postauth]
Dec 16 11:23:34 machine sshd[30798]: opendir "/folder/Test" [postauth]
Dec 16 11:23:34 machine sshd[30798]: closedir "/folder/Test" [postauth]

Dec 16 11:23:37 machine sshd[30804]: opendir "/folder/Test" [postauth]
Dec 16 11:23:37 machine sshd[30804]: closedir "/folder/Test" [postauth]

如何扩展它以包括重命名、移动和删除文件以及创建新目录的日志记录?

请注意,我也尝试了 DEBUG3 日志级别。

$ sudo yum list installed | grep openssh

openssh.x86_64                             7.4p1-21.el7               @base
openssh-clients.x86_64                     7.4p1-21.el7               @base
openssh-server.x86_64                      7.4p1-21.el7               @base

/var/log/messages仅包含

Dec 17 16:09:06 machine systemd-logind: New session 6481 of user username.
Dec 17 16:09:17 machine systemd-logind: Removed session 6481.

答案1

事实证明,我还需要在线上指定日志记录开关和级别Subsystem sftp internal-sftp才能记录其他操作的日志:

Subsystem sftp internal-sftp -l VERBOSE

如果没有这个,我只能像我的第一篇帖子一样获得打开和关闭目录的信息。如果我只添加-l VERBOSESubsystem ...行中,则不会获得任何操作日志。我相信对此有一个完全合乎逻辑的解释,但我不知道。

相关内容