Alterar o local do arquivo de log sshd no CentOS?

14

Como altero o sshdlocal do arquivo de log no CentOS? sshdregistra para em /var/log/messagesvez de /var/log/secure. Como posso alterar a configuração para sshdparar de enviar logs para /var/log/messages?

Jidrick
fonte
1
Você continua escrevendo, /var/log/messageesse é realmente o local? Geralmente é /var/log/messages.
slm
1
@slm aqui estava /var/log/messages, talvez OP tenha os dois ;-) #
Anthon
No meu sistema Ubuntu, o log de ssh está em/var/log/auth.log
Eric Wang

Respostas:

18

Por favor, poste sua sshd_configoutra coisa parece estar acontecendo. Um sistema CentOS de estoque sempre efetua logon /var/log/secure.

Exemplo

$ sudo tail -f /var/log/secure
Feb 18 23:23:34 greeneggs sshd[3545]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Feb 18 23:23:36 greeneggs sshd[3545]: Failed password for root from ::1 port 46401 ssh2
Feb 18 23:23:42 greeneggs unix_chkpwd[3555]: password check failed for user (root)
Feb 18 23:23:42 greeneggs sshd[3545]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Feb 18 23:23:43 greeneggs sshd[3545]: Failed password for root from ::1 port 46401 ssh2
Feb 18 23:23:48 greeneggs sshd[3545]: Accepted password for root from ::1 port 46401 ssh2
Feb 18 23:23:48 greeneggs sshd[3545]: pam_unix(sshd:session): session opened for user root by (uid=0)
Feb 18 23:24:05 greeneggs sshd[3545]: Received disconnect from ::1: 11: disconnected by user
Feb 18 23:24:05 greeneggs sshd[3545]: pam_unix(sshd:session): session closed for user root
Feb 18 23:27:15 greeneggs sudo:     saml : TTY=pts/3 ; PWD=/home/saml ; USER=root ; COMMAND=/bin/tail /var/log/secure

Isso é controlado através de /etc/ssh/sshd_config:

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

Bem como o conteúdo de /etc/rsyslog.conf:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

Seu problema

Em um de seus comentários, você mencionou que seu rsyslogdarquivo de configuração foi nomeado /etc/rsyslog.config. Esse não é o nome correto para este arquivo e é provavelmente o motivo pelo qual o log está estragado. Altere o nome desse arquivo para /etc/rsyslog.confe reinicie o serviço de log.

$ sudo service rsyslog restart
slm
fonte
Obrigado, imaginei, se "SyslogFacility AUTHPRIV" está comentado. Como o sshd sabe quais são os padrões? Os padrões estão armazenados em algum lugar que você pode editar?
Jidrick
Os padrões estão no código-fonte que foi usado para compilar o sshdarquivo executável. Se você deseja substituir os padrões, pode dar sshdopções de linha de comando ou editar seu arquivo de configuração.
precisa
@ MarkPlotnick - sim, como normalmente é feito nos arquivos de configuração (como visto acima), os padrões são mostrados no arquivo de configuração, mas depois são comentados. Por isso, sshfoi compilado para que LogLevelfosse definido INFOpor padrão. Para substituí-lo, você precisa remover o comentário dessa linha e alterar seu valor.
slm
3

O sshdrecurso padrão do syslog é AUTH, portanto, ele será logado no syslog em /var/log/messages.

Para criar um sshdlog para um novo arquivo, você pode alterá-lo para outro, e configurar o syslog para registrar esse novo recurso em um novo arquivo, ou seja:

No sshd_config, adicione esta linha:

SyslogFacility AUTHPRIV

Em seguida, no syslog.conf:

authpriv.* /var/log/secure
cuonglm
fonte
@Idrick - algo está muito errado com sua caixa. Parece estar quebrado e faltando coisas.
slm
@Jidrick: você pode procurar outros como o rsyslog?
cuonglm
@Gnouc - SyslogFacility AUTHPRIVjá é o padrão nas distros de RH. Eles o substituem como parte da embalagem.
Slm
@ Gnouc Sim, mas mudar isso não parece funcionar.
Jidrick
@Jidrick - altera o nome do arquivo /etc/rsyslog.configpara /etc/rsyslog.conf.
slm