メッセージが送信されていることを確認するために 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)を用意chrootするか、実行中にファイル記述子を永続化する方法の実装が必要ですinternal-sftp

現在のRHELで動作するはずです(少なくともテストしたところ、文書化された) ですが、SUSE についての知識はありません。

この機能は完全には実装されていないかもしれませんが、常にソケットを作成しchroot、このソケットでメッセージを受け入れるように設定rsyslogできます。コメントで提案されているように、ロガーでテストできます。

関連情報