De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Flavio Alexandre dos Reis
Data de Publicação: 18 de maio de 2010
Logs são arquivos texto gerados pelo sistema e que podem ajudar a descobrir problemas na execução de softwares, problemas de hardware. Tentativas de invasão podem ser descobertas com análise dos logs. É muito importante deixar esses arquivos seguros e intactos. Em uma auditoria de sistemas esses logs serão importantes, portanto, logs nunca devem ser alterados, somente o root deverá ter acesso a eles.
Nesse documento será apresentado um exemplo de como gerar log em hosts clientes e destiná-los a servidores remotos, centralizando a gravação dos logs.
Para executar o exemplo foram utilizadas duas máquinas com Ubuntu 9.10, e o aplicativo usado como exemplo para gerar o log remoto foi o agendador de tarefas (cron).
Primeiro passo, verificar se o rsyslog está instalado.
# aptitude search rsyslog i rsyslog - enhanced multi-threaded syslogd
Observe que o rsyslog está instalado. Se a primeiro letra for um (p) o aplicativo está disponível mas não instalado.
Para instalar
# apttude install rsyslog
Faça o mesmo processo em todas as máquinas, sejam clientes ou servidores.
Editando o arquivo de configuraçao no cliente.
# vim /etc/rsyslog.conf
Observe a diretiva "IncludeConfig". Ela indica que todos os arquivos .conf
localizados em`` /etc/rsyslog.d`` serão adicionados. Isso facilita na organização do arquivo.
# Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf
Observe o caminho indicado e acesse o diretório.
# cd /etc/rsyslog.d # vim 50-default.conf
Observe as linhas referentes ao cron.
Agora entra o conceito de facilidade.nível destino.
Resumindo:
A linha será alterada e destinada a um host remoto (nosso servidor de logs).
Por padrão essa linha vem comentada, faça a seguinte alteração.
Antes:
;cron.* /var/log/cron.log
Depois:
cron.* @192.168.220.34
Onde: 192.168.220.34 é o servidor que irá receber os logs.
Salve as alterações e feche o arquivo.
Reinicie o rsyslog para que as alterações façam afeito.
# invoke-rc.d rsyslog restart
As configurações no cliente estão encerradas, voltaremos no cliente posteriormente.
Conforme falado no inicio, verifique se rsyslog está instalado
# aptitude search rsyslog
Primeiro passo e ativar a gravação do log remoto, se o arquivo não existir poderá ser criado e inserido a seguinte diretiva.
# vim /etc/default/rsyslog SYSLOGD="-r"
No arquivo /etc/rsyslog.conf
será necessário observar alguns detalhes. O syslog, quando configurado para receber log remotamente, deverá estar com a porta 514 liberada.
Observe se as diretivas abaixo estão ativas no servidor, essas diretivas habilitam a escuta do log remoto.
# vim /etc/rsyslog.conf # provides UDP syslog reception $ModLoad imudp $UDPServerRun 514
Observe a diretiva "IncludeConfig"
# Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf
Salve as alterações e feche o arquivo.
Agora será configurado o arquivo que receberá o log do cliente.
# cd /etc/rsyslo.d # vim 50-default.conf
Observe as linhas referentes ao cron
Antes:
;cron.* /var/log/cron.log
Depois:
cron.* /var/log/cron.log
Salve as alterações e feche o arquivo.
Reinicie o rsyslog
# invoke-rc.d rsyslog restart
Pode-se executar um check-list para Verificar se o serviço está disponível. Esse passo é muito importante para saber se as configurações surtiram efeito. Aqui foi utilizado o netstat fazendo um filtro na porta 514.
# netstat -putan | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:* 9380/rsyslogd udp6 0 0 :::514 :::* 9380/rsyslogd
Conferindo os log gerados pelo cliente.
Acesse o terminal 2 ( ctrl + alt + f2 ) e execute a seguinte linha de comando.
# tail -f /var/log/cron.log
Acesse o terminal 3 ( ctrl + alt + f3 ) e execute a seguinte linha de comando.
# tcpdump port 514 -i eth0 -n -vv
No cliente reinicie o cron
# invoke-rc.d cron restart
Volte ao terminal 2 e observe a saída do log.
# tail -f /var/log/cron.log Apr 12 23:49:42 reisfa-vostro cron[3050]: (CRON) INFO (pidfile fd = 3) Apr 12 23:49:42 reisfa-vostro cron[3051]: (CRON) STARTUP (fork ok) Apr 12 23:49:42 reisfa-vostro cron[3051]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Volte ao terminal 3 e observe a saída do log.
# tcpdump port 514 -i eth0 -n -vv tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 00:46:51.198563 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 102) 192.168.220.36.38980 > 192.168.220.34.514: SYSLOG, length: 74 Facility cron (9), Severity info (6) Msg: Apr 13 00:46:52 reisfa-vostro cron[2909]: (C[|syslog] 00:46:51.198579 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 98) 192.168.220.36.38980 > 192.168.220.34.514: SYSLOG, length: 70 Facility cron (9), Severity info (6) Msg: Apr 13 00:46:52 reisfa-vostro cron[2910]: (C[|syslog] 00:46:51.200372 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 131) 192.168.220.36.38980 > 192.168.220.34.514: SYSLOG, length: 103 Facility cron (9), Severity info (6) Msg: Apr 13 00:46:52 reisfa-vostro cron[2910]: (C[|syslog]
Todas as atividades do efetuadas no cron serão logadas.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários