quinta-feira, 21 de junho de 2012

Configurando um Servidor de Logs com Syslog-NG


Pessoal hoje iremos configurar um servidor de logs em nossa rede, é uma funcionalidade extremamente interessante de configurarmos, este é 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 intale o SYSLOG-N:

# aptitude install syslog-ng

O padrão do Debian é o rsyslog, então ele vai perguntar se você quer remover o rsyslog, pressione Y para confirmar e depois para instalar.

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 trafego 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 a 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 especifico, onde só os logs que contem a palavra “sshd” irão ser 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

Depois desse 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.conf

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, ele manda uma copia 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(s_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á esta 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!!

5 comentários: