방화벽 규칙
개요
방화벽 규칙은 가상 네트워크 단위로 설정합니다. 각 가상 네트워크의 상세 페이지에서 규칙을 추가·편집·삭제·재정렬하며, 규칙은 위에서 아래 순서로 평가되어 첫 번째로 일치하는 규칙이 적용됩니다. 변경 사항은 최대 1분 이내에 적용됩니다.
기본 동작은 '모두 허용'
아무 규칙도 설정 하지 않으면 모든 트래픽이 통과합니다. 따라서 외부 접근을 제한하고 싶다면 명시적으로 허용 규칙을 추가하고, 마지막에 포괄적인 차단(ALL 0.0.0.0/0 → 0.0.0.0/0 DROP) 규칙을 두는 패턴을 사용합니다.
사전 요건
- 가상 네트워크가 이미 생성되어 있어야 합니다 (가상 네트워크)
Resource.VirtualNetwork.UPDATE권한 (방화벽 규칙은 가상 네트워크의firewall_rules필드로 함께 업데이트)
규칙 구성 요소
| 요소 | 설명 | 예시 |
|---|---|---|
| 프로토콜 | 통신 프로토콜 | ALL / TCP / UDP / ICMP |
| 소스 | 트래픽 출발지 IPv4 또는 CIDR | 192.168.1.0/24, 0.0.0.0/0 |
| 대상 | 트래픽 목적지 IPv4 또는 CIDR | 10.0.0.0/8, 172.16.0.1 |
| 포트 / 종료 포트 | TCP·UDP일 때만 사용. 단일 포트 또는 범위 | 80 또는 1000–2000 |
| 액션 | 트래픽 처리 방식 | ACCEPT (허용) / DROP (차단) |
| 설명 | 규칙 메모 (최대 256자) | 웹 서버 접근 허용 |
포트 설정은 TCP/UDP에서만 가능
프로토콜이 ALL 또는 ICMP인 경우 포트 필드는 비활성화됩니다.
규칙 추가
- 네트워크 > 가상 네트워크 목록에서 대상 가상 네트워크를 클릭합니다.
- 상세 페이지의 방화벽 규칙 섹션으로 이동합니다.
- 규칙 추가 버튼을 클릭합니다 (규칙이 하나도 없으면 첫 번째 규칙 추가 버튼).
- 위의 구성 요소를 입력하고 저장합니다.
규칙 수정·삭제
각 규칙 행 우측의 ⋮ 메뉴에서:
- 수정: 필드를 변경한 뒤 저장
- 삭제: 확인 다이얼로그 후 즉시 제거
규칙 순서 변경
규칙은 위에서 아래로 평가되므로 순서가 매우 중요합니다.
- 순서 변경 버튼을 클릭합니다.
- 각 규칙 우측에 표시되는 ↑ / ↓ 버튼으로 위치를 조정합니다.
- 완료를 클릭해 저장합니다 (변경 취소는 취소).
자주 쓰는 규칙
| 용도 | 프로토콜 | 소스 | 대상 | 포트 | 액션 |
|---|---|---|---|---|---|
| SSH 외부 접속 (제한 권장) | TCP | <관리자-IP>/32 | <VM-CIDR> | 22 | ACCEPT |
| HTTP 공개 | TCP | 0.0.0.0/0 | <VM-CIDR> | 80 | ACCEPT |
| HTTPS 공개 | TCP | 0.0.0.0/0 | <VM-CIDR> | 443 | ACCEPT |
| Jupyter Notebook | TCP | <사무실-IP>/24 | <VM-CIDR> | 8888 | ACCEPT |
| 핑(진단용) | ICMP | <사무실-IP>/24 | <VM-CIDR> | — | ACCEPT |
| 명시적 차단(맨 마지막) | ALL | 0.0.0.0/0 | 0.0.0.0/0 | — | DROP |
SSH는 소스 IP를 좁혀 두세요
0.0.0.0/0로 22번 포트를 열면 무차별 대입 공격 대상이 됩니다. 본인·사무실 IP 또는 VPN 대역으로 제한하세요.
순서 배치 원칙
1. 구체적인 허용 규칙 (특정 IP·포트)
2. 일반적인 허용 규칙 (서브넷·표준 서비스 포트)
3. 구체적인 차단 규칙 (특정 위험 IP)
4. 포괄적 차단 규칙 (마지막)
예시 1: 웹 서버(10.0.0.100) 접근 제어
| 순서 | 프로토콜 | 소스 | 대상 | 포트 | 액션 | 설명 |
|---|---|---|---|---|---|---|
| 1 | TCP | 192.168.1.0/24 | 10.0.0.100 | 22 | ACCEPT | 내부망 SSH |
| 2 | TCP | 0.0.0.0/0 | 10.0.0.100 | 80 | ACCEPT | HTTP 공개 |
| 3 | TCP | 0.0.0.0/0 | 10.0.0.100 | 443 | ACCEPT | HTTPS 공개 |
| 4 | ALL | 0.0.0.0/0 | 10.0.0.100 | — | DROP | 나머지 차단 |
예시 2: DB 서버(10.0.0.200) — 웹 서버에서만 접근 허용
| 순서 | 프로토콜 | 소스 | 대상 | 포트 | 액션 | 설명 |
|---|---|---|---|---|---|---|
| 1 | TCP | 192.168.1.0/24 | 10.0.0.200 | 22 | ACCEPT | 관리용 SSH |
| 2 | TCP | 10.0.0.100 | 10.0.0.200 | 3306 | ACCEPT | 웹서버 → DB 연결 |
| 3 | ALL | 0.0.0.0/0 | 10.0.0.200 | — | DROP | 나머지 차단 |
예시 3: 개발 환경 — 개발팀 IP 대역에서만 접근 가능
| 순서 | 프로토콜 | 소스 | 대상 | 포트 | 액션 | 설명 |
|---|---|---|---|---|---|---|
| 1 | TCP | 203.0.113.0/24 | 10.0.1.0/24 | 22 | ACCEPT | 개발팀 SSH |
| 2 | TCP | 203.0.113.0/24 | 10.0.1.0/24 | 80-8080 | ACCEPT | 개발 웹 서비스 |
| 3 | ALL | 0.0.0.0/0 | 10.0.1.0/24 | — | DROP | 나머지 차단 |
자주 묻는 질문
규칙을 추가했는데 트래픽이 여전히 차단됩니다.
- 위쪽에 더 광범위한
DROP규칙이 있는지 확인하세요. 첫 번째로 일치하는 규칙만 적용됩니다. - 소스/대상 CIDR과 포트가 정확한지, 호스트 비트가 0인지 확인하세요(예:
192.168.1.100/24→192.168.1.0/24). - 변경 사항은 최대 1분 이내에 적용되므로 잠시 기다린 뒤 재시도합니다.
모든 트래픽이 차단되어 가상머신에 접근할 수 없어요.
가상 네트워크 페이지에서 임시로 ALL 0.0.0.0/0 → 0.0.0.0/0 ACCEPT 규칙을 맨 위에 추가해 우회 접근한 뒤, 올바른 규칙으로 정리하고 임시 규칙을 제거하세요.
포트 범위가 작동하지 않아요.
- 프로토콜이
TCP또는UDP여야 합니다(ALL/ICMP는 포트 미지원). - 시작 포트 ≤ 종료 포트, 1–65535 범위인지 확인합니다.
다음 단계
- 가상 네트워크: 가상 네트워크 생성·CIDR 설계
- 공인 IP: 외부 접속을 위해 IP를 가상머신에 할당
- 가상머신 접속 방법: SSH·웹 콘솔