Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Aprenda inglês de uma vez por todas

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Log remoto com o rsyslog

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).

Configurações no Cliente

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:

  • Facilidade: Qual aplicação será logada.
  • Nível: Qual a criticidade onde o log será gerado, o "*" mostra todas.
  • Destino: Destino. Aqui temos várias opções, arquivo, usuário (s), terminal, outro host.

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.

Configurações no servidor

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.

Veja a relação completa dos artigos de Flavio Alexandre dos Reis

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.00/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1019 votos)

Opinião dos Leitores

maico
22 Mai 2012, 16:38
Bom e Objetivo! Boa também a dica para habiltar o tcp ao invés de udp.
Arthur Duarte
04 Mai 2011, 08:39
Olá, muito bom tutorial.

Só algumas coisinhas erradas:

No segundo campo de código, está errado:

# apttude install rsyslog

Deveria ser:

# aptitude install rsyslog

E lá quase no final, nessa parte:

# vim /etc/rsyslog.conf
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

Você poderia ter usado TCP, porque a maioria do pessoal que usa Cloud Server vai ter problemas usando UDP se a máquina fonte for uma EC2.

Obrigado.
felipe
02 Fev 2011, 09:32
Muito show!!!
Parabéns..abraços!!!
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Programando o Android