본문 바로가기
TechNology

ShellScript Firewall log dissipation backup

by jszzang2079 2024. 5. 8.

 

 

 

CSAP 대응을 하다보면 방화벽 자산에 대해서 1년 이상 로그를 보관해야하는 경우가 있습니다.

먼저 방화벽에서 방화벽(axgate40D)의 syslog 전달이 소산백업서버로 전달되도록 설정이 되었을 때를 가정합니다.

 

아래 코드는 방화벽의 syslog를 전달 받은 소산백업서버(ubuntu 22.04)에서 스크립트로 

해당 방화벽에서 전달 받은 내용만 필터하여 원하는 위치에 재 저장하는 스크립트 입니다.

 

소산백업 서버의 syslog는 실시간으로 받고 있으므로 금일 새벽에 cron을 돌려서

전일 syslog의 내용 즉 syslog.1(온전히 하루치 로그를 대상으로) 대상으로

방화벽 장비의 hostname(ISOLATION_FW) 이 찍힌 라인만 별도로 원하는 곳으로 재 저장하는 스크립트 입니다.

그래서 SAVE_FILENAME_DATE 에서 -1days 로 지정했습니다.

 

스크립트 구성 방향성만 언급해 드렸으며 나머지는 일반적인 명령어 모음으로 구성되어 있으므로 

중급 스크립트 작성을 하실 수 있으신 분이면 이해 가능할 것으로 판단되며 혹시 궁금한 점 있으시면 댓글 바랍니다.

 

#!/bin/bash

#########################################################################
# AXGATE 40D FIREWALL LOG BACKUP SCRIPT
#########################################################################

#########################################################################
# VARIBLE DEFINITION
#########################################################################
# TARGET FILE
BACKUP_TARGET_PATH=/var/log
BACKUP_TARGET_FILENAME=syslog.1
BACKUP_TARGET=$BACKUP_TARGET_PATH/$BACKUP_TARGET_FILENAME

# SAVE FILE
BACKUP_SAVE_PATH=/CloudKey_BACKUP/FIREWALL/AXGATE40D
SAVE_FILENAME_DATE=$(date +"%Y%m%d" -d "-1days")
BACKUP_SAVE_FILENAME=$BACKUP_SAVE_PATH/AXGATE40D_LOG_$SAVE_FILENAME_DATE
#########################################################################

#########################################################################
# FUNCTION
#########################################################################
NOTHING() {
	return
}

ERROR() {
	echo $error_message
	exit 1
}

TARGET_FILE_CHECK() {
	if [ -e $BACKUP_TARGET ]; then
		echo "  1) BACKUP_TARGET_FILE OK :: $BACKUP_TARGET"
	else
		error_message="ERROR, 1) BACKUP_TARGET_FILE CHECK !!"
                ERROR
	fi
}

BACKUP_SAVE_PATH_CHECK() {
        if [ -d $BACKUP_SAVE_PATH ]; then
		echo "  2) BACKUP_SAVE_PATH OK :: $BACKUP_SAVE_PATH"
        else
		error_message="ERROR, 2) BACKUP_SAVE_PATH CHECK !!"
                ERROR
        fi
}
#########################################################################

STARTTIME=$(date)

#########################################################################
# MAIN SCRIPT
#########################################################################
echo "\n CHECK......"
TARGET_FILE_CHECK
BACKUP_SAVE_PATH_CHECK

echo "\n\n BACKUP START......"
#!!# cat $BACKUP_TARGET | grep 'FortiGate-60E' > $BACKUP_SAVE_FILENAME
cat $BACKUP_TARGET | grep 'ISOLATION_FW' > $BACKUP_SAVE_FILENAME
#########################################################################

ENDTIME=$(date)
echo ""
echo ""
echo "============================================="
echo "AXGATE40D FIREWALL LOG BACKUP COMPLETE !!"
echo "Start Time : $STARTTIME"
echo "End.. Time : $ENDTIME"
echo "============================================="

 

BACKUP_AXGATE40D_FIREWALL_LOG.sh
0.00MB

 

'TechNology' 카테고리의 다른 글

kt cldoud: SUMMIT - Digital Transformation  (0) 2024.06.19
Quantum mechanics(양자역학)  (0) 2024.05.06
Cryptography  (2) 2024.05.06
옴니채널(Omni-channel)  (1) 2023.08.16
컴퓨터 정보단위(bit, byte, KB, MB, GB, TB ...)  (0) 2023.06.18