Eu configurei o arquivo /etc/rc.config.d/auditing como abaixo
AUDITING=1
PRI_AUDFILE=/var/.audit/audfile1
PRI_SWITCH=10000
SEC_AUDFILE=/var/.audit/audfile2
SEC_SWITCH=10000
AUDEVENT_ARGS1=" -P -F -r Remotesyslog"
AUDEVENT_ARGS2=""
AUDEVENT_ARGS3=""
AUDEVENT_ARGS4=""
AUDOMON_ARGS=" -p 20 -t 1 -w 90"
Eu criei um perfil personalizado em /etc/audit/audit_site.conf
#Custom Auditing File
# Audit self auditing admin commands, logins and execve calls
PROFILE Remotesyslog= SELFAUD_EVENT admin, EVENT login, execve, execv
Eu criei o abaixo em /var/.audit
1) A folder "remotelogs"
2) A script "remotelogs.sh"
O conteúdo do arquivo de script é como abaixo
NOW=$(/usr/bin/date +"%Y%m%d%H%M")
if /usr/bin/audsys | grep -q audfile1; then
/usr/bin/audsys -c /var/.audit/audfile2 -s 100000
/usr/bin/audisp /var/.audit/audfile1 > /var/.audit/remotelogs/remotelogs.log.${NOW}
sleep 5
/usr/contrib/bin/gzip /var/.audit/remotelogs/remotelogs.log.${NOW}
rm -r /var/.audit/audfile1
else
/usr/bin/audsys -c /var/.audit/audfile1 -s 100000
/usr/bin/audisp /var/.audit/audfile2 > /var/.audit/remotelogs/remotelogs.log.${NOW}
sleep 5
/usr/contrib/bin/gzip /var/.audit/remotelogs/remotelogs.log.${NOW}
rm -r /var/.audit/audfile2
fi
Basicamente, o que o script faz é verificar qual é a trilha de auditoria atual e, em seguida, alterna para a próxima trilha de auditoria, despeja o conteúdo da trilha de auditoria atual em um arquivo de texto com o carimbo de data e hora anexado a ele. Ele espera por 5 segundos para dar tempo para despejar o conteúdo e, em seguida, comprime o arquivo de texto e, em seguida, remove o conteúdo da trilha de auditoria atual.
Para rodar isso em intervalos regulares (a cada 3 minutos), eu agendei um cronjob para o mesmo no crontab da seguinte forma
3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,59 * * * * /var/.audit/remotelogs.sh
Além disso, adicionei outro cronjob para remover logs com mais de três dias da seguinte forma
00 00 * * * find /var/.audit/remotelogs/* -mtime +3 | xargs rm
Espera que ajude