如何監視 local# 以確保訊息已發送到它?

如何監視 local# 以確保訊息已發送到它?

我正在嘗試從我的 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/log) ,或者您需要實作一種在執行過程中持久保存檔案描述符的方法。chrootinternal-sftp

它應該可以在當前的 RHEL 上運行(至少我們測試過它並且它是有記錄的),但我不了解 suse。

也許這個功能還沒有完全實現,但是如果您始終可以創建套接字chroot並設定rsyslog為在此套接字上接受訊息。您可以按照評論中的建議使用記錄器進行測試。

相關內容