>_Rsyslog – cliente & servidor

Administrando um servidor rsyslog 

Pequena introdução

A necessidate de registro das atividades dos usuários e serviços dos sistemas é, notoriamente, muito importante para administradores de sistemas. A norma NBR ISO/IEC 27002 recomenda no item 10.10.1 as seguintes características de um sistema de logs:
  • Identificação dos usuário
  • Datas e horários de entrada e saída de terminais
  • Hostname ou endereço IP, para serviços acessados via rede
  • Registro das tentativas de acesso e rejeitados

Organização do rsyslog

Cada linha do arquivo /etc/rsyslog.conf é organizada contendo o seguinte conteúdo:
# facilidade.nível destino
  • Facilidade – É usada para especificar que tipo de programa está enviando a mensagem
  • Nível – Especifica o nível de gravidade da mensagem
  • Destino – Especifica para onde deve ser mandada a mensagem de log
Facilidades do syslog
  • auth – mensagem de segurança/autorização
  • authpriv – mensagem de segurança/autorização (privadas)
  • cron – serviços de agendamentos (cron at)
  • daemon – outros serviços do sistema que não possuem facilidades específicas
  • ftp – serviço de ftp do sistema
  • kern – mensagens do kernel
  • lpr – subsistema de impressão
  • local {0-7} – reservados para uso local
  • mail – subsistema de e-mail
  • news – subsistema de notícias da usanet
  • security – sinônimo para a facilidade auth
  • rsyslog – mensagens genéricas de nível do usuário
  • user – mensagens genéricas de nível do usuário
  • uucp – subsistema de uucp
  • * – confere com todas as facilidades
Níveis prioridades
  • emerg – o sistema está inutilizável
  • alert – uma ação deve ser tomada imediatamente para resolver o problema
  • crit – condições críticas
  • err – condições de erro
  • warning – condições de alerta
  • notice – condição normal, mas significantes
  • info – mensagens informativas
  • debug – mensagens de depuração
  • * – confere com todos os níveis
  • none – nenhuma prioridade
  • error – sinônimo para o nível err
  • panic – sinônimo para o nível emerg
  • warn – sinônimo para o nível warning

Destinos

  • arquivo – o rsyslog nviará os logs para um arquivo
  • | – o rsyslog enviará os logs através de um pipe
  • @ – com a arroba, o rsyslog enviará seus logs para um computador remoto, utilizando hostname ou endereço IP
  • user1, user2 – especificando o usuário , o rsyslog enviará a mensagem para os usuário especificados. Múltiplos usuários são separadados por virgula
  • * – com o asterisco, o rsyslog enviará os logs para todos os usuários logados no momento, através do comando “wall”

Arquivos importantes

  • logs de controle do kernel: /var/log/messages.log
  • logs de depuração de daemons: /var/log/daemon.log
  • logs utilizados pelo comando last: /var/log/wtmp
  • logs utilizados pelo comando last: /var/log/btmp
  • logs utilizado pelo comando lastlog: /var/log/lastlog
  • logs utilizados pelo comando w e who: /var/run/utmp

importante saber:

Regra:
auth.emerg[caminho]
facilidade + prioridade no mesmo caminho
auth,mail.alert [caminho]
facilidade e facilidade + prioridade indo para o mesmo caminho
daemon.=emerg;lpr.=info [caminho]
facilidade1. = a prioridade1 e e facilidade2. = a prioridade2 indo para o mesmo caminho

. (ponto) = – separa facilidade de prioridade

, = e – prioridade iguais
; = e e– prioridade diferentes
= (igual) = – apenasRsyslog

O Rsyslog é um Syslog com foco na segurança e confiabilidade. Entre outros, ele oferece suporte para “bufferização” sob-demanda, syslog confiável para TCP, SSL, TLS e RELP, grava em bancos de dados (MySQL, PostgreSQL, Oracle, e muitos mais), e-mail de alerta, formatos de saída totalmente configurável (incluindo timestamps de alta precisão), é possível filtrar qualquer parte damensagem, compressão de mensagem, converção de arquivos texto para o syslog.Suas funções avançadas o tornam adequado para ambientes corporativos, proteção por criptografia e configuração simples para usuários novatos.
O arquivo de configuração do rsyslogd é “/etc/rsyslog.conf“. O rsyslogd suporta o formato de configuração do syslog, entretanto para utilizar as configurações específicas do rsyslog, é necessário incluir configurações estendidas (quecomeçam com o carácter $).Segue um exemplo de configuração:

# /etc/rsyslog.conf

#Configuration file for rsyslog v3.

#### Módulos ####

$ModLoad imuxsock # fornece suporte para o log local do sistema

$ModLoad imklog # fornece suporte para o log do kernel
#$ModLoad immark # fornece suporte para marcar as mensagens

# Fornece suporte de recepção do syslog UDP
#$ModLoad imudp
#$UDPServerRun 514

# Fornce suporte de recepção do syslog TCP
#$ModLoad imtcp
#$InputTCPServerRun 514

#### Diretivas Globais ####

# utiliza o formato padrão de timestamp

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Define as permissões dos arquivos de log
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

# Regras (Mesmo formato explicado para o syslog)
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log Vulnerabilidade
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* /var/log/user.log

No servidor, adicionei as seguintes linhas no arquivo de configuração:

$ModLoad imudp
$UDPServerRun 514
$ModLoad imrelp
$InputRELPServerRun 4567 # colocando a porta para 4567

$template DynKern, “/var/log/%HOSTNAME%/kernel”
$template DynMsg, “/var/log/%HOSTNAME%/messages”
$template DynAuth, “/var/log/%HOSTNAME%/secure”
$template DynMail, “/var/log/%HOSTNAME%/mail”
$template DynTudo, “/var/log/%HOSTNAME%/tudo”

kern.* ?DynKern
*.info;mail.none;news.none;authpriv.none ?DynMsg
authpriv.* ?DynAuth
mail.* ?DynMail
*.* ?DynTudo

Com isso eu estarei aceitando conexões UDP com verificação de perda depacote na porta 4567. Além disso, estarei criando um template para separar os logs locais dos logs de clientes, facilitando assim o processo de auditoria.

Pronto, agora o meu rsyslog estará pronto para receber os logs dos meus clientes.Configurando os clientes linux:

O rsyslog também trabalha muito bem com infraestrutura de logs centralizado, implementando criptografia no tráfego, verificação na perda de dados e gerenciamento em banco de dados. Para configurar um cliente de logs utilizando o rsyslog, adicionei no final do arquivo de configuração as seguintes linhas:

*.* @IP_do_Servidor
$ModLoad omrelp
*.* :omrelp:IP_do_Servidor:4567;

obs: No exemplo acima, realizei uma configuração de infraestrutura cliente/servidor simples. As mensagens são enviadas para o servidor na porta 4567. Devido à natureza do protocolo UDP, de não ser orientado a conexão, poderia perder alguns logs enviados ao servidor. Para evitar esta perda de mensagens eu utilizo o módulo omrelp, que é um módulo de output confiável que evita a perda de dados.

Por fim reinicie o rsyslog.

Práticas dirigidas para configuração de um cliente linux:

1 – instalei o pacote do rsyslog
# atitpude install rsyslog

2 – irei editar o arquivo de configuração do rsyslog, e colocarei para ativar a opção de logs do cron:

# vim /etc/rsyslog.conf

cron.* /var/log/cron.log
lembrando:
azul= a facilidade
. = separando facilidade de prioridade
verde = a prioridade

1

2

3 – irei criar uma política de rsyslog que possibilite registrar todos os acontecimentos:

*.* /var/log/tudo.log

3

4 – reiniciei o daemon do rsyslog
# invoke-rc.d rsyslog stop # invoke-rc.d rsyslog start

4

5

5 – verifiquei o arquivo /var/log/tudo.log
# cat /var/log/tudo.log

6

6 – enviando os logs remotamente para um servidor.
Para máquinas cliente foi preciso comentar as seguintes linhas abaixo:

#$ModLoad imtcp
#$InputTCPServerRun 514
#$ModLoad imtcp
#$InpuTCPServerRun 514

OBS: CASO SEJA UM SERVIDOR JAMAIS ESTAS LINHAS PODERÃO ESTAR COMENTADAS!

7

7 – no final do arquivo adicionei o ip do servidor


*
.* @10.0.0.2

ModLoad omrelp

*
.*:omrelp:10.0.0.2:4567;

8
8 – após todas as alterações feitas no servidor e nos clientes linux, reiniciei o rsyslog.
# invoke-rc.d rsyslog stop
# invoke-rc.d rsyslog start

9
OBS: Caso queira colocar os logs para serem visualizados em um terminal basta adicionar no servidor o caminho de um ttys desejado.
exemplo:

Recebendo todos os logs de todos os cliente em um terminal no servidor
*.* /dev/tty6

Servidores Windows
Naturalmente a Microsoft não suporta um formato padrão de logs, então terei que usar alguns recursos para monitorar servidores Windows. Uma empresa na Suécia chamada Datagram tem um ótimo software gratuito chamado SyslogAgent, que roda como um serviço do Windows nos servidores. Ele converte todas as mensagens do Visualizador de Eventos (Sistema, Aplicações, Segurança etc) para o formato do rsyslog e os manda para o servidor rsyslog. Nele poderei especificar os diferentes níveis de segurança de cada log. E o melhor de tudo, a instalação não requer o reinício do servidor. Odownload pode ser feito em Datagram SyslogServer Suite v2.2.4 e baixe apenas o aplicativo SyslogAgent file, e não a suíte inteira. Ele roda nas versões NT, 2000 e 2003 do Windows.
>_Rsyslog – cliente & servidor
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: