Instalando o servidor de logs
Pessoal, hoje iremos configurar um servidor de logs em nossa rede.
Esta é uma funcionalidade extremamente interessante de configurarmos, pois é um item tão importante que é um dos requisitos da norma ISSO/IEC 27002:2005.
Imaginem que o seu servidor foi invadido e o atacante apagou os logs do servidor, se você possui um servidor de logs em sua rede, você vai poder realizar a análise dos logs do servidor que foi invadido e poder entender um pouco melhor o que aconteceu.
Então vamos lá pessoal, este é um item bem fácil de configurar, no seu servidor de logs instale o
syslog-ng. Em distribuições baseadas no
Debian, execute:
# aptitude install syslog-ng
O padrão do Debian é o
rsyslog, então ele vai perguntar se você quer removê-lo. Pressione "Y" para confirmar e depois para instalar.
Configuração
Depois que o Syslog-ng estiver instalado, vá no diretório dele para editar seu arquivo de configuração:
# cd /etc/syslog-ng
# pico syslog-ng.conf
No campo SOURCE, você vai adicionar a seguinte linha para definir o nome do source e protocolo utilizado para realizar a transferência dos logs:
source log_redeinterna { udp();};
Iremos utilizar o protocolo UDP para gerar menos tráfego na rede, agora iremos configurar as máquinas remotas, no campo FILTER adicione a seguinte linha:
filter f_maq113 { netmask(192.168.0.113); };
Aqui coloquei "f_maq113", pois o IP da minha máquina é final 113, mas você pode ficar à vontade para organizar do jeito que quiser. Ou também pode ser:
filter f_maq113 { host("poseidon"); }; # Onde "poseidon" é o nome da minha máquina.
Você ainda pode fazer um filtro mais específico, onde só os logs que contém a palavra "sshd" serão encaminhados para nosso servidor de logs:
filter f_maq115_ssh { netmask(192.168.0.115) and match("sshd"); };
Obs.: Lembrando que você pode substituir o "netmask" da regra por "host" e especificar o nome da máquina.
Agora, precisamos dizer ao Syslog onde ele irá armazenar os logs que serão enviados pra ele, no campo DESTINATION adicione as seguintes linhas:
destination d_maq113 { file("/var/log/maq113.log"); };
destination d_maq115_ssh { file("/var/log/maq115_ssh.log"); };
Percebam que o nome do "destination" segue a mesma lógica dos "filter’s d_maq113", pois o final do IP termina com 113.
Agora que já configuramos nosso filter e nosso destination, precisamos somente "ativar" a configuração com o parâmetro log, no campo LOG adicione as seguintes linhas:
log { source(log_redeinterna); filter(f_maq113); destination(d_maq113); };
log { source(log_redeinterna); filter(f_maq115_ssh); destination(d_maq115_ssh); };
Salve o arquivo e reinicie o Syslog-ng:
# /etc/init.d/syslog-ng restart
Configuração dos clientes
Depois deste pequeno trabalho, precisamos configurar nossos clientes (maq113 e maq115_ssh)
Instale o Syslog-ng no cliente, assim como no servidor:
# aptitude install syslog-ng
Agora, vamos configurar nosso cliente:
# cd /etc/syslog-ng
# pico syslog-ng
Adicione a linha abaixo no campo DESTINATION:
destination servidor_log { udp("192.168.0.10" port(514)); };
Bem simples, não é?
Esta linha é onde acontece a mágica, ela manda uma cópia de todos os logs para o nosso servidor de logs, que é o IP "192.168.0.10" na porta padrão 514.
Se você não quiser que ele mande todos os logs para o servidor, você pode criar um filtro especificando o que quer mandar, como é mostrado a baixo:
filter f_servidor_log { level(info, warn, err, crit) and facility(auth, authpriv, daemon, mail, news, cron, user); };
Desse jeito, você pode personalizar de acordo com sua necessidade, depois é só adicionar a linha de log abaixo no campo LOG do syslog-ng:
log { source(src); destination(servidor_log); };
Reinicie o Syslog-ng:
# /etc/init.d/syslog-ng restart
Obs.: Siga as mesmas instruções nos demais clientes.
Pronto, com isso que fizemos, nosso servidor de log já está operando perfeitamente.
Para testar a configuração, faça alguma operação na máquina cliente e verifique
se foi criado o arquivo de log no servidor.
No próximo tutorial, iremos aprender como rotacionar os logs do servidor.
Bem, é isso pessoal. Espero ter ajudado, até a próxima!!
Artigo previamente publicado em: