Servidor de log no Debian com Syslog-ng

Quando falamos de segurança, também devemos nos preocupar com nossos logs. É recomendado que todos os logs sejam guardados por anos, pois neles podemos obter informações válidas, porém estas são válidas também para os crackers. Neste artigo utilizaremos o syslog-ng com uma interface web para armazenar o log de todos os servidores em um único servidor centralizado.

[ Hits: 72.468 ]

Por: Leonardo Damasceno em 27/05/2010 | Blog: https://techcraic.wordpress.com


Configurando o Apache2



Antes de acessar pelo navegador, adicione no final do arquivo de configuração do seu apache (no caso do Debian /etc/apache2/apache2.conf) a seguinte linha:

AddType application/x-httpd-php .phtml .php

Ou seja, abra o arquivo e insira no final do arquivo a linha acima:

# vim /etc/apache2/apache2.conf

Apesar das configurações feitas, o Php-Syslog-ng ainda não está pronto. Precisamos incluir a senha do usuário root do banco de dados no arquivo de configuração dele. Observe que se você tentar acessar sem inserir essa senha no arquivo de configuração, será exibida uma página que no topo terá uma mensagem assim:

A database connection problem was encountered.
Please check config/config.php to make sure everything is correct and make sure the MySQL server is up and running.


Então abra o arquivo de configuração localizado em /var/www/phpsyslog/config/config.php.

Onde tiver "PW_HERE", coloque o password do banco, depois salve e feche o arquivo. Agora reinicie o serviço do Apache da seguinte maneira:

# /etc/init.d/apache2 restart

Finalizando e colocando em execução

Acesse o diretório /var/www/phpsyslogng-2.8/scripts. Configure o Syslog-ng para gravar os dados no MySQL da seguinte maneira:

# cd /var/www/phpsyslogng-2.8/scripts
# cat syslog.conf >> /etc/syslog-ng/syslog-ng.conf


Abra o arquivo /etc/default/syslog-ng e descomente essa linha:

CONSOLE_LOG_LEVEL=1

Vá ao arquivo de configuração do syslog-ng para editarmos algumas linhas. Utilize seu editor de texto preferido:

# vim /etc/syslog-ng/syslog-ng.conf

Agora procure pela linha comentada, onde tem:

#udp();

E descomente. Faça o mesmo para use_dns(no), alterando o estado de "no" para "yes" e vamos adicionar outra linha. Depois de realizar a busca, você deve encontrar a linha assim:

#use_dns(no);

Deixe com "yes" e adicione a linha "dns_cache(yes);":

use_dns(yes);
dns_cache(yes);

Agora sim, acesse do seu navegador a página com o endereço do servidor e o complemento "phpsyslog", exemplo:

http://192.168.10.5/phpsyslog

Login: admin
Senha: admin

Após efetuar o login, se você recebe um erro do tipo:

"Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

Calma, não altere nada em seu banco de dados. Basta editar o arquivo config.php (/var/www/phpsyslog/config/config.php), alterando a linha que diz:

define('USE_CACHE', TRUE);

Para:

define('USE_CACHE', FALSE);

Ou seja, alteramos apenas de "TRUE" para "FALSE", reinicie o apache e tente acessar novamente.

Para os clientes, basta instalar o syslog. Para instalar em um cliente Debian:

# apt-get install sysklogd

Vá até o arquivo central de configuração e adicione a linha para que todos os logs sejam redirecionados para o nosso servidor de log central:

# vim /etc/syslog.conf

Adicione a linha:

*.*            @IPDOSERVIDOR

Página anterior    

Páginas do artigo
   1. Instalação dos requisitos
   2. Adaptando e configurando o banco MySQL
   3. Configurando o Apache2
Outros artigos deste autor

Desmistificando o GNU/Linux

Instalando o WebHTB

I-Educar no Gnu/Linux

Criando DMZ com o PFSense

Segurança em seu Linux (parte 2)

Leitura recomendada

Instalando a nova versão do HLBR - IPS invisível

Auditorias Teste de Invasão para Proteção de Redes Corporativas

PaX: Solução eficiente para segurança em Linux

Nmap - Comandos úteis para um administrador de sistemas Linux

Melhorando a segurança do seus servidores em FreeBSD

  
Comentários
[1] Comentário enviado por silveriosr em 28/05/2010 - 10:29h

posto o arquivo dbsetup.sql, pois ao tentar executar ele dentro do meu mysql esta apresentand o seguinte erro

#ERROR 1046 (3D000) at line 1: No database selected

[2] Comentário enviado por jucaetico em 28/05/2010 - 11:24h

Amigo,

Consigo monitorar maquinas da familia Windows server com esse servidor de LOGs??

Obrigado!

Parabens pelo artigo.

Abraços

[3] Comentário enviado por brennoleto em 12/08/2010 - 05:46h

Amigo, sabe nos passar a configuração no cliente windows para enviar os logs remoto?
Abrasss!

[4] Comentário enviado por leodamasceno em 12/08/2010 - 09:17h

Desculpe a demora para responder humano10 e brennoleto, mas existe um cliente para windows que envia as mensagens para o syslog, é chamado de Snare Agent.

Vocês podem dar uma olhada aqui: http://sial.org/howto/logging/syslog-ng/ na parte em que ele fala sobre o Syslog no Windows. :)

Download e informações sobre o Snare Agent: http://www.intersectalliance.com/projects/SnareWindows/


Um abraço.

[5] Comentário enviado por paulodeolindo em 11/01/2011 - 09:24h

Olá;
Sou iniciante no linux e não entendo muito de apache ou instalações por código fonte. Infelizmente, somente consigo executar os apt-get da vida.
Então, cheguei na parte deste tutorial, onde preciso restartar o apache e me retorna a seguinte mensagem:

#Restarting web server: apache2apache2: Coul not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName#

O que isso significa? Não arrisquei prosseguir daí. Podem me ajudar, por favor? Desde já, grato.

[6] Comentário enviado por leodamasceno em 13/01/2011 - 11:58h

Olá paulodeolindo,
Isso na verdade não é um erro, é apenas um aviso pois você não definiu o campo ServerName lá no arquivo de configuração do apache, ai ele utiliza 127.0.1.1 para tal. Faça o seguinte:

sudo vim /etc/apache2/httpd.conf

Agora, insira:

ServerName localhost

Salve e saia, depois dê um restart no Apache:

sudo /etc/init.d/apache2 restart

[7] Comentário enviado por paulodeolindo em 17/01/2011 - 09:17h

Obrigado Leonardo; consegui mesmo e a ferramenta já está em funcionamento; tenho uma dúvida, pois com essa ferramenta, estou praticamente iniciando minhas atividades Linux na empresa que estou trabalhando. Tenho uma pergunta: existe algum client para Servidores Windows para que estes também mandem os logs para nosso Servidor de Logs?

[8] Comentário enviado por leodamasceno em 17/01/2011 - 09:25h

paulodeolindo, você pode utilizar o Snare, veja:

http://www.syslog.org/logged/logging-windows-events-to-syslog-using-snare/

[9] Comentário enviado por paulodeolindo em 18/01/2011 - 09:25h

Obrigado mais uma vez Leonardo; poxa... já estou sendo chato, mas preciso de mais um bizu seu; toda vez que preciso reiniciar o servidor de logs (pois está em teste), ele coleta logs apenas no modo texto, mas os dados não são exibidos no mysql; achei que rodando o script "syslog2mysql.sh &" resolveria, mas algo está errado e não são exibidos os logs na interface gráfica; tem idéia do que pode estar ocorrendo?
Desde já, grato.

[10] Comentário enviado por dimago em 24/11/2011 - 20:16h

Fala leo e demais amigos do VOL

Como está esta solução de syslog-ng + web? está bacana? tudo certo? Estava pensando em implementar para ver qual eh..

Voces possuem algum screenshot?

Obrigado e abs

[11] Comentário enviado por fabintexas em 22/07/2013 - 23:36h

Iai Leo, blz?

Gostaria de sua ajuda, pois está dando erro ao executar o script do php-syslog-ng ----> mysql -u root -p < dbsetup.sql

Segue o erro:

ERROR 1064 (42000) at line 11: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 14


Como posso proceder nesse caso?

Obrigado !!!

[12] Comentário enviado por jsimas em 29/12/2014 - 23:06h

Boa noite, galera!

Estava seguindo o tutorial de vocês e está tudo dentro do que foi colocado no tutorial, mas ainda segue mostrando a mensagem abaixo:

A database connection problem was encountered.
Please check config/config.php to make sure everything is correct and make sure the MySQL server is up and running.
---

Já add a linha > AddType application/x-httpd-php .phtml .php <
Alterei as senhas do BD e do PHP;
Restartei serviços e até agora esse erro não sai. Alguém poderia por favor dá uma dica?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts