ambientes Linux Centralização de log para Prof. Me...

Post on 02-Jan-2019

215 views 0 download

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

mseverich@gmail.com

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