Eu tentei alguns tutoriais sobre isso, mas não consigo fazê-lo funcionar. Eu gostaria de registrar a atividade do usuário (alterar diretório, upload / download do arquivo, etc) para usuários chroot que estão em uma cadeia chroot.
Minha entrada atual do arquivo 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
E minha entrada atual do /etc/rsyslog.conf (na seção RULES):
$AddUnixListenSocket /user1HomeDir/dev/log
local6.* /var/log/sftp.log
:programname, isequal, "internal-sftp" -/var/log/sftp.log
:programname, isequal, "internal-sftp" ~
Eu também criei um diretório / dev no diretório inicial dos usuários (mesmo diretório do diretório chroot)
Ainda não consigo obter nenhum registro para esses usuários chrooted. Além disso, esses usuários têm o shell configurado como / sbin / noshell (não tenho certeza se isso afeta isso).
EDITAR:
Consegui fazer o registro funcionar com minha entrada sshd_config como:
Subsystem sftp internal-sftp -l INFO
Match Group sftponly
ChrootDirectory h%
AllowTcpForwarding no
ForceCommand internal-sftp -l INFO
X11Forwarding no
Criando uma pasta dev no diretório inicial dos usuários chroot, e então criando um arquivo de configuração rsyslog /etc/rsyslog.d/sftplogging.conf com a entrada:
#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" ~
Isso me permite obter logs para /var/log/sftp.log, mas devido às limitações do rsyslog estar limitado a 50 sockets, eu tentei alterar o /etc/rsyslog.d/sftplogging.conf para:
$ AddUnixListenSocket /data/sftp/syslog.sock
e, em seguida, vinculá-lo à pasta de desenvolvimento de usuários
ln /data/sftp/syslog.sock dev/log
Depois de reiniciar o rsyslog, este faz todas as entradas no sftp.log