
GitHub: https://github.com/smilestory-net/fortigate_policy_to_excel
FortiGate 방화벽 정책을 XLSX 스프레드시트로 내보내 주는 간단한 Python 기반 도구를 공유해본다.
FortiGate 방화벽 정책을 좀 더 유용하고 가독성 있게 검토하고 문서화하고 싶어서, 개인적으로 쓰려고 직접 만들게 되었다.
FortiGate/FortiManager 7.4 버전부터는 스프레드시트 내보내기 기능이 기본으로 제공된다. 하지만 쓰면서 한 가지 불편했던 점은, 내보낸 스프레드시트에 실제 IP 주소나 서비스 포트 대신 주소 및 서비스 객체 이름(Object Name)이 그대로 나온다는 거였다.
예를 들어, 이렇게 나오는 대신:
– 출발지(Source): HQ_Network
– 목적지(Destination): Web_Server
– 서비스(Service): HTTPS
스프레드시트에서 그 객체들의 실제 정보를 바로 확인하고 싶었다.
– 출발지(Source): 10.10.10.0/24
– 목적지(Destination): 192.168.10.50
– 서비스(Service): TCP/443
그래서 주소랑 서비스 객체를 실제 값으로 싹 변환해서, 실제 IP/네트워크랑 프로토콜/포트 정보가 담긴 방화벽 정책을 내보내 주는 툴을 직접 만들었다.
주요 기능
– FortiGate 방화벽 정책을 XLSX 파일로 내보내기
– 주소 객체를 실제 IP 주소/서브넷으로 자동 변환
– 서비스 객체를 실제 프로토콜/포트로 자동 변환
– 방화벽 정책 검토 및 문서화 작업 간소화
– Linux/macOS 사용자는 Python 스크립트를 직접 실행 가능
– FortiGate 설정 파일을 수정하거나 건드릴 필요 없음
– 설정 파일을 넣어주기만 하면 툴이 알아서 처리
– 다중 VDOM(Virtual Domain) 지원
– 여러 VDOM이 있으면 각 VDOM별로 XLSX 파일이 알아서 각각 생성됨
요즘엔 누구나 AI한테 시키면 이런 Python 스크립트 정도는 뚝딱 만들 수 있다는 걸 잘 알고 있다.
그래도 직접 스크립트 짜고, 디버깅하고, 패키징까지 하는 과정에 시간 쏟기 귀찮은 사람들에게 유용할 것 같아서 공유해 본다.
원래는 나 혼자 쓰려고 만든 거지만, 다른 FortiGate 관리자 또는 엔지니어 분들에게도 도움이 되었으면 좋겠다.
