네트워크인프라(업무)

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 연결 여부 확인 등)
  • 보안 이슈 발생 시 자동 알림 및 대응 스크립트
반응형