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
또한 아래와 같이 3일이 지난 로그를 삭제하기 위해 또 다른 cronjob을 추가했습니다.
00 00 * * * find /var/.audit/remotelogs/* -mtime +3 | xargs rm