Я настроил установку CentOS 7.7 для использования подсистемы internal-sftp и привязки определенного пользователя к определенной папке. Я хочу включить ведение журнала, поэтому я настроил 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 ...
только строка, я не получаю журналов операций. Я уверен, что этому есть вполне логичное объяснение, но я этого не знаю.