ambientes linux centralização de log para prof. me...

27
Centralização de log para ambientes Linux Prof. Me. Maurício Severich

Upload: hanhan

Post on 02-Jan-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Centralização de log para ambientes Linux

Prof. Me. Maurício Severich

Page 2: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

Sobre mim Orgulhoso detentor do cadastro

LinuxCounter: #93692

[email protected]

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

Page 3: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

AgendaSENAI/FATESG - 2015

Introdução ao registro de eventos

Serviço de log

Centralização de log

Page 4: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Onde você gostaria de estar neste exato momento?

Page 5: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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

Page 6: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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;

Page 7: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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;

Page 8: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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;

Page 9: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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.

Page 10: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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.

Page 11: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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

Page 12: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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!

Page 13: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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

Page 14: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

rsyslog - Entradas e Saídas

Rocket-fast SYStem for LOG processing.

Page 15: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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

Page 16: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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

Page 17: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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

Page 18: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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;

Page 19: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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;

Page 20: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

Page 21: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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;

Page 22: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

Centralização de Log - AWStats

Page 23: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

LogAnalyzer

Page 24: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

LogStash

Page 25: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

GrayLog

Page 26: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

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

Page 27: ambientes Linux Centralização de log para Prof. Me ...mauricio.severich.com.br/teaching/redes/log.pdf · Centralização de Log Redes disparam um volume enorme de eventos; A dificuldade

Prof. Me. Maurício Severich

Graylog - interface web

● Utilize seu navegador para realizar login na interface web (admin/admin)● http://seu.ende.reco.IP