我在 HPUX 系统上设置审核并将其作为多行日志发送到 SIEM 解决方案时遇到了麻烦。问题是 audsys 将日志写入二进制文件,我需要以 audisp 将其转换为文本文件并定期将其发送到我们的 syslog 服务器的方式进行设置。
答案1
我设置 /etc/rc.config.d/auditing 文件如下
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"
然后我在 /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
我在 /var/.audit 中创建了以下内容
1) A folder "remotelogs"
2) A script "remotelogs.sh"
脚本文件内容如下
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
基本上,该脚本的作用是检查哪个是当前审计跟踪,然后切换到下一个审计跟踪,将当前审计跟踪的内容转储到文本文件中,并附加时间戳。它会等待 5 秒,以便有时间转储内容,然后压缩文本文件,然后删除当前审计跟踪的内容。
为了定期(每 3 分钟)运行一次,我在 crontab 中安排了一个 cronjob,如下所示
3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,59 * * * * /var/.audit/remotelogs.sh
我还添加了另一个 cronjob 来删除超过 3 天的日志,如下所示
00 00 * * * find /var/.audit/remotelogs/* -mtime +3 | xargs rm