Centralização de log para ambientes Linux
Prof. Me. Maurício Severich
Prof. Me. Maurício Severich
Sobre mim Orgulhoso detentor do cadastro
LinuxCounter: #93692
1995 - Bel. em Informática
1995 - Administrador de sistemas Unix
1997 - Usuário Linux
1998 - Esp. em Ciência da Computação
2002 - Mestre em Informática
2003 - Início da carreira de docente (PR)
2007 - Analista de Redes SANEAGO
2008 - Professor SENAI/FATESG
Prof. Me. Maurício Severich
AgendaSENAI/FATESG - 2015
Introdução ao registro de eventos
Serviço de log
Centralização de log
Onde você gostaria de estar neste exato momento?
Prof. Me. Maurício Severich
O que é Log?
● log: an official record of events during the voyage of a ship or aircraft;● log: é o registro oficial de eventos.
● to log: enter (an incident or fact) in the log of a ship or aircraft or in another systematic record;
● “logar”: registrar um incidente ou fato (um evento) no log.
Fonte das expressões em inglês: Dicionário do Google Tradutor
Prof. Me. Maurício Severich
O que pode gerar log?
● Sistema operacional;
● Serviços e dispositivos em rede;
● Qualquer solução que necessite de uma estratégia de auditoria;
● Técnicas que viabilizam o retorno para um estado consistente dos dados armazenados:
○ Transações em Banco de dados;
○ Sistemas de arquivos com journaling;
Prof. Me. Maurício Severich
Por que registrar eventos?
● Trilha de auditoria;
● Verificar aplicação de políticas de segurança;
● Compreender a atividade em um sistema;
● Diagnóstico de problemas;
● Auxílio no desenvolvimento/teste de aplicações;
Prof. Me. Maurício Severich
Como são registrados os eventos?
● Decisão do desenvolvedor do software. São práticas comuns:
○ Usar funções básicas (write) da linguagem para gravar os eventos em arquivo texto;
○ Utilizar alguma função própria da linguagem para interagir com algum serviço de log (syslog);
○ Utilizar alguma API para gerar log (Log4J);
● Boas práticas:
○ Sempre considerar a importância cronológica do evento;
○ O registro do evento deve conter informações úteis;
Prof. Me. Maurício Severich
Onde são armazenados os arquivos de log?
● Depende da estratégia utilizada para registrar os eventos. São práticas comuns:
○ Criar um arquivo ou pasta de log no local onde o software está instalado;
○ Utilizar a pasta padrão do sistema operacional (/var/log);
○ Armazenar em banco de dados;
● Logs ocupam espaço! O administrador do sistema operacional deve manter os logs sob controle.
Prof. Me. Maurício Severich
Rotação de log
● Consiste no fim do uso de um arquivo de log quando o mesmo é considerado completo, para então iniciar o uso de um novo arquivo de log;
● A automatização desse processo faz o arquivamento dos logs segundo algum critério (ex: cronológico ou tamanho máximo);
● O arquivamento mantêm disponíveis algumas versões mais antigas de um determinado log para posterior consulta;
● O processo geralmente inclui compactação;
● No Linux, o utilitário mais comum é o logrotate.
Prof. Me. Maurício Severich
logrotate
● Disponível na maioria das distribuições Linux, no Ubuntu vem pré-configurado para execução diária:
dpkg -L logrotate | grep etc
● Atenção: isso não significa que os logs sofrem rotação todos os dias! ● Cada log pode ser rotacionado de acordo com sua configuração:
/etc/logrotate.conf /etc/logrotate.d/ufw
# ufw logging full; ufw allow OpenSSH; ufw enable
Prof. Me. Maurício Severich
Inspeção de logs em shell
# cd /var/log
# less ufw.log
# cat ufw.log | grep AUDIT
# tail -f ufw.log
# zcat -f ufw* | awk '{print $12}' | sort | uniq -c | sort -n
Nunca use editores de arquivo se os eventos estão sendo registrados no log!
Prof. Me. Maurício Severich
Serviço de log - rsyslog
● O syslog foi desenvolvido em 1980 como parte do projeto Sendmail, que era distribuído no BSD e nele acabou sendo adotado como padrão para log;
● Permaneceu como um padrão de facto até a publicação da RFC 3164 em 2001 que documentou a forma de operação do mesmo;
● Atualmente a RFC 5424 é a versão mais recente sobre o padrão syslog;● O rsyslog é uma implementação deste padrão, e está disponível na
instalação básica do Ubuntu:
$ dpkg -L rsyslog | grep etc/rsyslog
Prof. Me. Maurício Severich
rsyslog - Entradas e Saídas
Rocket-fast SYStem for LOG processing.
Prof. Me. Maurício Severich
rsyslog - habilitando entradas TCP e UDP
● A RFC 3164 do syslog define a porta 514 (TCP e UDP) como padrão para o serviço;
● A instalação padrão do Ubuntu não ativa essas portas:
# vim /etc/rsyslog.conf$ModLoad imudp$UDPServerRun 514
$ModLoad imtcp$InputTCPServerRun 514
Prof. Me. Maurício Severich
rsyslog - filtros
● A partir da versão 7, o rsyslog oferece 3 tipos de filtros que podem “selecionar” eventos:○ Tradicionais: baseados nas categorias Facility e Severity compatíveis com a sintaxe
original;
○ Por propriedades: permitem verificar (contains, isequal, startswith, regex, ereregex) qualquer propriedade do registro do evento; Deve começar com : na coluna 0;
○ Por expressões: permite construir filtros - if expressão then ação. Sintaxe em evolução, ou seja poderá sofrer mudanças;
● Exemplo de filtro por propriedade:
# vim /etc/rsyslog.d/20-ufw.conf
Prof. Me. Maurício Severich
rsyslog - habilitando saída forward UDP
● Para encaminhar um evento para outro servidor syslog utiliza-se o módulo omfwd, que não precisa ser carregado, ou seja é builtin:
# vim /etc/rsyslog.d/20-ufw.conf
:msg,contains,"[UFW " /var/log/ufw.log
:msg,contains,"[UFW " @192.168.102.100
& stop
Prof. Me. Maurício Severich
Centralização de Log
● Redes disparam um volume enorme de eventos;● A dificuldade no diagnosticar de problemas é diretamente proporcional a
falta de informações sobre os mesmos;● O formato do arquivo de log é decidido pelo desenvolvedor do software;● Implantar uma estratégia de centralização de log tornará a atividade do
administrador de redes mais eficaz e pró-ativa;● Existem muitos produtos para cumprir essa tarefa, sendo o Splunk um dos
mais completos na tarefa; Infelizmente é software proprietário;
Prof. Me. Maurício Severich
Centralização de Log - Splunk
● Existem muitos produtos para cumprir a tarefa da centralização;
● O Splunk é certamente um dos mais completos;
● Infelizmente é software proprietário;
● Licença baseada em volume de eventos;
● Qualquer ambiente médio gera muitos eventos;
Prof. Me. Maurício Severich
Prof. Me. Maurício Severich
Centralização de Log - Software Livre
● AWStats: indicado para logs de servidores web;
● LogAnalyzer: aceita qualquer log, interface limitante;
● Soluções baseadas no ElasticSearch:
○ LogStash: primeiro com abordagem semelhante ao Splunk;
○ GrayLog: alternativa ao LogStash;
Prof. Me. Maurício Severich
Centralização de Log - AWStats
Prof. Me. Maurício Severich
LogAnalyzer
Prof. Me. Maurício Severich
LogStash
GrayLog
Prof. Me. Maurício Severich
GrayLog - configuração básica
● Realize login no console (ubuntu/ubuntu)● Faça elevação de nível para superusuário: $ sudo -s
# graylog-ctl set-timezone America/Sao_Paulo
# graylog-ctl reconfigure
# vim /opt/graylog/conf/graylog.conf +147 (allow_highlighting=true)
# graylog-ctl restart
Prof. Me. Maurício Severich
Graylog - interface web
● Utilize seu navegador para realizar login na interface web (admin/admin)● http://seu.ende.reco.IP
Top Related