我如何观察本地号码以确保消息被发送给它?

我如何观察本地号码以确保消息被发送给它?

我正在尝试从我的 sftp 服务器收集其他操作日志。我已将以下几行添加到 /etc/ssh/sshd_config,如互联网上许多帖子所指示的那样:

Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6

Match Group sftponly
    ChrootDirectory /data/%u
    ForceCommand internal-sftp -l VERBOSE -f LOCAL6
    X11Forwarding no
    AllowTcpForwarding no

然后我创建了 /etc/rsyslog.d/60-sftp.conf 并使用以下行来收集日志信息:

# Parse the data logged at level INFO and facility LOCAL6 into /var/log/sftp
local6.* /var/log/sftp

# Report logins and logoffs
:syslogtag,startswith,"internal-sftp" /var/log/sftp

# Log internal-sftp in a separate file
:programname, isequal, "internal-sftp" -/var/log/sftp

此时,我似乎无法将任何日志记录到 /var/log/sftp,所有内容都继续转到 /var/log/messages,而且似乎一点也不详细。以下是我得到的所有信息的片段:

Sep 28 16:46:11 ftp sshd[10060]: Accepted publickey for root from 172.25.50.117 port 54836 ssh2
Sep 28 16:46:11 ftp sshd[10060]: Received disconnect from 172.25.50.117: 11: disconnected by user
Sep 28 16:46:16 ftp sshd[10109]: Accepted keyboard-interactive/pam for account1000002664 from 172.25.50.86 port 34255 ssh2

我已经通过运行以下命令验证系统正在运行 rsyslogd:

ftp:~ # ps ax | grep syslog
 9205 ?        Sl     0:00 /sbin/rsyslogd -c 5 -f /etc/rsyslog.conf

因此,据我所知,我正在编辑正确的文件。我认为下一步是确保预期的日志被发送到 local6。这里的目标是获取输出与 vsftpd 创建的 xferlog 类似的日志(即使不完全相同)所需的数据。

有人对如何继续有什么想法吗?顺便说一句,这是在 OpenSuse 12.1 上运行的。

答案1

如果您想通过它进行记录,则需要有日志套接字(/dev/logchroot,或者您需要实现一种在执行过程中持久保存文件描述符的方法internal-sftp

它应该可以在当前的 RHEL 上运行(至少我们测试过,它是记录),但我对 Suse 不了解。

也许这个功能还没有完全实现,但是如果你总是可以创建套接字chroot并设置rsyslog为在此套接字上接受消息。你可以按照评论中的建议使用记录器对其进行测试。

相关内容