일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- telegraf influxdb
- Node Exporter 설치 및 연동
- telegraf esxi 모니터링
- piolink
- grafana esxi 모니터링
- prometheus grafana 연동
- grafana telegraf influxdb esxi 모니터링
- centos
- wazuh 취약점 점검
- https 자동전환
- http 리디렉션
- observium 설정
- wazuh 설치
- URL 재작성
- ubuntu 22.04+Prometheus+Grafana+Node Exporter
- IBM X3550 M4
- wazuh agent 설치
- wazuh 서버 설치
- grafana esxi monitoring
- Prometheus
- 특정 도메인 url rewrite
- grafana vcenter
- grafana esxio
- grafana vsphere
- MSCS
- iis url rewrite
- grafana
- FortiGate
- grafana esxi
- IIS https 무한루프
- Today
- Total
IDC 엔지니어의 기술 이야기
Fortigate 자동백업 스크립트 본문
Fortigate 관리하는 수량이 늘어나면서 자동백업 스크립트를 만들일이 생겼다.
구글신의 도움을 받아 리눅스에서 구현을 해보았다.
구축시스템 : CentOS 5.6
백업대상 : Forti OS 3.0 이후 모든 버젼
에러내역 : FortiOS 3.0 이하 버젼에서는 잘되다가 어느순간 안됨. Hang 비슷하게 걸림. 그래서 안함.
구축요약 :
1. "spawn" 및 "expect" 를 활용하여 Fortigate로 SSH 자동 로그인 쉘 생성
>> 단 spawn 및 expect 구문이 되지 않을수 있으니, 패키지 설치 유무 확인 및 설치
2, "expect" 구문을 활용하여 "tftp" 백업 구문 실행
>> 단 TFTP 서버가 미리 준비되어있어야 한다.
>> 여기서 tftp 백업을 받는 이유는 expect를 활용하여 단순히 show라는 명령어를 통한 config 수집시
한글이 깨져서 백업되는 불상사가 일어난다. 복원시 개고생이 눈이 훤희 보인다.
상세구축 사항
준비사항 : 리눅스 서버, 백업서버(TFTP) >> 1개의 서버로 구축하여도 무관하다
당연한 애기지만 Forti에서 SSH 접근 허용 및 리눅스 서버 IP가 Access IP로 등록되어야함.
1. 쉘스크립트 작성
test # vi /root/forti_backup.sh
#************Beginning of the SCRIPT************
#!/usr/bin/expect -f // expect 정의
#This Script is used for taking backup of Fortigate Units via FTP
# Fortigate Login Information
set FGTNAME "TESTFW" // 방화벽명을 기재. 대충 원하는대로. 나중에 백업파일명이 될것임
set FGTIP "1.1.1.1" // 방화벽 IP
set ADMIN_USER_NAME "test" // 방화벽 ID
set PASSWORD "testPW" // 방화벽 PW
#Type the backup folder after logging in via FTP. (If needed)
# set backupfolder "/YourBackUpFolder"
#Increase timeout. Because Fortigate Firewall's config files are too big
#set timeout 80000
# TFTP Login Information
set FTP_SERVER_IP "2.2.2.2" // TFTP 서버 IP
# set FTP_USER_NAME "test"
# set FTP_PASSWORD "test"
# Time info for timestamp to the config file
set TODAY [clock format [clock seconds] -format {%Y%m%d}]
set timeout 30
spawn ssh $ADMIN_USER_NAME@$FGTIP
expect {
"password:" {
send "$PASSWORD\r"
}
"(yes/no)? " {
send "yes\r"
expect "password:" {
send "$PASSWORD\r"
}
}
}
#Delete below commands if your Fortigate unit is not VDOM enabled
#expect "# "
#send "config global\r"
#Delete above commands if your Fortigate unit is not VDOM enabled
#Taking back up of the Fortigate Unit
expect {
"# " {
send "execute backup config tftp $FGTNAME-$TODAY.conf $FTP_SERVER_IP\r"
}
}
expect {
"# " {
send "exit\r"
}
}
expect EOF
#************End of the SCRIPT************
2. 리눅스 Cron 등록할 Shell 작성
test # vi /root/Forti/Fortigate_Backup.sh
#!/bin/bash
dat=`date +%F`
expect -f /root/forti_backup.sh >> /root/Forti/Backup_$dat.log; // 위에서 만든 스크립트를 추가 Shell 작성
3. Cron 등록
# Forti Backup Test
00 14 * * 5 root /root/Forti/Fortigate_Backup.sh
-끝-
'Firewall > Fortigate' 카테고리의 다른 글
Fortigate 패스워드 초기화 및 공장도 초기화 (0) | 2019.04.19 |
---|---|
Fortigate 이중화 (0) | 2019.02.27 |
Fortigate 60 SSL VPN(Forti OS 3.0) (0) | 2019.02.27 |
diagnose sys top 사용예제 (0) | 2019.02.22 |
Fortigate ipgeo, fqdn 적용내역 확인 (0) | 2019.02.20 |