我正在嘗試從我的 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
) ,或者您需要實作一種在執行過程中持久保存檔案描述符的方法。chroot
internal-sftp
它應該可以在當前的 RHEL 上運行(至少我們測試過它並且它是有記錄的),但我不了解 suse。
也許這個功能還沒有完全實現,但是如果您始終可以創建套接字chroot
並設定rsyslog
為在此套接字上接受訊息。您可以按照評論中的建議使用記錄器進行測試。