ambientes Linux Centralização de log para Prof. Me...
Transcript of ambientes Linux Centralização de log para Prof. Me...
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