Estou tentando coletar logs de operações adicionais do meu servidor SFTP. Adicionei as seguintes linhas ao /etc/ssh/sshd_config, conforme instruído por muitos posts na internet:
Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6
Match Group sftponly
ChrootDirectory /data/%u
ForceCommand internal-sftp -l VERBOSE -f LOCAL6
X11Forwarding no
AllowTcpForwarding no
Então criei /etc/rsyslog.d/60-sftp.conf com as seguintes linhas para coletar as informações de log:
# Parse the data logged at level INFO and facility LOCAL6 into /var/log/sftp
local6.* /var/log/sftp
# Report logins and logoffs
:syslogtag,startswith,"internal-sftp" /var/log/sftp
# Log internal-sftp in a separate file
:programname, isequal, "internal-sftp" -/var/log/sftp
Neste ponto, não consigo obter nenhum registro para chegar a /var/log/sftp, tudo continua indo para /var/log/messages e não parece ser nada detalhado. Aqui está um trecho de tudo que estou recebendo:
Sep 28 16:46:11 ftp sshd[10060]: Accepted publickey for root from 172.25.50.117 port 54836 ssh2
Sep 28 16:46:11 ftp sshd[10060]: Received disconnect from 172.25.50.117: 11: disconnected by user
Sep 28 16:46:16 ftp sshd[10109]: Accepted keyboard-interactive/pam for account1000002664 from 172.25.50.86 port 34255 ssh2
Verifiquei que o sistema está executando o rsyslogd executando:
ftp:~ # ps ax | grep syslog
9205 ? Sl 0:00 /sbin/rsyslogd -c 5 -f /etc/rsyslog.conf
Então, pelo que sei, estou editando os arquivos corretos. Acho que a próxima etapa é garantir que os logs esperados sejam enviados para local6. O objetivo aqui é obter os dados necessários para gerar um log semelhante, senão exatamente igual ao xferlog criado pelo vsftpd.
Alguém aí tem alguma ideia sobre como proceder? Como observação lateral, ele está sendo executado no OpenSuse 12.1.
Responder1
Você precisa ter o soquete de registro ( /dev/log
) em chroot
, se quiser fazer login por meio dele, ou precisa implementar uma maneira de persistir o descritor de arquivo durante a internal-sftp
execução.
Deve funcionar no RHEL atual (pelo menos nós testamos e édocumentado), mas não tenho conhecimento sobre o suse.
Talvez esse recurso não esteja completamente implementado lá, mas você sempre pode criar o soquete chroot
e configurá-lo rsyslog
para aceitar mensagens neste soquete. Você pode testá-lo com o logger conforme proposto nos comentários.