Análise de Logs no Kali Linux com journalctl

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os fundamentos da análise de logs em um ambiente Kali Linux usando a poderosa ferramenta journalctl e outros utilitários de linha de comando. Projetado para iniciantes, esta experiência prática foca em habilidades fundamentais para administração de sistemas e depuração. Você explorará como acessar, visualizar e analisar logs do sistema dentro de um container Kali Linux em uma VM LabEx.

Através de exercícios práticos passo a passo, você visualizará logs do sistema armazenados em diretórios como /var/log, filtrará logs por serviços específicos, procurará por erros e exportará logs para análise posterior. Todas as operações serão realizadas dentro do shell do container Kali Linux, no qual você entrará automaticamente ao abrir o terminal. Este laboratório fornece um ambiente controlado para construir suas habilidades em monitoramento e solução de problemas de eventos do sistema.

Visualizando Logs do Sistema no Kali Linux

Neste primeiro passo, você aprenderá como visualizar logs do sistema dentro de um container Kali Linux na VM LabEx. Logs do sistema são críticos para monitorar e solucionar problemas em um sistema Linux, pois registram eventos, erros e atividades. Como iniciante, entender como acessar esses logs é uma habilidade fundamental para a administração de sistemas.

Ao abrir o terminal no ambiente da VM LabEx, você será automaticamente conectado ao shell do container Kali Linux. Não há necessidade de iniciar manualmente o container ou entrar no shell; o ambiente já está configurado para você. Todas as operações neste laboratório serão realizadas dentro do terminal deste container.

Sistemas Linux armazenam logs em diretórios como /var/log. Arquivos de log comuns incluem /var/log/syslog para mensagens gerais do sistema e /var/log/auth.log para eventos relacionados à autenticação. Vamos começar visualizando o conteúdo desses arquivos usando comandos simples.

Execute o seguinte comando no terminal para exibir as últimas 10 linhas do arquivo /var/log/syslog:

tail -n 10 /var/log/syslog

Este comando usa tail para mostrar as entradas mais recentes no arquivo de log. A saída terá uma aparência semelhante a esta, embora o conteúdo exato dependa da atividade do seu sistema:

Oct 15 10:22:34 kali-container kernel: [ 1234.567890] some kernel message
Oct 15 10:23:01 kali-container cron[1234]: (CRON) INFO (pidfile fd = 3)
...

Cada linha normalmente inclui um carimbo de data/hora, nome do host, nome do serviço ou processo e os detalhes do evento. Esta saída confirma que você acessou com sucesso os logs do sistema.

Para monitorar continuamente novas entradas de log em tempo real, o que é útil para depuração, execute este comando:

tail -f /var/log/syslog

Isso exibirá novas entradas à medida que são adicionadas. Para parar o monitoramento, pressione Ctrl + C para retornar ao prompt do terminal.

Em seguida, vamos verificar o arquivo de log de autenticação /var/log/auth.log, que registra tentativas de login e outros eventos de segurança. Execute este comando:

tail -n 5 /var/log/auth.log

A saída pode ser semelhante a esta, mostrando atividades relacionadas à autenticação:

Oct 15 10:20:01 kali-container sudo: root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/bash
...

Este passo apresenta a visualização de logs, uma habilidade básica, mas essencial. Nos passos seguintes, você irá construir sobre isso, filtrando e analisando esses logs para obter informações específicas.

Instalando e Usando journalctl para Visualização de Logs

Agora que você viu como visualizar logs usando comandos básicos como tail, vamos passar para uma ferramenta mais poderosa chamada journalctl. Esta ferramenta é usada para consultar e exibir logs gerenciados pelo systemd, o gerenciador de sistema e serviços em distribuições Linux modernas, incluindo Kali Linux. Como iniciante, aprender journalctl é importante porque ele fornece uma maneira estruturada de acessar logs detalhados do sistema.

Como você já está no shell do container Kali Linux (entrado automaticamente ao abrir o terminal), você não precisa navegar ou iniciar nada manualmente. No entanto, journalctl pode não estar pré-instalado ou totalmente funcional em uma configuração mínima de container, então garantiremos que as ferramentas necessárias estejam disponíveis atualizando a lista de pacotes e instalando os componentes necessários.

Execute os seguintes comandos para atualizar a lista de pacotes e instalar os componentes do systemd, se necessário:

apt update
apt install -y systemd

Esses comandos atualizam o repositório de pacotes e instalam o systemd, que inclui o journalctl. Aguarde a conclusão da instalação; pode levar alguns instantes.

Uma vez instalado, você pode usar journalctl para visualizar os logs do sistema. Execute este comando para exibir as entradas de log mais recentes:

journalctl -n 10

A opção -n 10 limita a saída às últimas 10 linhas. A saída será semelhante a esta, embora dependa da atividade do seu sistema:

Oct 15 10:25:01 kali-container systemd[1]: Starting system activity...
Oct 15 10:25:02 kali-container systemd[1]: Started system activity...
...

Esta saída mostra entradas de log com carimbos de data/hora, nomes de serviços e mensagens. Se você vir algo assim, significa que journalctl está funcionando corretamente. Se nenhuma saída aparecer ou você encontrar um erro, pode ser devido a dados de log limitados no ambiente do container, o que é normal para esta configuração de laboratório.

Para visualizar logs em tempo real, semelhante a tail -f, execute este comando:

journalctl -f

Isso exibirá continuamente novas entradas de log. Pressione Ctrl + C para parar o monitoramento e retornar ao prompt do terminal.

Este passo ajuda você a entender como usar journalctl para visualizar logs, o que é mais avançado do que a visualização básica de arquivos. No próximo passo, você aprenderá a filtrar esses logs para serviços específicos.

Filtrando Logs por Serviço com journalctl

Aprofundando sua capacidade de visualizar logs com journalctl, este passo se concentra em filtrar logs para exibir entradas relacionadas a um serviço específico. Como iniciante, a filtragem é uma habilidade fundamental porque os logs do sistema geralmente contêm uma mistura de mensagens de vários processos, e isolar informações relevantes ajuda na solução de problemas específicos.

Você ainda está trabalhando dentro do shell do container Kali Linux, que você entrou automaticamente ao abrir o terminal. Nenhuma navegação manual ou inicialização do container é necessária. Usaremos journalctl para filtrar logs para um serviço específico, como cron, que gerencia tarefas agendadas no Linux. Isso permite que você se concentre em logs relacionados a um único componente sem ser sobrecarregado por dados não relacionados.

Para filtrar logs para o serviço cron, execute o seguinte comando:

journalctl -u cron

A opção -u especifica a unidade (serviço) para filtrar, neste caso, cron. A saída mostrará logs especificamente relacionados ao serviço cron, com uma aparência semelhante a esta, dependendo da atividade do sistema:

Oct 15 10:30:01 kali-container cron[1234]: (CRON) INFO (pidfile fd = 3)
Oct 15 10:30:02 kali-container cron[1235]: (CRON) STARTUP (fork ok)
...

Esta saída exibe apenas entradas relacionadas ao cron, incluindo carimbos de data/hora e detalhes do evento. Se nenhuma saída aparecer, pode significar que o serviço cron não gerou logs recentes neste container, o que é aceitável para fins de aprendizado.

Se os logs do cron não estiverem disponíveis ou você quiser explorar outro serviço, você pode tentar filtrar por sshd (se instalado), que lida com conexões SSH. Primeiro, certifique-se de que o openssh-server está instalado executando:

apt install -y openssh-server

Aguarde a conclusão da instalação. Em seguida, filtre os logs para sshd com este comando:

journalctl -u ssh

A saída pode mostrar eventos relacionados ao SSH se o serviço estiver ativo. Se nenhuma saída aparecer, está tudo bem para este laboratório, pois o foco é aprender o processo de filtragem.

Este passo ensina como restringir os dados de log a serviços específicos usando journalctl. No próximo passo, você aprenderá a pesquisar erros dentro desses logs para identificar possíveis problemas.

Pesquisando Logs por Erros com journalctl

Tendo aprendido a filtrar logs por serviço, este passo irá guiá-lo através da pesquisa de logs do sistema por erros usando journalctl. Como iniciante, identificar erros em logs é crucial para a solução de problemas, pois os logs frequentemente contêm mensagens indicando problemas com serviços ou aplicações. Essa habilidade ajuda você a identificar rapidamente problemas que precisam de atenção.

Você ainda está operando dentro do shell do container Kali Linux, acessado automaticamente quando você abre o terminal. Nenhuma configuração ou navegação adicional é necessária. Usaremos journalctl para pesquisar mensagens de erro filtrando logs com base em níveis de prioridade, onde os erros são tipicamente registrados em uma severidade específica.

Em journalctl, as entradas de log são categorizadas por níveis de prioridade, com 3 representando erros (problemas críticos) e 4 representando avisos. Para pesquisar mensagens de erro em todos os logs, execute este comando:

journalctl -p 3

A opção -p 3 filtra os logs para mostrar apenas entradas no nível de prioridade 3 (erros). A saída pode ser semelhante a esta, dependendo da atividade do seu sistema:

Oct 15 10:35:10 kali-container some-service[5678]: error: failed to initialize module
...

Esta saída exibe mensagens de erro com carimbos de data/hora e detalhes. Se nenhuma saída aparecer, significa que não há erros recentes neste nível de prioridade nos logs, o que é comum em um ambiente de container controlado.

Para incluir avisos junto com erros, você pode pesquisar os níveis de prioridade 3 e 4 executando:

journalctl -p 3..4

Este comando mostra erros e avisos. A saída pode incluir linhas adicionais como:

Oct 15 10:36:15 kali-container another-service[7890]: warning: connection timeout
...

Se nenhuma saída aparecer, é aceitável para este laboratório, pois o objetivo é aprender o processo de pesquisa. Este passo equipa você com a capacidade de identificar problemas críticos em logs usando journalctl. No próximo passo, você aprenderá a exportar esses logs para análise posterior.

Exportando Logs para Análise com journalctl

Neste passo, você aprenderá como exportar logs do sistema para análise posterior usando journalctl. Baseando-se nos passos anteriores, onde você visualizou, filtrou e pesquisou logs, a exportação permite que você salve dados de log específicos em um arquivo. Isso é útil para exame detalhado ou compartilhamento com outras pessoas para solução de problemas. Como iniciante, essa habilidade ajuda você a documentar descobertas sem acessar repetidamente os logs originais.

Você ainda está trabalhando dentro do shell do container Kali Linux, que você entrou automaticamente ao abrir o terminal. Nenhuma inicialização ou navegação manual do container é necessária. Usaremos journalctl para extrair logs e redirecionar a saída para arquivos no diretório /root para fácil acesso.

Vamos exportar todos os logs recentes para um arquivo chamado system_logs.txt no diretório /root. Execute este comando:

journalctl -n 50 > /root/system_logs.txt

A opção -n 50 limita a saída às últimas 50 entradas de log, e o símbolo > redireciona a saída para o arquivo especificado. Você não verá a saída no terminal porque ela está sendo salva no arquivo. Para confirmar que o arquivo foi criado e contém dados, execute:

cat /root/system_logs.txt

A saída mostrará as entradas de log salvas, semelhante ao que você viu com journalctl -n 50, incluindo carimbos de data/hora e mensagens.

Em seguida, vamos exportar logs filtrados por um serviço específico, como cron, para um arquivo chamado cron_logs.txt. Execute este comando:

journalctl -u cron > /root/cron_logs.txt

Isso salva apenas os logs relacionados ao cron em /root/cron_logs.txt. Verifique o conteúdo executando:

cat /root/cron_logs.txt

A saída exibirá os logs do serviço cron, se disponíveis, confirmando que a exportação foi bem-sucedida.

Finalmente, vamos exportar logs de erro para um arquivo chamado error_logs.txt. Execute este comando:

journalctl -p 3 > /root/error_logs.txt

Isso salva mensagens de erro no arquivo especificado. Verifique o conteúdo com:

cat /root/error_logs.txt

Esta saída mostrará logs de erro, se existirem. Ao concluir este passo, você aprendeu a salvar dados de log para revisão posterior, uma habilidade prática para administração de sistemas e depuração.

Resumo

Neste laboratório, você aprendeu os fundamentos da análise de logs no Kali Linux usando a ferramenta journalctl e utilitários básicos de linha de comando. Você começou visualizando os logs do sistema no diretório /var/log com comandos como tail, e então progrediu para usar journalctl para um acesso de log mais estruturado. Através de passos práticos, você filtrou logs por serviço, pesquisou por erros e exportou logs para análise posterior dentro de um container Kali Linux na VM LabEx. Essas habilidades fundamentais o equipam para uma administração de sistema e depuração eficazes em ambientes Linux.