使用日志查找 SFTP 服务器中已删除/导入的文件

使用日志查找 SFTP 服务器中已删除/导入的文件

我们有一个 SFTP 服务器,我想查明某些特定文件是否已从服务器中删除,或者是否已导入到服务器。我正在查看 /var/log 下的日志文件,但目前找不到相关日志。

我想知道在哪个日志文件中可以找到这样的信息?

任何帮助,将不胜感激。

更新:

根据答案和链接:在此处输入链接描述 我已经修改了配置文件,其部分内容如下所示:

Subsystem sftp internal-sftp -f AUTH -l INFO

# Force sftp and chroot jail for members of sftp group
Match group sftp
ForceCommand internal-sftp
ChrootDirectory /sftp/%u

# Members of sftp-glob have access to all user folders
Match group sftp-glob
ForceCommand internal-sftp
ChrootDirectory /sftp


# Enable this for more logs
LogLevel VERBOSE

然后重新启动sshd:

sudo systemctl restart sshd

在这种情况下,我只能看到管理员用户(我)在 /var/log/auth.log 下创建的日志

Jan 17 12:57:50 ios-sftp internal-sftp[5262]: remove name "/tmp/test.txt"

为了记录 chrooted 用户的操作我做了以下事情:

cd /sftp 
sudo mkdir dev
sudo chmod 755 dev
sudo touch dev/log
sudo mount --bind /dev/log dev/log

但是,如果其他用户上传或删除文件,我仍然无法在 /var/log/auth.log 中看到他们日志。

通过将 ForceCommand internal-sftp 更改为 ForceCommand internal-sftp -f AUTH -l INFO 修复配置文件后,它开始工作

Subsystem sftp internal-sftp -f AUTH -l INFO

# Force sftp and chroot jail for members of sftp group
Match group sftp
ForceCommand internal-sftp -f AUTH -l INFO
ChrootDirectory /sftp/%u

# Members of sftp-glob have access to all user folders
Match group sftp-glob
ForceCommand internal-sftp -f AUTH -l INFO
ChrootDirectory /sftp


# Enable this for more logs
LogLevel VERBOSE

现在我可以看到 /var/log/auth.log 下的日志:

Jan 18 10:13:02 user-sftp internal-sftp[7466]: set "/folder1/folder2/myfile.xml" modtime 20210106-10:32:58

答案1

默认情况下,sftp 不会在系统日志中记录传输的文件,只会记录连接断开的情况。

可以启用用于未来的交易,但这可能无法帮助您解决当前的问题 - 但它可能会解决未来的问题。

相关内容