네트워크인프라(업무)
Fortigate REST API
코레이다
2025. 3. 25. 14:59
반응형
1️⃣ 배경과 목적: 왜 REST API인가?
- 실무에서 자동화, 운영 효율화, 보안 통합을 위해 REST API를 일상적으로 활용합니다.
- 단순한 API 호출을 넘어, 어떻게 실무에서 API를 안전하게 설계하고, 문제를 해결하며, 자동화에 적용하는지 확인합니다.
- 사용 장비는 Fortinet의 Fortigate 방화벽, 실습 도구는 Postman, Linux CLI, Python 등.
2️⃣ 실수에서 배우는 보안 인프라의 위험
⚠️ 실제 사건: NAS 데이터 완전 삭제
- 운영 중이던 NAS 장비에서 KY Trainings 전체 폴더를 실수로 삭제.
- 문제는 자동 동기화 구조:
> Windows에서 삭제 → NAS 1에 동기화 → NAS 2에도 삭제 → 모든 백업 소멸 - 실수에서의 교훈:
> 실시간 동기화는 편리하지만, 재해복구(Disaster Recovery)를 위한 별도 오프라인 백업 구조가 필수
> API나 자동화 구조는 항상 실패 시나리오를 고려해야 함
3️⃣ REST API란? 개념과 실제 적용
이론 정리
- REST (Representational State Transfer)
- 자원을 주소(URI)로 표현하고, HTTP 메서드(GET, POST, PUT, DELETE 등)로 접근하는 설계 방식
- API (Application Programming Interface)
- 서로 다른 소프트웨어 간 통신 인터페이스
실무 포인트
- Fortigate 장비와 같은 보안 솔루션은 GUI 말고도 API를 통한 설정 변경이 가능
- API를 통해 장비 상태 모니터링, 정책 확인, VPN 터널 제어, 사용자 목록 조회 등이 가능함
4️⃣ Fortigate에서 REST API 사용 준비
📌 API 사용자 설정
- 관리자 → Admin Profiles → 제한 권한 프로필 생성 (API Read, API Read Write)
- 사용자 → API 전용 사용자 생성, Trusted Host 설정 (10.35.0.0/24)
→ 이 설정 없으면 외부에서 접근 불가 (기본 보안 설정)
🔑 API Key 생성
- 사용자 생성 시 발급되는 API Key는 단 한 번만 확인 가능
- 보안을 위해 노트에 기록하되, 키를 노출하는 방식은 절대 금지
5️⃣ 실습 1: Postman을 통한 API 호출
🚀 GET 요청 (데이터 조회)
목적URL Path설명
방화벽 정책 목록 조회 | /api/v2/monitor/firewall/policy | 현재 설정된 정책 리스트 반환 |
VPN 터널 상태 조회 | /api/v2/monitor/vpn/ipsec | 연결된 터널 정보 및 상태 반환 |
장비 상태 확인 | /api/v2/monitor/system/resource | CPU, 메모리 사용률 등 리소스 모니터링 |
🔧 Authorization 설정
- Type: Bearer Token
- Token: 발급받은 API Key를 삽입
6️⃣ 실습 2: Fortigate 장비 원격 재시작 (API를 이용한 POST)
- 목표: Fortigate 장비를 API 호출로 재시작
- 시도한 경로: /api/v2/monitor/system/dashboard/reboot
- 초반 실패 원인:
- HTTP Method 오용 (GET → POST)
- cmdb 경로 실수
- 시스템 접근 권한 부족 (Read Only → Read/Write 변경 필요)
- CSRF 설정 문제 등
✅ 해결책: ChatGPT를 통해 최신 문서 기반 POST 경로 확인 → 성공적으로 재시작 완료
→ 실무에서 문서가 오래되어 있을 경우, 최신 자료 확인 및 검색력이 중요
7️⃣ 실습 3: Linux 및 Python에서 API 호출 자동화
- Verify=False: 인증서 검증 우회
- 실무 적용 시에는 .env 파일 또는 환경변수로 API Key 분리 권장
8️⃣ 다양한 인증 방식 비교
✅ 인증 방식 선택 시 주의:
- 민감 시스템 = Token 기반 필수
- 인증 실패 시 토큰 갱신 필요 (Refresh Token 등 고려)
9️⃣ 실무에서 REST API 활용 팁
🔒 보안적으로 주의할 점
- API Key 유출 방지: 코드 내 직접 기입 금지, 환경변수 혹은 암호화된 저장소 사용
- 권한 최소화: Read/Write 범위 제한된 사용자 설정
- 네트워크 제한: Trusted Host 설정으로 IP 필터링
- 로깅/모니터링: API 호출 기록 모니터링 필요
🧩 활용 사례
- 자동화된 정책 배포 스크립트
- 모니터링 시스템 연동 (VPN 연결 여부 확인 등)
- 보안 이슈 발생 시 자동 알림 및 대응 스크립트
반응형