これについていくつかのチュートリアルを試しましたが、うまく動作しないようです。 chroot刑務所にchrootユーザーのユーザーアクティビティ(ディレクトリの変更、ファイルのアップロード/ダウンロードなど)を記録したいと思います。
私の現在のsshd_configファイルエントリ:
Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6
Match Group sftponly
ChrootDirectory %h
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp -l VERBOSE -f LOCAL6
私の現在の/etc/rsyslog.confエントリ(ルールセクション):
$AddUnixListenSocket /user1HomeDir/dev/log
local6.* /var/log/sftp.log
:programname, isequal, "internal-sftp" -/var/log/sftp.log
:programname, isequal, "internal-sftp" ~
また、ユーザーのホームディレクトリ(chrootディレクトリと同じ)に/ devディレクトリを作成しました。
まだchrootユーザーのログを取得できません。また、これらのユーザーのシェルは/ sbin / noshellに設定されています(これが影響するかどうかはわかりません)。
編集する:
sshd_configエントリを次のように設定すると、ロギングが機能するようにできます。
Subsystem sftp internal-sftp -l INFO
Match Group sftponly
ChrootDirectory h%
AllowTcpForwarding no
ForceCommand internal-sftp -l INFO
X11Forwarding no
chrootユーザーのホームディレクトリにdevフォルダを作成したら、次のエントリを使用してrsyslog設定ファイル/etc/rsyslog.d/sftplogging.confを作成します。
#create socket in chroot user's dev floder
$AddUnixListenSocket /data/sftp/User/home/dev/log
#log internal-sftp in a seperate file
:programname, isequal, "internal-sftp" -/var/log/sftp.log
:programname, isequal, "internal-sftp" ~
これにより、ログを/var/log/sftp.logにインポートできますが、rsyslogは50個のソケットに制限されているので、/etc/rsyslog.d/sftplogging.confを次のように変更してみました。
$AddUnixListenSocket /data/sftp/syslog.sock
次に、ユーザーのdevフォルダにハードリンクします。
ln /data/sftp/syslog.sock dev/log
rsyslog を再起動した後、sftp.log にエントリは生成されません。
答え1
私はしばらく前に、このトピックについて執筆し、それを達成しようとしたときに発生する可能性があるいくつかの犯罪者に言及しました。
https://access.redhat.com/articles/1374633
新しい設定形式を試してみましょうrsyslog
。
input(type="imuxsock" Socket="/chroots/user/dev/log" CreatePath="on")
local3.* /var/log/sftp.log
それ以外の場合は、いくつかのエラー、AVC、SELinuxのステータス、および追加の診断情報が必要です。