As tarefas de administração no Linux são complexas em muitas situações devido à quantidade de processos, serviços e funções que são executados a cada segundo e para isso devemos adicionar logins, instalação de aplicativos e não esquecendo de todos os eventos que cada aplicativo registra na distribuição gerenciada . Felizmente para administradores e pessoal de controle ou auditoria, temos vários comandos desenvolvidos para facilitar o gerenciamento e controle de eventos do sistema e, portanto, o Solvetic se concentrará em dois dos comandos mais importantes para esse propósito. Syslog e Klogd.
O log é como um log, onde são registrados eventos, erros, alterações e processos gerados pelas aplicações ou pelo sistema operacional para posteriormente poder ler este registro e determinar quais eventos ocorreram, principalmente no caso de erros ou vulnerabilidades. Os arquivos de log em um sistema Linux residem no diretório / var / log. O sistema de log do Linux é gerenciado por dois Daemons:
SYSLOGDGera os logs do sistema. O Syslogd é executado automaticamente quando você inicia um sistema Linux e é responsável por armazenar relatórios sobre o funcionamento do computador. Recebe mensagens das diferentes partes do sistema, kernel e aplicações, armazena-as em diferentes localizações, tanto locais como remotas, seguindo um critério definido no arquivo de configuração /etc/syslog.conf.
KLOGDGere os logs do kernel. klogd direciona as mensagens de log do kernel para o log do sistema. O usuário pode controlar a manipulação de mensagens do kernel editando o arquivo de configuração syslogd. Esses aplicativos klogd são especialmente úteis para desenvolvedores de kernel.
1. O que é e como usar Syslogd em logs do Linux
Vamos ver o que é e como usar o Syslogd
O que é SyslogdSyslogd (utilitários de registro do sistema Linux), é um comando que nos dá um tipo de registro que é usado por muitos programas modernos, graças ao Syslogd, cada mensagem registrada contém pelo menos uma vez e um campo de nome de host, tornando as tarefas de monitoramento muito mais simples e mais fácil de analisar.
O comando Syslogd possui um comportamento BSD padrão e as novas versões do Syslogd interagem de forma transparente com a versão do syslog disponível nas bibliotecas padrão, portanto, se um binário vinculado às bibliotecas compartilhadas padrão não funcionar corretamente, o Syslogd exibirá o comportamento deste binário.
Passo 1
O arquivo de configuração principal é /etc/syslog.conf, e o log geralmente é especificado com entradas de regras. O seletor (facility.priority) e a ação são especificados em cada linha. Algo a ter em mente é que nas distribuições modernas do Linux, o comando Syslogd foi substituído por novas implementações Syslog como rsyslog ou syslog-ng, portanto, se quisermos usar Syslogd, podemos instalá-lo com o seguinte comando:
apt install inetutils-syslogd
PROLONGAR
Passo 2
Lá devemos inserir a letra S para confirmar o download e a instalação do Syslogd. Uma vez instalado, podemos ir para seu arquivo de configuração que está localizado no seguinte caminho /etc/syslog.conf:
nano /etc/syslog.conf
PROLONGAR
etapa 3
Lá encontramos todas as rotas que o Syslogd usará para capturar as informações. A sintaxe de uso geral para Syslogd é a seguinte:
syslogd [-a socket] [-d] [-f arquivo de configuração] [-h] [-l lista de hosts] [-m intervalo] [-n] [-p socket] [-r] [-s list domain] [-S] [-v] [-x]Passo 4
Entre as opções disponíveis temos:
Especifique soquetes extrasEste argumento nos permite especificar os sockets adicionais que o Syslogd deve escutar, ele é usado no caso de algum daemon ser executado dentro de um ambiente chroot (). Será possível utilizar até 19 tomadas adicionais.
- um soquete
Ativar modo de depuraçãoeste argumento ativa o modo de depuração que manterá o Syslog em primeiro plano e, portanto, gravará muitas informações de depuração no tty atual.
-d
Arquivo de configuraçãoEste argumento especifica um arquivo de configuração alternativo em vez do arquivo /etc/syslog.conf padrão.
-f arquivo de configuração
Bloquear encaminhamento remoto de mensagensEste parâmetro impede que o Syslogd encaminhe mensagens que recebe de hosts remotos.
-h
Defina o nome da redeGraças a este parâmetro, pode-se indicar um nome de host que deve ser registrado apenas com seu nome de host simples e não com o FQDN.
-l hostlist (lista de hosts)
Definir intervalo de tempoFazendo uso deste parâmetro, podemos especificar o intervalo de tempo a ser usado, por padrão o valor é 20 minutos.
-m intervalo
Evite executar SyslodgEste parâmetro impede que o Syslogd seja executado em segundo plano.
-n
Definir soquete de domínioIsso nos permite especificar um soquete de domínio Unix alternativo em vez de / dev / log
-p socket
Permitir mensagens de redeEsta opção permitirá que a instalação receba mensagens da rede usando um soquete de domínio da Internet com o serviço Syslog.
-r
Defina o nome do domínioEste parâmetro especifica um nome de domínio que deve ser removido antes de efetuar login.
-s domainlist
Habilitar registroAtive o registro detalhado,
-S
Habilitar versão atualVeja a versão atual do Syslogd.
-v
PROLONGAR
Etapa 5
Ao executar qualquer uma das opções disponíveis, podemos ver todas as tarefas que são executadas internamente:
PROLONGAR
2. Sinais em logs do Syslogd Linux
Passo 1
O Syslogd é capaz de reagir a um conjunto de sinais, uma opção para enviar um sinal ao Syslogd é executando:
kill -SIGNAL 'cat /var/run/syslogd.pid'Passo 2
Quando este sinal é executado, vários componentes como. Assim, Syslogd é uma solução prática para analisar eventos Linux.
SIGHUPEsta opção permite que o Syslogd execute um processo de reinicialização onde todos os arquivos abertos são fechados, o arquivo de configuração será lido novamente e a instalação do Syslog será reiniciada.
SIGTERMO serviço irá expirar.
SIGINT, SIGQUITSe a depuração estiver habilitada, eles serão ignorados, caso contrário, o Syslogd irá expirar.
SIGUSR1Habilite ou desabilite a depuração.
SIGCHLDAguarde as novas mensagens.
3. Configure o arquivo syslogd do Linux
O Syslogd usa uma sintaxe um pouco diferente em seu arquivo de configuração do que o arquivo-fonte original do BSD tradicional. A configuração do syslogd é feita por meio do arquivo /etc/syslogd.conf. Através deste arquivo é especificado para onde as diferentes mensagens devem ser encaminhadas. Você pode deixar linhas em branco ou comentar linhas inteiras com o caractere "#"
Para que o syslog aceite conexões remotas, devemos adicionar o parâmetro -r
SYSLOGD_OPTIONS = "- r -m 0"Normalmente o syslogd ocupa a porta 514 devemos verificar se o firewall não o bloqueia para testar em qual porta ele está rodando, a partir do terminal escrevemos o seguinte código
grep syslog / etc / servicesNos logs de serviço nesta linha, podemos ver que os logs "mail, cron, info" vão para o diretório de mensagens
* .info; mail.none; authpriv.none; cron.none / var / log / messagesVamos tentar enviar uma mensagem a todos os logs com o seguinte comando
grep "Mensagem de teste" / var / log / *Neste caso, podemos ver que vários logs estão com permissões negadas, portanto, eles não podem ser gravados.
Seria necessário determinar se é necessário alterar as licenças ou não de acordo com nossas necessidades. Os logs têm vários níveis de prioridade das mensagens (da prioridade mais baixa para a mais alta:
Registros de falhas, erros e avisos
debug, info, note, warning, warn, err, error, crit, alert, emerg and panic
Registros de tipo de mensagemVários tipos de registros de mensagens
auth, authpriv, cron, daemon, kern, lpr, e-mail, marca, notícias, segurança, syslog, usuário, uucpOs mais importantes são
- var / log / messages: aqui encontraremos os logs que chegam com informações prioritárias (informações), aviso (notificação) ou aviso (aviso).
- /var/log/kern.log: os logs do kernel, gerados pelo klogd, são armazenados aqui.
- /var/log/auth.log: este log registra os logins no sistema, as vezes que fazemos su, etc. As tentativas malsucedidas são registradas em linhas com informações do tipo de chave inválido ou login inválido.
- / var / log / dmesg: as informações geradas pelo kernel durante a inicialização do sistema são armazenadas neste arquivo.
Esses arquivos de log acumulam informações o tempo todo, então em algum momento podem ocupar muito espaço, para resolver esse problema podemos compactá-lo ou fazer backup se realmente for necessário. Algumas mudanças a serem lembradas são:
Uso de curingaÉ usado como um curinga para todas as prioridades e serviços acima, dependendo de seu uso (seja antes ou depois do caractere separador `. ').
"*" (Asterisco) =
Não marque prioridadeIndica que não há prioridade definida para o atendimento da linha selecionada.
"": (Em branco, espaço, nulo)
Escolha serviços diferentesPermite que você especifique vários serviços com o mesmo nível de prioridade na mesma linha.
"," (comer)
Controle diferentes mensagensPermite que você direcione mensagens de vários serviços e prioridades para o mesmo destinatário.
";" (ponto e vírgula)
Escolha a prioridade da mensagemIsso nos dá a capacidade de armazenar apenas mensagens com a prioridade especificada exata.
"=" (Igual)
4. O que é e como usar Klogd em logs do Linux
O que é KlogdKlogd (Kernel Log Daemon), é um daemon do sistema que foi desenvolvido para interceptar e registrar mensagens do kernel do Linux. A função do comando Klogd concentra-se na captura de várias instâncias do kernel, como a origem, priorização e resolução de endereços de kernel.
Em ambientes Linux, temos duas fontes principais de informações de registro do kernel, como:
- O sistema de arquivos / proc
- A interface syscall (sys_syslog)
Quando uma mensagem é recebida do kernel, o daemon Klogd lê o nível de prioridade atribuído e dá a ele o nível de prioridade com base na mensagem syslog. Ao usar o Klogd, também será possível alterar a exibição das mensagens do kernel no console do sistema, em um kernel comum, o nível de registro do console padrão é definido para 7, portanto, todas as mensagens com um nível de prioridade inferior para 7 (prioridade mais alta ) aparecerá no console. As mensagens de nível de prioridade 7 são consideradas mensagens de "depuração" e, portanto, não aparecerão no console para não sobrecarregar os outros eventos do kernel com informações.
O Klogd tem um recurso chamado Resolução de Endereço do Kernel pelo qual, se o kernel detectar uma condição de erro interno, um protocolo de erro de proteção geral é ativado automaticamente. Isso faz parte do procedimento de tratamento do GPF, no qual o kernel imprime um relatório de status que indica o status do processador quando a falha é gerada, dentro deste resultado veremos detalhes como o conteúdo dos registros do microprocessador, o conteúdo do a pilha do kernel e um monitoramento das funções que estavam em execução antes do erro.
O processo de resolução dos endereços numéricos dos resultados da falha de proteção pode ser feito manualmente ou por meio do programa ksymoops que está incluído nas fontes do kernel. O comando Klogd suporta o problema de diagnosticar falhas de proteção nos módulos carregáveis do kernel atuais.
Passo 1
Como o Syslogd, o Klog foi substituído nas distribuições atuais por comandos mais dinâmicos, portanto, para sua instalação, executaremos o seguinte. Lá, inserimos a letra S para confirmar o download e a instalação.
apt install busybox-syslogd
PROLONGAR
Passo 2
A sintaxe Klogd é a seguinte:
klogd [-cn] [-d] [-f fname] [-iI] [-n] [-o] [-p] [-s] [-k fname] [-v] [-x] [-2 ]etapa 3
Essas opções são:
Definir o nível de registroEste parâmetro define o nível de registro padrão para mensagens do console para n.
-c n
Modo de depuraçãoesta opção ativa o modo de depuração.
-d
Mensagens de logarquivo registra mensagens para o nome de arquivo especificado em vez da instalação do syslog.
-F
Identificar daemons em execuçãoidentifica o daemon klogd atualmente em execução. Ambos os interruptores controlam o carregamento / recarregamento das informações do símbolo.
-i -I
Pare o klogd em segundo planoEvita que o Klogd seja executado em segundo plano.
-n
Leitura completa em buffers de mensagemEsta opção permite que o Klogd leia e grave todas as mensagens encontradas nos buffers de mensagem do kernel.
-ou
Forçar chamada de sistemaForça o comando Klogd a usar a interface de chamada do sistema para buffers de mensagem do kernel.
-s
Veja a versão do KlogdImprima a versão do Klogd.
-v
PROLONGAR
Passo 4
Se quisermos ler todos os eventos após o login, vamos executar o seguinte:
klogd -o -f ./krnl.msgEtapa 5
Depois disso, será possível acessar o conteúdo do referido arquivo:
PROLONGAR
5. Sinais Klogd no Linux
O comando Klogd pode responder a oito (8) sinais que são: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 e SIGCONT. Os sinais SIGINT, SIGKILL, SIGTERM e SIGHUP permitem que o daemon desligue as fontes de log do kernel e finalize o processo corretamente enquanto os sinais SIGTSTP e SIGCONT são usados para iniciar e parar o log do kernel.
Passo 1
Por exemplo, se quisermos desmontar o sistema de arquivos / proc, devemos executar os seguintes comandos:
# kill -TSTP pid # umount / proc # kill -CONT pidPasso 2
Alguns arquivos para usar com o Klogd são:
- / proc / kmsg: é o arquivo de origem para as mensagens do kernel klogd
- /var/run/klogd.pid: é o arquivo que contém o id do processo de klogd
- /boot/System.map, /System.map, /usr/src/linux/System.map - Esses são os locais padrão para mapas de sistema do kernel.
Como podemos ver, temos esses dois comandos úteis e essenciais para um gerenciamento correto e completo dos eventos do kernel no Linux.