如何为 OpenSSH 设置 SFTP 文件访问日志记录?

kra*_*xor 7 server ssh logging sftp 14.04

我使用带有 chroot 用户的 OpenSSH 的内置 sftp 子系统进行了 SFTP 设置。

以前用FTP的时候,可以在日志中看到用户访问了哪些文件。

如何使用 OpenSSH/SFTP 实现相同的目标?

我的相关部分/etc/ssh/sshd_config

Subsystem sftp internal-sftp
Match group sftponly
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)

Rus*_*mov 7

默认情况下sshd记录到系统日志,日志级别为 INFO 和系统日志工具 AUTH。所以从sshd寻找日志数据的地方在

/var/log/auth.log

可以使用 SyslogFacility 和 LogLevel 指令覆盖这些默认值。下面是授权日志中典型的服务器启动条目。

在大多数情况下,默认的日志记录级别是可以的。

以下应该只给你 ssh 相关的日志行

grep 'sshd' /var/log/auth.log
Run Code Online (Sandbox Code Playgroud)

保险起见,获取最后几百行然后搜索(因为如果日志文件太大,整个文件的grep会消耗更多系统资源,更不用说运行时间更长)

tail -500 /var/log/auth.log | grep 'sshd'
Run Code Online (Sandbox Code Playgroud)

编辑:

man sshd_config

 LogLevel
         Gives the verbosity level that is used when logging messages from
         sshd(8).  The possible values are: QUIET, FATAL, ERROR, INFO,
         VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.  The default is INFO.
         DEBUG and DEBUG1 are equivalent.  DEBUG2 and DEBUG3 each specify
         higher levels of debugging output.  Logging with a DEBUG level
         violates the privacy of users and is not recommended.
Run Code Online (Sandbox Code Playgroud)

所以你可以在sshd_config. 但似乎它不跟踪文件。

你可以调查一下:

1) 要在您的主文件夹中查找不属于您的登录用户的所有文件,请键入:

find ~ -type f ! -user $USER
Run Code Online (Sandbox Code Playgroud)

1.1) 要查找不属于任何合法用户的所有文件(它们不应该存在),请键入:

find ~ -type f -nouser
Run Code Online (Sandbox Code Playgroud)

2) 由于系统上的文件具有三个时间戳,分别称为mtime(文件修改时间)、ctime(inode 更改时间和权限)和atime(文件访问时间),因此可以通过查询来了解文件是如何被修改的。经常争论哪些最适合使用,但可能找出文件何时被访问或修改的最佳方法是使用find命令搜索atimeand mtime,您在几天前指定,以及其他find选项aminand mmin,与您在几分钟前指定的。

对于每一个这些命令,相同的命令开关用于:例如,-atime 1将匹配那些被访问的文件恰好1天前; 指定更多小于,追加一个+或一个-分别。下面的例子可以澄清这一切(指定-type d目录):

find ~ -type f -atime 1 
find ~ -type f -amin -23
find ~ -type f -mtime 2    
find ~ -type f -mmin -45
Run Code Online (Sandbox Code Playgroud)

为了结合我到目前为止的方法,您可以从您的主文件夹中输入以下命令;第一个搜索由不是您的用户的人访问的文件,第二个搜索由您的用户以外的人在不到两天前修改的任何文件。

find ~ -type f -atime -2 ! -user $USER
find ~ -type f -mtime -2 ! -user $USER
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答,但用户想知道如何为使用 Chroot jail 的用户实现文件操作的日志记录... (2认同)