Tema LinuxBSD Ver. 0.2 lnx
 http://www.linuxbsd.com.br 

  


  

  

Varredura em arquivos de Logs com Swatch

Enviado por DarkWarrior em Qua, 2007-01-17 14:30.

Autor: Fabiano S. Rech
eMail: fabiano[NOSPAM]linuxbsd.com.br
Data: 29 de fevereiro de 2004

Introdução

Um dos grandes méritos de sistemas padrão posix ou Unix em geral é o sistema de registros simples, arquivos de textos puros, mas não se deixe enganar por toda esta simplicidade, registros ou logs do sistema são extremamente úteis e importantes para controle e manutenção de qualquer tarefa preventiva, corretiva, e inúmeras outras. Em circunstâncias atuais, com o grande avanço e disseminação da Internet, um bom administrador ou mesmo você no seu computador pessoal, é de extrema importância adquirir o hábito de leitura, analise e varredura dos logs, não digo somente por motivos de segurança contra crackers, mas para falhas gerais desde hardware ou software, vivemos em um mundo tão competitivo que não é permitido falhar, podemos ter sido ótimos admins por vários anos, sempre ter prestado um ótimo serviço, mas por traição do destino, um descuido, algo que poderia ser evitado, um erro que por muito tempo antes de ter sua ação destrutiva, estava lá, escondido em pequenos arquivos texto, talvez a mesma linha foi reescrita tantas vezes, e nunca percebemos ou procuramos descobrir, e nos tornamos mais um taxado pelo insucesso.

Por isto garanto, que a leitura do tutorial apresentado a seguir não serão alguns minutos que você perderá, nem algo mais que poderá ser implantado adiante, depois talvez de recompilar o kernel ou voltar de viagem, mas quem sabe neste exato momento o que seu log está apontando? Talvez neste exato momento algo está prestes a acontecer, portanto leia, mas não se contente somente com que está aqui, o que escrevo lhe capacitará para criar um sistema de varredura eficaz, mas as possibilidades de melhora são infinitamente grandes!

Breve Introdução ao sistema de Registro em Unix

Como foi mencionado anteriormente, é padrão em sistemas posix (linux, Bsd,...) o sistema de registro simples, escrito em texto puro com mensagens previamente determinadas pelas configurações do programa, as mensagens podem variar desde erros simples de termino até a de hacking, vejamos a seguir as duas formas de registro usadas pelos programas:

Mensagens do Syslog

É a forma quase que padrão que o sistema utiliza, o syslog é programa que através do daemon syslogd, que proporciona a diversos programas como, apt, rpm, xfree, etc... Uma forma comum para o registro, para saber mais sobre o syslog, leia outro artigo meu sobre o mesmo clicando aqui http://www.linuxbsd.com.br/phpLinuxBSD/modules/artigos_tecnicos/entendendo_e_configurando_syslog.htm

Registro gerenciado pelo processo

São registros escritos e manipulados pelos próprios programas, ou seja, por um comando ou até por linhas embutidas no próprio código que determinam isto, por cada programa usar um estilo, aconselho a optarem pelo uso do syslog, pois as opções disponíveis serão mais eficazes.

Pequeno Histórico do Swatch

O programa de varreduras Swatch (Simple watchdog) foi desenvolvido por Todd Atkins na linguagem perl, o swatch é uns dos programas de varreduras mais eficientes e tradicionais, tendo vários adeptos que o utilizam como um "dos seus" programas de varredura e análise de logs. O swatch utiliza o arquivo usa um arquivo que você deverá fornecer com as regras para leitura e classificação dos mesmos, isto usando expressões regulares de Perl compatíveis com a do padrão Grep. O Swatch lê o arquivo de log, utilizando esta regras classificando e executando ações premeditadas no arquivo $home/.swatchrc do user que o executar. Para instalar o swatch eu usei o Fedora Core 1, mas como é um programa em perl poderá ser usado em qualquer distribuição linux ou bsd. Vejamos a seguir como instalar configurar.

Instalação do Swatch.

Para instalar o swatch baixe a ultima versão no endereço: http://www.oit.ucsb.edu/~eta/swatch/

Obs: Antes de iniciar a instalação do Swatch Certifique-se que você tenha perl devidamente instalado na sua maquina, caso não tenha instale os pacotes de desenvolvimentos do linux.

Requerimentos:

O Swatch tem como dependências os módulos Cpan do Perl, caso você já os tenha poderá pular esta etapa de configuração, partindo para a de compilação.

Instalando os Módulos Cpan

Os módulos necessários são:

Date::Calc

Date::Parse

File::Tail

Time::HiRes

Para poder instalar as mesmas proceda da seguinte maneira:

#perl -MCPAN -e shell

Caso você nunca tenha utilizado este comando, ele solicitará que você responda algumas perguntas, apôs estas perguntas insira os seguintes comandos:

cpan>install Date::Calc

cpan>install Date::Parse

cpan>install File::Tail

cpan>install Time::HiRes

Terminado estes procedimentos sem erros podemos começar a compilar o nosso swatch.

Acesse a pasta onde foi feito o donwload do swatch, e proceda desta maneira:

descompacte:

% tar -zxvf swatch-3.0.8.tar.gz

entre no diretório de os seguintes comandos:

% perl Makefile.pl

% make

% make test

% make install

Pronto tudo efetuado sem erros e anormalidades, o swatch deve estar 100% funcional, vem agora à parte mais emocionante e delicada, a configuração do Swatchrc.

Configurando o Swatchrc

Como foi dito anteriormente o swatch utiliza expressões regulares de perl, com robustez e facilidades fascinantes o programa swatch se compila usando o arquivo texto .swatchrc e gera um binário que executa a varredura linha a linha, sempre que a linha coincidir com um padrão executa uma ou mais ações associadas, vejamos a seguir estas ações:

echo: Responsável por exibir a linha na saída padrão, com ele podemos definir cores para cada grau de importância.

bell: Emite um sinal sonoro como aviso.

mail: Com este comando enviamos aos usuários predefinidos a linha correspondente.

write: Parecido com mail, mas com ele a linha é escrita diretamente para o usuario

pipe: Envia linhas que correspondem ao programa de entrada padrão.

thorottle: É uma pseudo-ação que permite a definição de uma freqüência do aparecimento certas linhas.

O Swatchrc Propriamente dito

Abaixo segue um swatchrc que escrevi para fins de exemplos, o tome como base para a construção de um personalizado.

#configuração Exemplo do Swatchrc

#Por Fabiano Rech

#www.linuxbsd.com.br

#declaração das linhas que deverão ser ignoradas

#cuidado para não incluir algo que tenha que ser listado

#linha que deverão ser ignoradas pelo Swatch

ignore = /Received signal 15/

ignore = /sbin *poweroff/

ignore = /running *kppp/

#Configuração dos filtros e ações que serão tomadas, ou #seja, o comando watchfor usa as palavras entre as #barras, localiza algo que corresponda a esta #determinação e executa os comandos editados a ele. #importante não esqueça de identar!

#Peco que destaque os programas que foram executados por #usuários com permissão de root

#ele enviará a linha correspondente para Fabiano e soará

watchfor = /with root privileges/

mail ,subject=Root na área

bell 3

#destacará a linha que desejo com vermelho

watchfor = /listening/

echo red

#aqui eu coloco todas as opções que eu não especifiquei, #mas que não quero deixar passar em amarelo.

watchfor = /.*/

echo yellow

Como vimos anteriormente o arquivo de configuração.swatchrc que deverá ficar no home do usuario que executá-lo é relativamente simples, o modelo proposto anteriormente é apenas um pequeno aperitivo, procure usar e abusar das possibilidades que o swatch oferece, crie um que possa varrer todos os arquivos de registros, ou um para cada registro, leia e releia os seus logs e defina o que você quer que o swatch fará para você!

Execução do Swatch

Logo apos tudo configurado vem o momento tão esperado em que você verá que o trabalho que poderia durar algumas horas pode ser feito em alguns minutos (ATENCÃO: Nunca confie totalmente em programas de leitura de logs, torne-os seus grandes aliados não possíveis inimigos, tenha o bom hábito da leitura manual, e com outros scaneadores), para isto veremos a seguir algumas opções que o swatch nos oferece:

% swatch --examine=/var/log/yum.log

O swatch passará somente uma vez pelo arquivo de log, use caso queira um resultado somente.

% swatch --tail-file=/var/log/yum.log

O swatch processa todo o arquivo, mas continua a processar todas as linhas incluídas ao arquivo log, continuamente.

As opções pode ser executadas alternadamente nos horários que sejam relativamente convenientes ou ainda agendadas pelo cron, claro que existe ainda algumas opções, mas por hora estas bastam para se ter um sistema de varreduras eficiente.

Considerações finais

Vejo que a grande deficiência de muitos administradores e responsáveis por sistemas, desde linux, passando pelos bsd's, chegando ao Windows, é falta de atenção a pequenos detalhes, talvez tão minúsculos que são ignorados, acredito que todo o sucesso profissional, e maturidade vem desde pequenos logs, até a de um grande firewall, ou um sistema de detecção de intrusos (http://www.linuxbsd.com.br/phpLinuxBSD/modules/artigos_tecnicos/lids.htm) a leitura e o uso de ferramentas como swatch são impreenscidiveis, mas não devemos nos reter somente a elas, podemos usar diferentes programas, ou até criar o nosso, tudo vai do nosso interesse e criatividade. Digo e repito, o swatch é um programa muito bem elaborado, mas reafirmo, não podemos confiar somente em seus resultados, devemos sim interagir e raciocinar ao nosso favor aconselho extremamente a leitura do arquivo INSTALL que acompanha o os binários do swatch, somente assim você poderá ter certeza que o seu sistema estará do seu modo!

»