Centos
設置 chroot 使用者的日誌記錄
我已經嘗試了一些關於此的教程,但似乎無法使其正常工作。我想為在 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" ~
我還在使用者主目錄中創建了一個 /dev 目錄(與他們的 chroot 目錄相同的目錄)
我仍然無法獲得這些 chroot 使用者的任何日誌。此外,這些使用者將 shell 設置為 /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
然後將其硬連結到使用者開發文件夾
ln /data/sftp/syslog.sock dev/log
重新啟動 rsyslog 後,這不會在 sftp.log 中產生任何條目
前段時間我在寫這個主題,其中提到了您在嘗試實現此目標時可能會遇到的幾個罪魁禍首:
https://access.redhat.com/articles/1374633
我會嘗試新的配置格式
rsyslog
:input(type="imuxsock" Socket="/chroots/user/dev/log" CreatePath="on") local3.* /var/log/sftp.log
否則將需要一些錯誤、AVC、SELinux 狀態和更多診斷資訊。