Construindo um Log Server utilizando Linux, Unix e Windows
Neste artigo são apresentadas as ferramentas e as formas para se construir e gerenciar - de forma fácil e rápida - um logserver remoto para uma rede de computadores heterogênea.
Parte 3: Configuração do Log Server
2 - Configuração do Log Server
Após a instalação do Sistema Operacional, os procedimentos para a instalação e configuração do software para a criação do log server devem ser tomadas. Neste caso, utilizaremos o syslog-ng.
2.1 - Instalando o syslog-ng no Log Server
A instalação do syslog-ng requer, além do próprio software, uma biblioteca denominada libol. Após efetuar o download de ambos, instale a libol acessando o seu diretório e utilizando o comando:
./configure && make && make install
Se você não quiser instalar a libol no sistema, a entrada:
--with-libol=/path/to/libol
deverá ser utilizada como parâmetro na execução do arquivo configure do syslog-ng.
Ao término da instalação da libol, o próximo passo será instalar o syslog-ng. Para tal, acesse o diretório syslog-ng-x.xx (de acordo com a versão utilizada), e execute os seguintes comandos:
./configure
make
Após a instalação, o binário do syslog-ng deverá ser encontrado no diretório src da instalação. Então, para finalizar a instalação, basta executar o comando:
make install
Assim, dá-se por terminada a instalação do log server.
2.2 - Arquivo de configuração syslog-ng.conf
O arquivo de configuração do log server deverá ser criado levando em consideração os hostnames dos hosts a serem monitorados na rede, bem como os seus IP's. A sintaxe deste arquivo de configuração é muito restrita. Logo, o arquivo syslog-ng.conf deverá ser configurado corretamente, sob pena do não funcionamento do software.
# Arquivo syslog-ng.conf
# SYSLOG-NG Configuration file
# by Pace 11/11/2002
options {dir_perm(0755); perm(0644); };
source net { udp(ip(0.0.0.0) port(514)); };
# SYSLOG-NG Configuration file
# by Pace 11/11/2002
options {dir_perm(0755); perm(0644); };
source net { udp(ip(0.0.0.0) port(514)); };
A entrada source é utilizada para definir onde o syslog-ng irá capturar os logs enviados pelos hosts via rede. Para Linux, deve-se definir /dev/log. Para Unix, /var/run/log.
# Logserver instalado em um Unix
source s_local { unix-dgram("/var/run/log"); internal(); };
# Logserver instalado em Linux
source net { unix-stream("/dev/log"); udp(ip(0.0.0.0) port(514)); };
source s_local { unix-dgram("/var/run/log"); internal(); };
# Logserver instalado em Linux
source net { unix-stream("/dev/log"); udp(ip(0.0.0.0) port(514)); };
A entrada destination define o arquivo para o qual as entradas dos registros de auditoria obtidas da rede serão armazenadas. Cada host pode ter uma entrada, porém, podem haver entradas para destinations comuns a vários logs.
# Destination para a geracao de arquivo
# de analise de logs em tempo real
# A forma de geração dos logs irá separar
# os dados obtidos pelo dia, mês e ano
# correntes, facilitando a sua
# localização
destination monitoracao.dst { file("/var/log/syslog-ng/Monitoracao/$YEAR-$MONTH/$DAY/Monitoracao.log" create_dirs(yes));};
destination solaris.dst { file("/var/log/syslog-ng/Solaris/$YEAR-$MONTH/$DAY/$HOST.log" create_dirs(yes));};
destination linux.dst { file("/var/log/syslog-ng/Linux/$YEAR-$MONTH/$DAY/$HOST.log" create_dirs(yes));};
destination windows.dst { file("/var/log/syslog-ng/Windows/$YEAR-$MONTH/$DAY/$HOST.log" create_dirs(yes)); };
# de analise de logs em tempo real
# A forma de geração dos logs irá separar
# os dados obtidos pelo dia, mês e ano
# correntes, facilitando a sua
# localização
destination monitoracao.dst { file("/var/log/syslog-ng/Monitoracao/$YEAR-$MONTH/$DAY/Monitoracao.log" create_dirs(yes));};
destination solaris.dst { file("/var/log/syslog-ng/Solaris/$YEAR-$MONTH/$DAY/$HOST.log" create_dirs(yes));};
destination linux.dst { file("/var/log/syslog-ng/Linux/$YEAR-$MONTH/$DAY/$HOST.log" create_dirs(yes));};
destination windows.dst { file("/var/log/syslog-ng/Windows/$YEAR-$MONTH/$DAY/$HOST.log" create_dirs(yes)); };
A entrada filter define a forma pela qual os logs que são enviados para o log server serão diferenciados entre si. Esta diferenciação permite que estes logs sejam armazenados separadamente.
# Filtros a serem aplicados
# onde "host" deve corresponder à entrada
# existente no arquivo /etc/hosts
filter NT.ftr { host("NT_machine"); };
filter Solaris.ftr { host("Solaris_machine"); };
filter Linux.ftr { host("Linux_machine"); };
# onde "host" deve corresponder à entrada
# existente no arquivo /etc/hosts
filter NT.ftr { host("NT_machine"); };
filter Solaris.ftr { host("Solaris_machine"); };
filter Linux.ftr { host("Linux_machine"); };
A entrada log define o relacionamento lógico entre as entradas definidas em source,
destinations e filter. É desta relação que se define a política de
registro e armazenamento de logs obtidos na rede ou no próprio sistema.
# Politicas de log para máquinas Solaris/Linux/Windows
log { source(net); filter(NT_machine.ftr); destination(windows.dst); };
log { source(net); filter(Linux_machine.ftr); destination(linux.dst); };
log { source(net); filter(Solaris_machine.ftr); destination(solaris.dst); };
# Arquivo: Monitoracao.log
log { source(net); filter(NT_machine.ftr); destination(monitoracao.dst); };
log { source(net); filter(Linux_machine.ftr); destination(monitoracao.dst); };
log { source(net); filter(Solaris_machine.ftr); destination(monitoracao.dst); };
log { source(net); filter(NT_machine.ftr); destination(windows.dst); };
log { source(net); filter(Linux_machine.ftr); destination(linux.dst); };
log { source(net); filter(Solaris_machine.ftr); destination(solaris.dst); };
# Arquivo: Monitoracao.log
log { source(net); filter(NT_machine.ftr); destination(monitoracao.dst); };
log { source(net); filter(Linux_machine.ftr); destination(monitoracao.dst); };
log { source(net); filter(Solaris_machine.ftr); destination(monitoracao.dst); };
# Arquivo /etc/hosts
192.168.0.1 logserver loghost
192.168.0.2 NT_machine
192.168.0.3 Linux_machine
192.168.0.4 Solaris_machine
192.168.0.1 logserver loghost
192.168.0.2 NT_machine
192.168.0.3 Linux_machine
192.168.0.4 Solaris_machine
Desta forma, para o correto funcionamento do log server, os arquivos /etc/hosts e syslog-ng.conf devem estar em sincronia. Caso isto não ocorra, o log server não poderá resolver os nomes dos hosts que estão eviando os seus registros de auditoria.
Páginas do artigo
1. Introdução2. Instalação do Log Server
3. Configuração do Log Server
4. Configurando os hosts da rede
5. Utilizando o swatch
6. Créditos e informações adicionais
Outros artigos deste autor
Nenhum artigo encontrado.Leitura recomendada
Como saber se houve uma invasão
Knockd (bate, bate, bate na porta do céu)
Comentários
Nossa, parabéns gostei muito desse artigo, apesar de já estar aqui a bastante tempo tive a oportunidade de ler ele apenas agora, muito bom, parabéns. Vou ver se consigo colocar ele em prática.
Excelente artigo!!!, vou testar o procedimentos do artigo!!!
Galera caso os outros servidores linux usem syslog-ng ao invez de syslog e você queira q eles enviem o log ao seu servidor de log o parametro é:
destination loghost {
tcp("ipservidor" port(514));
};
log {
source(src);
destination(loghost);
};
destination loghost {
tcp("ipservidor" port(514));
};
log {
source(src);
destination(loghost);
};
Beleza! Só que ao executar o ./configure no diretório do syslog-ng, apareceu o seguinte erro:
checking pkg-config is at least version 0.9.0... yes
checking for GLIB... yes
checking for EVTLOG... configure: error: Package requirements (eventlog) were not met:
No package 'eventlog' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables EVTLOG_CFLAGS
and EVTLOG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
dti-0319:/usr/src/syslog-ng-2.0rc4#
Já procurei pelo pacote event log ou evt log e não consegui achar nada, alguém poderia me ajudar?
Muito obrigado.
checking pkg-config is at least version 0.9.0... yes
checking for GLIB... yes
checking for EVTLOG... configure: error: Package requirements (eventlog) were not met:
No package 'eventlog' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables EVTLOG_CFLAGS
and EVTLOG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
dti-0319:/usr/src/syslog-ng-2.0rc4#
Já procurei pelo pacote event log ou evt log e não consegui achar nada, alguém poderia me ajudar?
Muito obrigado.
Acho que posso dizer que não funciona, talvez só na máquina do autor porque os filtros citados nem foram definidos,
log { source(net); filter(Linux_machine.ftr); destination(monitoracao.dst); };
como ele usa o filter (Linux_machine.ftr) se esse filtro não foi definido em filters logo acima?
O filtro definido foi Linux.ftr que aponta para a linux_machine que está cadastrada no /etc/hosts
Até mais.
log { source(net); filter(Linux_machine.ftr); destination(monitoracao.dst); };
como ele usa o filter (Linux_machine.ftr) se esse filtro não foi definido em filters logo acima?
O filtro definido foi Linux.ftr que aponta para a linux_machine que está cadastrada no /etc/hosts
Até mais.
Galera,
Meu no meu servidor estado tudo OK, nao aparece erro ao inicializar o syslog-ng porem ele nao cria os diretorios nem os logs como foi configurado.
Alguem pode me ajudar, desde já agradeço.
Meu no meu servidor estado tudo OK, nao aparece erro ao inicializar o syslog-ng porem ele nao cria os diretorios nem os logs como foi configurado.
Alguem pode me ajudar, desde já agradeço.
Otimo tutorial!
estou pensando em construir um log server aqui onde trabalho, mas estou estudando em fazer algo um pouco diferente, e provavelmente por um mysql tb para tentar fazer algum tipo de mineracao de dados mais hardcore, mas ainda estou pensando ...
estou pensando em construir um log server aqui onde trabalho, mas estou estudando em fazer algo um pouco diferente, e provavelmente por um mysql tb para tentar fazer algum tipo de mineracao de dados mais hardcore, mas ainda estou pensando ...
+ com certeza o syslog-ng vai ta no meio da solucao e esse tutorial aqui vai ajudar um bocado! :)
?comentario=respondendo a pergunta do espinola eis o pacote: wget http://www.balabit.com/downloads/files/syslog-ng/sources/stable/src/eventlog-0.2.7.tar.gzote: