Debian rsyslog不发出任何日志
在本教程之后,我尝试在Debian2.5上记录chroot用户的sftp访问和操作 到目前为止,我还做不到 /etc/rsyslog.d/sftp.confDebian rsyslog不发出任何日志,debian,sftp,Debian,Sftp,在本教程之后,我尝试在Debian2.5上记录chroot用户的sftp访问和操作 到目前为止,我还做不到 /etc/rsyslog.d/sftp.conf module(load="imuxsock") input(type="imuxsock" Socket="/var/ftp/userA/dev/log" CreatePath="on") input(type="imuxsock" Socket="/var/ftp/userB/dev/log" CreatePath="on") if $
module(load="imuxsock")
input(type="imuxsock" Socket="/var/ftp/userA/dev/log" CreatePath="on")
input(type="imuxsock" Socket="/var/ftp/userB/dev/log" CreatePath="on")
if $programname == 'internal-sftp' then /var/log/sftp.log
& stop
套接字(与userB相同):
我将日志文件放在777中以确保它不是权限问题
ls /var/log/sftp.log -lha
-rwxrwxrwx 1 root root 0 May 31 14:50 /var/log/sftp.log
/etc/ssh/sshd\u配置
Subsystem sftp internal-sftp -l INFO -f AUTH
Match Group ftpusers
ChrootDirectory %h
ForceCommand internal-sftp -u 0002
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
然后
我在/var/log/messages或/var/log/syslog中找不到任何有用的内容
请帮忙
谢谢这显然是错误的,永远不会是真的:
if $programname == 'internal-sftp' then /var/log/sftp.log
内部sftp
只是sshd\u config
中的一个占位符。运行sftp服务器的实际程序仍然是sshd
如果要区分sftp
日志,需要使用syslog工具(-f
切换到内部sftp
),但我不确定Debian是否支持此设置(该过程在chroot中,因此您无法访问/dev/log
中的日志套接字).注意:从2019年开始,Ubuntu 18.04有一个不允许rsyslog创建自定义日志的版本。相反,所有日志记录都转到/var/log/syslog
因此,我采取的解决措施是:
/home/sftp/$DIR\u Chroot…
groupadd sftpgroup
在SSHD配置中,确保使用设施LOCAL7和日志级别信息sudo mkdir-p/home/sftp/$DIR\u Chroot/dev
sudo chmod 755/home/sftp/$DIR\u CHROOT/dev
sudotouch/home/sftp/$DIR\u CHROOT/dev/log
sudo service ssh status && sudo service rsyslog status
# you should see the file Operations
sudo less /var/log/syslog
sudo less /var/log/sftp.log
请将您的问题移至(在此处删除,在此处重新发布)。就是这样。这就是整个想法,创建一个套接字以便chroot用户可以写入,通过一些rsyslog魔术,它可以将它写入/var/log/syslog,有很多教程说可以通过这种方式(或使用传统rsyslog指令)来完成,我使用-f,请考虑再次阅读我的设置…子系统SFTP内部SFFT-L信息-F Author,<代码> FraceCoMMand内部SFFT-U 0002 < /代码>…哪一个是有效的?有几个错误阻止此日志记录工作。确保您拥有最新的OpenSSH…升级OpenSSH sftp服务器不会改变任何内容
if $programname == 'internal-sftp' then /var/log/sftp.log
Subsystem sftp internal-sftp -f LOCAL7 -l INFO
Match group sftpgroup
ChrootDirectory /home/sftp/$DIR_CHROOT...
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -f LOCAL7 -l INFO
# Create socket within chrooted directories to allow for logging. You could try commented options below but in ubuntu 18.04 they are useless and everything goes to `syslog`
$AddUnixListenSocket /home/sftp/$DIR_CHROOT/dev/log
# Other Folder
#$AddUnixListenSocket /home/sftp/other
# Parse the data logged at level INFO and facility LOCAL7 into /var/log/sftp.log
# LOCAL7.info /var/log/sftp.log
# Report logins and logoffs
# :syslogtag,startswith,"sftp-server" /var/log/sftp.log
sudo service ssh restart && sudo service rsyslog restart
sudo service ssh status && sudo service rsyslog status
# you should see the file Operations
sudo less /var/log/syslog
sudo less /var/log/sftp.log