Ssh

為什麼 internal-sftp 詳細日誌記錄不包括重命名、移動和刪除操作?

  • December 17, 2019

我已將 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.

事實證明,我還需要Subsystem sftp internal-sftp線上上指定日誌記錄開關和級別,以獲取其他操作的日誌記錄:

Subsystem sftp internal-sftp -l VERBOSE

沒有它,我只能根據我的第一篇文章獲得打開和關閉目錄資訊。如果我只添加-l VERBOSE到該Subsystem ...行,我不會得到任何操作記錄。我確信有一個完全合乎邏輯的解釋為什麼會這樣,但我不知道。

引用自:https://serverfault.com/questions/995708