sexta-feira, novembro 16, 2007

Centralizando a visualização de logs com Ossec-Hids


Em um ambiente com um servidor, que precisa ser tolerante à falhas é essencial uma boa olhada nos logs de vez em quando. Mas e no caso de vários servidores a serem monitorados? Pois bem, neste poste apresentarei o Ossec-Hids. Uma ótima ferramenta de monitoração de logs, que permite a centralização deles. Então mesmo tendo muitos servidores à monitorar, você vai precisar olhar somente em um lugar. Isso porque o Ossec-Hids funciona como um servidor de logs, recebendo a informação dos clientes e apresentando em uma interface WEB.
Além de apresentar os logs de uma maneira centralizada, o Ossec também faz a checagem de integridade no filesystem. Você terá o controle de arquivos criados, modificados, deletados. Tudo configurável à partir dos arquivos na estrutura xml do Ossec, inclusive as regras de monitoramento e alarme dos logs.
Ah, ía me esquecendo, o desenvolvedor e mantenedor do Ossec é um brasileiro. Bem mãos a obra.

Instalando
Baixe o software aqui
Descompacte o ossec-hids-1.4.tar.gz
tar -zxvf ossec-hids-1.4.tar.gz
Rode o ./install.sh
O script perguntará qual tipo de instalação você fará
server - será o server que tratará os logs
agent - cliente que enviará os logs pro server
local - no caso de apenas um servidor sem agents a monitorar logs.
Escolha server.
A seguir, o script aplicará as RULES (regras) em alguns logs (messages/secure...), compilará os módulos e te perguntará o tipo de arquivo de inicialização rc.d ou red hat like (/etc/init.d).

WEB GUI
Para instalar o WEB GUI você precisará do Apache e PHP
WEB GUI aqui
Descompacte o arquivo no ROOT do seu apache (ex. /var/www/html).
tar -zxvf ossec-wui-0.2.tar.gz -C /var/www/html
Entre na pasta e rode o ./setup.sh
Depois adicione o usuário do seu serv. WEB (ex. apache) no grupo OSSEC
gpasswd -a ossec apache
acesse a URL
http://localhost/ossec-wui

Agents (clients)
Os clients podem ser tanto Linux como Windows
A versão windows aqui
A versão Linux é o mesmo tar.gz da instalação do server, você só precisará mudar na hora de escolher o tipo de instalação. Escolha Agent.
./install.sh
no tipo de instalação escolha agent
informe o IP do servidor quando for solicitado.

Adicionando os agents
A comunicação entre os agents e o server é criptografada. Para adicionar os agents é necessário uma chave que será criada no server. Para isso, no Server, entre no diretório /var/ossec/bin e rode ./manage_agents
O comando te lista 5 opções.
para adicionar os agentes escolha a opção "(A)dd an agent (A)"
informe um nome e o IP do agente (client)
Depois de adicionado o agente, será neecssário extrair a chave.
Escolha a opção "(E)xtract key for an agent (E)", o script listará os agentes disponíveis, identificados por um ID. Escolha o agent. E a chave será impressa na tela.
Vá no agent, na pasta /var/ossec/bin e rode o mesmo ./manage_agents
escolha a opção (I)mport key for the server (I). E cole a chave.
Agora só reiniciar o serviço Ossec
/etc/init.d/ossec restart no server e no agent.

O Ossec permite muito controle sobre o que é apresentado ou não. No diretório /var/ossec/rules estão todas as regras aplicadas nos logs.
Você pode filtrar uma mensagem específica no log (fazendo uma regex), mandar printar só se aparecer N vezes, enfim, uma infinidade de opções que valem muito a pena serem exploradas.
Ah, e tem o Active Response, que é uma medida que o Ossec toma caso alguma regra que você configurou bata. Ex. colocar um IP em /etc/hosts.deny após algumas tentativas de acessos sem sucesso por ssh, executar comandos específicos, scripts.... Aí é soltar a imaginação.

O site oficial é http://www.ossec.net
Vale muito a pena dar uma olhada no manual, para poder filtrar melhor os alarmes.

5 comentários:

Leandro disse...

Olá,
eu instalei o ossec num ubuntu workstation, ele tá configurado bonitinho, executando, adicionei um agente windows que tem o serviço rodando também mas apesar de manuais no site do ossec e etc....como faço para visualizar o "tráfego", ou sei lá, como faço para visualizar as informações que o ossec coleta/monitora?
agradeço desde já pela atenção.

Adelson Junior disse...

Olá Leandro,
a visualização das infos do Ossec, é feita através da interface WEB. Você a instalou?
Se não baixe-a nesse link
Descompacte no ServerRoot do Apache e acesse via Browser.
Abraço!

Anônimo disse...

Opa cara, tudo bem?

Eu instalei tudo direitinho em um server que tenho Fedora 3, para testes, e está rodando super bem. A interface WEB também está funcionando e os e-mails também. Mas minha dúvida é quanto as RULES. Como eu configuro elas. Como faço para ele mandar alertas só para coisas importantes, ou q mande qndo alguem logue muitas vezes com senha errada, ou fique tentando entrar em sites proibidos várias vezes em um determinado intervalo de tempo, por exemplo?

Desde já agradeço.

Eduardo P.S.

Graziela Pereira disse...

Bom dia,
Gostaria de saber se os clientes podem ser instalados em firewall.

Unknown disse...

Junior, eu instalei ele, e a interface web.
Eu chego na pagina onde diz Ossec web interface, mas quando eu clico nos links nao aparece nada.
Eu instalei o php e fiz a instalação do ossec web na pasta /ver/www.
oque pode estar errado. obrigado.