Como faço para assistir local# para garantir que as mensagens sejam enviadas para ele?

Como faço para assistir local# para garantir que as mensagens sejam enviadas para ele?

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-sftpexecuçã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 chroote configurá-lo rsyslogpara aceitar mensagens neste soquete. Você pode testá-lo com o logger conforme proposto nos comentários.

informação relacionada