arquivos de log no CentOS 7 [fechado]

8

No CentOS 7, como posso localizar e visualizar todos os logs do sistema que informam quem tentou entrar no sistema, quem entrou, quais processos eles entraram em contato, o que realizaram etc. Eu quero poder vincular todas as atividades um ID do usuário ou um endereço IP remoto.

Meu var/log/diretório contém vários recursos, incluindo /var/log/messagese /var/log/secure, mas a maioria dos arquivos é do tipo Binary (application/octet-stream)e o sistema operacional não sabe como abri-los, a menos que eu associe algum programa de exibição desconhecido a eles. Além disso, var/log/firewalldparece não conter informações úteis.

Posso encontrar todos os logs produzidos pelo meu aplicativo, meu banco de dados e NginX / Apache.

CodeMed
fonte
Ok, você encontrou /var/loge todos eles são binários? Tem certeza que? Como você está checando?
Braiam 27/11/14
@Braiam Eu não disse que eram todos binários. Eu disse que a maioria deles são binários. Por exemplo, /var/log/firewalldé um arquivo de texto que parece conter informações inúteis. Estou verificando clicando nos arquivos na GUI. Clique com o botão esquerdo primeiro para tentar abrir e, em seguida, clique com o botão direito do mouse para exibir as propriedades e verificar o tipo de arquivo.
CodeMed 27/11/14
O sistema não faz isso por padrão. Você precisa habilitar o log de auditoria para obter isso. Eu mostro muitos dos métodos neste A: unix.stackexchange.com/questions/75051/… . Há uma boa visão geral do auditd aqui: security.blogoverflow.com/2013/01/… . Procure por outros, existem muitos.
slm
@ slm eu li seus links. Obrigado. Este será um servidor web. Precisarei rastrear a identidade de cada indivíduo que tocar de alguma forma qualquer registro em um banco de dados ou qualquer arquivo em partes específicas do sistema de arquivos. Também precisarei usar esses dados de registro para configurar alertas que disparam sempre que um usuário não autorizado acessa dados. Eu sei como fazer o log em nível de aplicativo e banco de dados. Desejo configurar o log para que os logs do CentOS possam ser vinculados aos logs de contêiner da Web, logs de aplicativos e logs de banco de dados, talvez por IP. Como devo formular perguntas sobre o nível CentOS deste requisito?
CodeMed 28/11
@ CodeMed - eu diria que é o CentOS 7, assim como você. Eu acho que você pode fazer o que quiser usando o auditd, escrever a manipulação do sistema de arquivos e quais comandos / processos são chamados pelos usuários no sistema de arquivos local. Isso não mostrará nada além do usuário nginx, apache, etc. fazendo X embora no nível do aplicativo. Pode ser necessário misturar os 2 juntos. Eu também o enquadraria como um systemd Q, com o CentOS 7 sendo a instância específica.
slm

Respostas:

10

O utilitário (linha de comando) que você deve usar é journalctl. Por exemplo, para ver a saída dmesg:

journalctl --dmesg

ou entradas analisáveis ​​relacionadas ao firewall:

journalctl --output=json-pretty UNIT=firewalld.service

Para uma lista de UNIT selecionáveis, use as ferramentas usuais:

journalctl --output=json-pretty | grep -F UNIT | sort -u

Consulte man journalctlno seu sistema para obter mais opções para restringir e especificar a saída.

Anthon
fonte
Obrigado. Isso é um começo. Mas minha pergunta é mais global. Como obtenho uma lista de todos os logs disponíveis? E como faço para obter a saída em um formato que eu possa usar? Por exemplo, um recurso que pode ser importado para um programa java rastreado para um usuário ou ip. journalcdt --dmesgparece não identificar alguém mais específico do que localhost.localdomane journalctl --firewalldproduz unrecognized option. Portanto, sua sugestão ainda não responde minha pergunta.
CodeMed 27/11/14
Você realmente deve olhar para a página do manual. É bastante infromativo. journalctl --output=json-pretty UNIT=firewalld.servicefornece a saída json.
Anthon
Obrigado pela atualização. Eu li o manual, mas sua resposta pode facilitar a aplicação. Agora, journalctl --output=json-pretty | grep -f UNIT | sort -ugrep: UNIT: No such file or directory
CodeMed 27/11/14
Além disso, journalctl --output=json-pretty UNIT=firewalld.servicesó funciona quando estou logado como root, mas não quando tento usar o terminal como um usuário normal. Portanto, ainda não posso usar esse código programaticamente. Se eu pudesse, de alguma forma, gerar automaticamente um novo conjunto de arquivos de log para cada unidade selecionável sem ter que deixar minha senha root em um arquivo hackável, essa pergunta seria respondida.
CodeMed
@CodeMed Houve um erro de digitação nos grepargumentos (não recortei, colei e minúscula a -Fopção).
Anthon