PART 1. 사내 네트워크(DMZ vs 사설IP) 보안 검토 및 구축 방식 비교
전산담당자 보안 의견 반영 및 최적 대안 도출
🛡️ 전산담당자 보안 검토 의견 핵심 정리 (포트 개방 위험성 vs VPN의 한계)
- 방화벽 포트 개방(Port Forwarding)의 위험성: 기업전용회선 방화벽에서 특정 포트 1개만 외부에 열어도 해커의 자동화 봇(Bot)이 24시간 포트 스캐닝 및 취약점 공격을 시도하므로, 사내 NAS를 외부 포트와 직접 연결하는 것은 내부망 보안상 위험합니다.
- 사내 VPN 사용 시의 실무적 불편함: 포트를 닫고 방화벽 VPN을 쓰면 보안은 안전하지만, 임원/대표님이 해외출장 중 스마트폰으로 결재할 때마다 매번 VPN 앱을 먼저 켜고 인증해야 하는 번거로움이 크며, 특히 중국 등 일부 국가 출장 시 현지 통신망에서 회사 VPN 접속 자체가 차단되는 문제가 발생합니다.
- 최적의 해결책 (구글 클라우드 분리 운영): 전자결재 웹 시스템만 구글 클라우드(Google Firebase)에 올려 운영하면, 사내 방화벽 포트는 단 1개도 열지 않아(개방 포트 0개) 사내망/NAS 해킹 위험을 100% 차단하면서도 해외출장지 어디서나 VPN 없이 1초 만에 스마트폰 결재가 가능합니다.
| 비교 항목 |
① 사내 NAS (DMZ/포트개방) |
② 사내 NAS (사설IP + VPN 접속) |
③ 구글 클라우드 (Google Firebase) ⭐ 최종 선정 / 최우선 권장안 |
| 사내 방화벽 보안 |
❌ 취약 (열린 포트로 해킹 시도 집중) |
⭕ 안전 (인바운드 포트 개방 없음) |
⭕ 완벽 안전 (사내 방화벽 개방 포트 0개 / 사내망과 완전 분리) |
| 해외출장 모바일 결재 |
편함 (주소 바로 입력) |
❌ 불편 (매번 VPN 앱 로그인 필요, 중국 등 VPN 차단 우려) |
⭕ 최고 편리 (VPN 없이 전 세계 어디서나 스마트폰 1초 접속) |
| 사내 NAS 보호 |
위험 (NAS가 외부 공격에 노출) |
안전 (내부망 전용) |
⭕ 완벽 보호 (NAS는 순수 내부 사설IP 파일서버로만 안전 사용) |
| 초기 구축 및 유지비 |
방화벽 정책 설정 필요 |
직원별 VPN 클라이언트 배포 필요 |
⭕ 월 0원 (50인 미만 규모는 구글 무료 제공량 한도 내 운영) |
PART 2. 구글 클라우드 (Google Firebase) 기반 전자결재 구축 가이드 (최종 선정안)
사내 방화벽 무변경 · 해외출장 무제한 접속 · 월 비용 0원
👨💼 사내 직원 & ✈️ 해외출장자
• 사무실 PC (사설IP): 일반 웹브라우저로 즉시 접속
• 해외출장 스마트폰: VPN 없이 https://... 주소로 즉시 결재
☁️ Google Cloud (Firebase 보안 서버)
• Authentication: 허가된 BSK 임직원 계정만 로그인 허용
• Cloud Firestore: 17개 기안서 & 6단계 결재 실시간 동기화
• Hosting: 구글 글로벌 SSL(HTTPS) 보안 웹 서비스
🏢 회사 내부망 & 사내 NAS (완전 격리)
• 회사 방화벽: 외부 인바운드 포트 개방 0개
• 사내 NAS (사설IP): 내부 파일서버 및 주기적 결재 백업본 보관용으로만 안전 운용
Step 1 (5분)
구글 Firebase 콘솔에서
프로젝트 생성
Step 2 (5분)
실시간 DB(Firestore) 및
로그인 인증 활성화
Step 3 (즉시)
전자결재 화면에
클라우드 연동키 입력
Step 4 (완료)
임직원 데이터 업로드 및
전 세계 실시간 결재 시작
- 회사 관리용 구글 계정으로 Google Firebase 콘솔 (https://console.firebase.google.com)에 접속합니다.
- [프로젝트 만들기] 버튼을 클릭하고 프로젝트 이름(예: bsk-approval)을 입력하여 생성합니다.
- 프로젝트 홈 화면에서 웹 아이콘(</>)을 눌러 웹 앱을 등록하면 짧은 설정값(firebaseConfig)이 발급됩니다.
- 좌측 메뉴 [빌드] → [Firestore Database] → [데이터베이스 만들기]를 클릭합니다 (서울 리전 asia-northeast3 선택).
- 좌측 메뉴 [빌드] → [Authentication] → [시작하기]를 눌러 이메일/비밀번호(또는 Google 계정) 로그인을 활성화합니다.
- BSK 전자결재 화면 우측 상단의 [☁️ 구글 클라우드 연동] 버튼을 클릭합니다.
- Step 1에서 발급받은 firebaseConfig 설정값을 붙여넣고 [연동 저장 및 초기 데이터 업로드]를 누르면, 현재 PC에 등록해 둔 임직원 명단과 결재 문서가 즉시 구글 클라우드 DB로 업로드되며 실시간 동기화가 시작됩니다.
- 구글 Firebase Hosting에 index.html을 배포하면 전 세계 어디서나 접속 가능한 전용 보안 주소(예: https://bsk-approval.web.app)가 생성됩니다.
- 사내 NAS와의 완벽한 역할 분담: 사내 NAS는 안전한 사설IP(내부망)에 설치하여 사내 파일서버로 쓰시고, 월 1회 전자결재의 [💾 파일로 백업] 버튼을 눌러 백업 JSON 파일을 사내 NAS에 보관하시면 보안과 편의성을 모두 100% 달성할 수 있습니다.
PART 3. (참고) 사내 NAS 서버에 직접 구축할 경우의 6단계 시퀀스
사내 내부망 전용 또는 VPN 병행 운영 시 참고 매뉴얼
Sequence 1
NAS 환경 확인 및
Web Station 설치
Sequence 2
전자결재 파일을
NAS 서버용 변환
Sequence 3
NAS 공유 폴더에
파일 업로드
Sequence 4
사내 사설IP 포트
및 접속 주소 개통
Sequence 5
외부 접속 시
사내 VPN 연결
Sequence 6
NAS 자동 스냅샷
및 전 직원 배포
- NAS를 사내 사설IP 영역(예: 192.168.0.100)에 연결하고 패키지 센터에서 Web Station + PHP 8.x(또는 Node.js)를 설치합니다.
- NAS의 /web/approval/ 폴더에 index.html과 데이터 저장용 api.php, 그리고 백업해 둔 임직원 명단 JSON 파일을 업로드합니다.
📁 /web/approval/
├── 📄 index.html (BSK 전자결재 시스템 메인 화면)
├── 📄 api.php (NAS 내부 데이터 읽기/쓰기 연동 스크립트)
├── 📁 data/ (임직원 명단 users.json 및 결재문서 docs.json 저장 폴더)
└── 📁 uploads/ (기안서 첨부파일 저장 폴더)
- 사내 접속: 사무실 내 PC 및 사내 Wi-Fi 스마트폰에서는 http://[사내_NAS_사설IP]:8080 주소로 즉시 접속합니다.
- 외부/해외출장 접속 (전산담당자 권고안): 방화벽 포트는 열지 않고, 출장지에서 회사 방화벽 VPN에 먼저 연결한 뒤 사내 NAS IP 주소로 접속합니다.
- 자동 백업: NAS 자체 Snapshot / Hyper Backup 기능으로 /web/approval/data 폴더를 매일 밤 자동 백업합니다.