O Incron trabalha analisando as entradas do 'incrontab' de cada usuário, e para cada evento no objeto (diretório e ou arquivo) monitorado, o
Incron executa um comando ou script definido pelo administrador.
Desta forma, podemos usar o Incron para armazenar informações sobre alterações no diretórios e/ou arquivos, assim como a criação de arquivos ou exclusão dos mesmos, podendo monitorar um objeto ou vários objetos contidos no diretório.
Caso o serviço não esteja funcionando, execute no terminal, como 'root', para iniciar o serviço:
# /usr/sbin/incrond -f /etc/incron.conf
Ou:
# /etc/init.d/incron start
Escrevendo entradas no incrontab do root
Para escrever uma entrada no 'incrontab' do 'root', é necessário colocar o 'root' no "/etc/incron.allow". Então, execute como 'root' o comando:
# echo “root” >> /etc/incron.allow
Em seguida, acrescente uma entrada no 'incrontab' do usuário 'root', execute o comando como 'root':
# incrontab -e
Dentro do arquivo de edição do 'incrontab', adicione a linha a seguir:
# /usr/local/bin IN_CREATE,IN_DELETE logger -p local1.notice $@/$# $%
* Explicação da entrada no incrontab:
O diretório "/usr/local/bin" será monitorado, e qualquer evento de criação ou deleção de diretório ou arquivo dentro do mesmo, será registrado
pelo comando 'logger' com a facilidade 'loca1' e nível 'notice'.
Os símbolos indicam:
- $@: O diretório que está sendo monitorado “/usr/local/bin” no exemplo.
- $#: indica o nome do objeto (pode ser um arquivo ou diretório) onde ocorreu um evento.
- $%: Indica o tipo de evento realizado sobre o $# objeto.
Edite o arquivo "/etc/syslog.conf" e adicione a linha abaixo no arquivo:
# vim /etc/rsyslog.conf
# local1.notice /var/log/logincron.log
Pronto. O Incron está rodando e monitorando qualquer criação e deleção de arquivo ou diretório dentro de "/usr/local/bin".
Testando
# touch /usr/local/bin/teste
# rm /usr/local/bin/teste
# mkdir /usr/local/bin/kill
# rmdir /usr/local/bin/kill
Saída do arquivo de Log: "/var/log/logincron.log":
# tail -f /var/log/logincron.log
Jan 15 17:05:03 desktop logger: /usr/local/bin/teste IN_CREATE
Jan 15 17:06:01 desktop logger: /usr/local/bin/teste IN_DELETE
Jan 15 17:08:43 desktop logger: /usr/local/bin/kill IN_CREATE,IN_ISDIR
Jan 15 17:09:02 desktop logger: /usr/local/bin/kill IN_DELETE,IN_ISDIR
Monitorando alterações nos arquivos "/etc/passwd" e "/etc/shdow":
Incluindo entrada no 'incrontab' do 'root':
# incrontab -e
/etc/passwd IN_MODIFY,IN_CLOSE_WRITE,IN_ATTRIB logger $@ $%
/etc/shadow IN_MODIFY,IN_CLOSE_WRITE,IN_ATTRIB logger $@ $%
Testando
# useradd maria
# passwd maria
# userdel maria
Vendo trecho dos Logs registrados pelo comando 'logger' a cada evento identificado pelo 'incrond':
# tail -f /var/log/messages
Jan 15 20:18:49 desktop logger: /etc/passwd IN_CLOSE_WRITE
Jan 15 20:18:49 desktop logger: /etc/passwd IN_ATTRIB
Jan 15 20:18:49 desktop logger: /etc/shadow IN_CLOSE_WRITE
Jan 15 20:18:49 desktop logger: /etc/shadow IN_ATTRIB
Jan 15 20:28:26 desktop logger: /etc/passwd IN_CLOSE_WRITE
Jan 15 20:28:26 desktop logger: /etc/passwd IN_ATTRIB
Jan 15 20:28:26 desktop logger: /etc/shadow IN_CLOSE_WRITE
Jan 15 20:28:26 desktop logger: /etc/shadow IN_ATTRIB
Observe que cada arquivo foi aberto para escrita e foi escrito algo, e também foi mudado os atributos estendidos por que a data da ultima
modificação foi alterada.
Isto aconteceu por que os comandos digitados fizeram modificações nos dois arquivos.
Os símbolos ao lado da entrada no 'incrontab' servem para identificar o arquivo e o tipo de evento ocorrido sobre o objeto monitorado, conforme
expliquei anteriormente.
Gerando backup do diretório monitorado a cada evento de alteração no objetos contidos no mesmo:
# incrontab -e /home/edson/Documentos IN_MODIFY,IN_CLOSE_WRITE,IN_ATTRIB /usr/local/bin/bkp
Conteúdo do script:
#!/bin/bash
rsync -au /home/edson/Documentos /mnt/backup/bkp-rsync
Cada vez que houver uma alteração em algum arquivo ou diretório dentro de "/home/edson/Documentos", o 'incrond' irá executar o comando
“bkp”, que por sua vez irá fazer uma cópia usando o comando “rsync”.
Obs.: O “rsync” está usando a opção '-u', isto faz com que o “rsync” copie para o destino apenas os diretórios e arquivos mais recentes, assim como
as alterações nos mesmos.
Conclusão
O Incron é uma boa ferramenta para o fim que foi apresentado neste artigo, podendo ser utilizado para fazer auditorias em sistemas que usam
sua instalação.
Observações:
O Incron não faz verificações recursivas, isto significa que se você for tentar monitorar o diretório "/etc" e fizer alguma alteração de algum arquivo
ou diretório que esteja contido dentro de um subdiretório do "/etc", ele não será registrado; a menos que você insira uma entrada no 'incrontab' ou
faça uso de um comando (exemplo: find) dentro da 'incrontab'.
O Incron também não registra os nomes dos usuários responsáveis pelos eventos.
Fonte de consulta: