我想loggingSFTP命令到一个单独的文件,但它只适用于root但不适用于chroot用户:
# cat /etc/ssh/sshd_config ... Subsystem sftp internal-sftp -l INFO Match Group user1 ChrootDirectory /chroot ForceCommand internal-sftp -l INFO AllowTcpForwarding no X11Forwarding no
–
默认设施根据手册页是AUTH
# cat /etc/rsyslog.d/sshd.conf auth.* /var/log/sftp.log
–
tail -F /var/log/secure /var/log/sftp.log ==> /var/log/secure <== Dec 27 12:35:09 lab sshd[43014]: Accepted publickey for root from 192.168.1.100 port 44706 ssh2 Dec 27 12:35:09 lab sshd[43014]: pam_unix(sshd:session): session opened for user root by (uid=0) Dec 27 12:35:09 lab sshd[43014]: subsystem request for sftp ==> /var/log/sftp.log <== Dec 27 12:35:09 lab internal-sftp[43016]: session opened for local user root from [192.168.1.100] Dec 27 12:35:10 lab internal-sftp[43016]: opendir "/root/" Dec 27 12:35:10 lab internal-sftp[43016]: closedir "/root/" Dec 27 12:35:27 lab internal-sftp[43016]: session closed for local user root from [192.168.1.100] ==> /var/log/secure <== Dec 27 12:35:27 lab sshd[43014]: Received disconnect from 192.168.1.100: 11: disconnected by user Dec 27 12:35:27 lab sshd[43014]: pam_unix(sshd:session): session closed for user root Dec 27 12:35:31 lab sshd[43017]: Accepted password for user1 from 192.168.1.100 port 44708 ssh2 Dec 27 12:35:31 lab sshd[43017]: pam_unix(sshd:session): session opened for user user1 by (uid=0) Dec 27 12:35:31 lab sshd[43019]: subsystem request for sftp Dec 27 12:35:31 lab sshd[43020]: session opened for local user user1 from [192.168.1.100] Dec 27 12:35:31 lab sshd[43020]: opendir "/" Dec 27 12:35:31 lab sshd[43020]: closedir "/"
编辑:周一12月30日11:40:18 GMT 2013
系统:CentOS 6.5
我添加了以下选项,但事件仍logging在/ var / log / secure日志文件中:
# id user1 uid=501(user1) gid=501(user1) groups=501(user1) # mkdir /chroot/dev # cat /etc/rsyslog.d/sshd.conf $AddUnixListenSocket /chroot/dev/log auth.* /chroot/dev/sftp.log # service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] # ll /chroot/dev/ total 0 srw-rw-rw- 1 root root 0 Dec 30 11:44 log -rw------- 1 nobody nobody 0 Dec 30 11:39 sftp.log
根据这个链接,我相信你满足了三个标准之一,详细logging了chroot sftp用户:
比较通用指令和CentOS指令等其他链接,看起来确切的configuration在发行版path的首选自定义目录名称,确切的文件放置日志套接字configuration的位置和日志loggingexpression式套接字configuration。
[编辑] Mon Dec 30 21:50:00 GMT 2013
目前我还没有访问CentOS,但发现在上面的CentOS页面中,似乎是一个很好的指导链接。 链接被破坏,但我可以通过Waybackmachine访问页面。 但是随着指南似乎有可能消失,我现在要在下面的macros伟报价中公然地复制与你的问题相关的部分。 希望这会对你有所帮助,但正如我所说的,目前我无法在你使用的发行版上进行testing。
看来你已经做了一些不同的事情,所以你的手指越过你将在下面击中黄金。
在Waybackmachine开始引用bigmite.com –
在这个例子中,我将设置一组只需要SFTP访问的用户(无SSH),并将文件复制到SFTP服务器上的文件系统。 文件系统的位置将是/sftp ,用户将驻留在此处的单独文件夹中。
最初应该创build一个新的组,这里叫做“sftpuser” 。 每个需要SFTP访问的用户都将被放置在这个组中。
应该编辑sshd_config (在/etc/ssh debian上),并在结尾添加以下内容: –
Match group sftpuser ChrootDirectory /sftp/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -l VERBOSE -f LOCAL6
这样做如下:
/sftp/$USER目录下的chroot jail中运行它们的sftp会话 LOCAL6 现在应该创build一个用户,而不创build一个主目录,并且在默认组sftpuser 。 在Ubuntu上你可以input:
(为了便于阅读,我加了换行符!/ E)
adduser --home / --gecos "First Test SFTP User" --group sftpuser --no-create-home --shell /bin/false testuser1
主目录设置为/的原因是,sftp将被chroot到/sftp/testuser1 。 接下来,用户主目录将需要创build:
mkdir /sftp/testuser1 chmod 755 /sftp/testuser1 mkdir /sftp/tstuser1/in mkdir /sftp/testuser1/out chown testuser1 /sftp/testuse1/in
请注意,根据您的要求,您设置的目录结构和权限可能会有所不同。 应该设置用户密码,并重新启动sshd(在debian service ssh restart )。
现在应该可以使用命令行sftp工具将文件sftp文件传送到主机,但不能以用户testuser1身份login到服务器。
你会在每个chroot用户的/var/logmessages看到详细的sftp日志logging,默认情况下这应该转到daemon.log 。 原因是chroot'ed sftp进程无法打开/dev/log因为这不在chroot文件系统中。
有两个修复这个问题,取决于文件系统configuration。
您可以创build一个硬链接来模仿设备:
mkdir /sftp/testuser1/dev chmod 755 /sftp/testuser1/dev ln /dev/log /sftp/testuser1/dev/log
第一个syslog或者rsyslog需要在用户文件系统中使用一个额外的日志套接字。 对于我的例子/sftp是一个单独的sftp文件系统。
对于Redhat
在红帽系统日志被使用,所以我改变了/etc/sysconfif/syslog ,使行: –
SYSLOGD_OPTIONS="-m 0"
读: –
SYSLOGD_OPTIONS="-m 0 -a /sftp/sftp.log.socket
最后,系统日志守护进程需要被告知将LOCAL6消息LOCAL6到/var/log/sftp.log文件,所以在/etc/syslog.conf中添加了以下内容: –
# For SFTP logging local6.* /var/log/sftp.log
系统日志重新启动。
对于Ubuntu Lucid
在Ubuntu lucid上,我创build了/etc/rsyslog.d/sshd.conf其中包含: –
# Create an additional socket for some of the sshd chrooted users. $AddUnixListenSocket /sftp/sftp.log.socket # Log internal-sftp in a separate file :programname, isequal, "internal-sftp" -/var/log/sftp.log :programname, isequal, "internal-sftp" ~
…并重新启动rsyslogd。
为用户创build日志设备
现在,每个用户需要创build一个/dev/log device :
mkdir /sftp/testuser1/dev chmod 755 /sftp/testuser1/dev ln /sftp/sftp.log.socket /sftp/testuser1/dev/log
– 完引用 –