Configuração 1
Neste tutorial, vou monitorar como exemplo o arquivo de log
/var/log/auth.log. Mas, a mesma lógica e comandos podem ser usados para outros logs.
No
auth.log estão todos os registros de autenticações realizadas no sistema. Vamos, então, configurar nosso script para recebermos alertas todas as vezes que o comando
sudo ou
su for usado no sistema. Ou seja, todas as vezes que alguém tentar se transformar em root ou tentar usar algum comando como root, nós receberemos um e-mail.
Primeiro, defina uma pasta para manter os arquivos que farão parte da configuração. No meu caso, irei usar a pasta
/root/script/.
Criando a pasta:
# mkdir /root/script/
Após criar a pasta, vamos criar o arquivo base:
# grep su /var/log/auth.log > /root/script/original
Este comando diz o seguinte:
- Encontre a palavra su em: /var/log/auth.log
- E escreva o resultado em: /root/script/original
Configuração 2 - O script
Agora, vamos criar o script. Crie o arquivo de script com o comando:
# nano /root/script/atual.sh
Edite o arquivo com o conteúdo abaixo:
grep su /var/log/auth.log > atual
diff original atual
if [ $? -eq 0 ]; then
echo "nada mudou"
else
diff original atual | mailx -s assunto fulano@gmail.com
fi
grep su /var/log/auth.log > original
Saia do arquivo, salvando-o. O comando no nano para isso é:
Ctrl+x
Entendendo o script:
- A primeira linha cria o arquivo atual para comparação.
- A segunda linha compara o arquivo original com o atual.
- A terceira linha é o início do teste lógico, onde $? é a saída do comando anterior e -eq significa igual.
- A quarta linha é a resposta do programa caso a condição da terceira linha seja atendida.
- else = senão.
- A sexta linha é a execução, caso a condição da terceira linha não seja atendida. O comando desta linha diz: compare original com atual, enviando o seu resultado para o e-mail fulano@gmail.com.
- fi = fim.
Então, a leitura do algoritmo fica assim: Se saída igual a zero, então exiba "nada mudou". Se não, faça: diff original atual | mailx ...
O último comando atualiza o arquivo original.
Após sair do script, é preciso torná-lo executável, para isso, execute o seguinte comando:
# chmod +x /root/script/atual.sh
A criação do script foi terminada. Agora, só falta agendar o script para ser executado periodicamente.