본문으로 건너뛰기

방화벽 규칙

개요

방화벽 규칙은 가상 네트워크 단위로 설정합니다. 각 가상 네트워크의 상세 페이지에서 규칙을 추가·편집·삭제·재정렬하며, 규칙은 위에서 아래 순서로 평가되어 첫 번째로 일치하는 규칙이 적용됩니다. 변경 사항은 최대 1분 이내에 적용됩니다.

규칙에 일치하지 않는 트래픽은 '허용'

어느 규칙에도 일치하지 않는 트래픽은 통과합니다(암묵적 허용). 아무 규칙도 없는 가상 네트워크는 모든 포트가 인터넷에 열려 있는 상태이므로, 아래의 기본 방화벽 규칙 패턴처럼 마지막에 인바운드 차단 규칙(ALL 0.0.0.0/0 → <가상네트워크-CIDR> DROP)을 두는 것을 권장합니다.

차단 규칙의 대상0.0.0.0/0으로 설정하면 가상머신에서 인터넷으로 나가는 트래픽(패키지 설치, 외부 API 호출 등)까지 차단되므로, 대상은 가상 네트워크 CIDR로 한정하세요.

사전 요건
  • 가상 네트워크가 이미 생성되어 있어야 합니다 (가상 네트워크)
  • Resource.VirtualNetwork.UPDATE 권한 (방화벽 규칙은 가상 네트워크의 firewall_rules 필드로 함께 업데이트)

기본 방화벽 규칙

포털에서 가상 네트워크를 생성하면 아래 기본 방화벽 규칙 2개가 자동으로 적용됩니다.

순서프로토콜소스대상포트액션설명
1TCP0.0.0.0/0<가상네트워크-CIDR>22ACCEPTdefault-accept-ssh
2ALL0.0.0.0/0<가상네트워크-CIDR>DROPdefault-drop-all
  • SSH 접속은 허용, 그 외 인바운드는 차단: 생성 직후 SSH(TCP 22)로 바로 접속할 수 있고, 나머지 외부 유입 트래픽은 모두 차단됩니다.
  • 아웃바운드는 영향 없음: 차단 규칙의 대상이 가상 네트워크 내부 CIDR로 한정되어 있어, 가상머신에서 인터넷으로 나가는 트래픽(apt, pip, 외부 API 호출 등)은 그대로 허용됩니다.
  • 가상 네트워크 내부 통신은 영향 없음: 방화벽은 가상 네트워크 경계에서만 동작하며, 같은 가상 네트워크 안의 가상머신 간 통신은 규칙과 무관하게 허용됩니다.
  • 기본 규칙은 일반 규칙과 동일하게 수정·삭제·재정렬할 수 있습니다. 예를 들어 SSH 허용 규칙의 소스를 사무실 IP 대역으로 좁히는 것을 권장합니다.
기본 규칙이 없는 가상 네트워크

CLI·API로 직접 생성한 가상 네트워크에는 기본 규칙이 적용되지 않습니다. 이 경우 모든 인바운드가 열려 있으므로 위 표와 같은 규칙을 직접 추가하는 것을 권장합니다.


규칙 구성 요소

요소설명예시
프로토콜통신 프로토콜ALL / TCP / UDP / ICMP
소스트래픽 출발지 IPv4 또는 CIDR192.168.1.0/24, 0.0.0.0/0
대상트래픽 목적지 IPv4 또는 CIDR10.0.0.0/8, 172.16.0.1
포트 / 종료 포트TCP·UDP일 때만 사용. 단일 포트 또는 범위80 또는 10002000
액션트래픽 처리 방식ACCEPT (허용) / DROP (차단)
설명규칙 메모 (최대 256자)웹 서버 접근 허용
포트 설정은 TCP/UDP에서만 가능

프로토콜이 ALL 또는 ICMP인 경우 포트 필드는 비활성화됩니다.


규칙 추가

  1. 네트워크 > 가상 네트워크 목록에서 대상 가상 네트워크를 클릭합니다.
  2. 상세 페이지의 방화벽 규칙 섹션으로 이동합니다.
  3. 규칙 추가 버튼을 클릭합니다 (규칙이 하나도 없으면 첫 번째 규칙 추가 버튼).
  4. 위의 구성 요소를 입력하고 저장합니다.
새 규칙의 위치

목록 맨 아래에 포괄 차단 규칙(프로토콜 ALL + 액션 DROP, 예: 기본 규칙의 default-drop-all)이 있으면, 새 규칙은 그 바로 위에 추가됩니다. 차단 규칙 아래에 놓여 아무 트래픽도 매칭하지 못하는 상황을 방지하기 위함입니다.


규칙 수정·삭제

각 규칙 행 우측의 메뉴에서:

  • 수정: 필드를 변경한 뒤 저장
  • 삭제: 확인 다이얼로그 후 즉시 제거

규칙 순서 변경

규칙은 위에서 아래로 평가되므로 순서가 매우 중요합니다.

  1. 순서 변경 버튼을 클릭합니다.
  2. 각 규칙 우측에 표시되는 ↑ / ↓ 버튼으로 위치를 조정합니다.
  3. 완료를 클릭해 저장합니다 (변경 취소는 취소).

자주 쓰는 규칙

용도프로토콜소스대상포트액션
SSH 외부 접속 (제한 권장)TCP<관리자-IP>/32<VM-CIDR>22ACCEPT
HTTP 공개TCP0.0.0.0/0<VM-CIDR>80ACCEPT
HTTPS 공개TCP0.0.0.0/0<VM-CIDR>443ACCEPT
Jupyter NotebookTCP<사무실-IP>/24<VM-CIDR>8888ACCEPT
핑(진단용)ICMP<사무실-IP>/24<VM-CIDR>ACCEPT
인바운드 차단(맨 마지막)ALL0.0.0.0/0<가상네트워크-CIDR>DROP
SSH는 소스 IP를 좁혀 두세요

0.0.0.0/0로 22번 포트를 열면 무차별 대입 공격 대상이 됩니다. 본인·사무실 IP 또는 VPN 대역으로 제한하세요.

차단 규칙의 대상을 0.0.0.0/0으로 두지 마세요

ALL 0.0.0.0/0 → 0.0.0.0/0 DROP은 가상머신에서 인터넷으로 나가는 트래픽까지 차단해 패키지 설치(apt, pip)와 외부 API 호출이 전부 막힙니다. 인바운드만 차단하려면 대상을 가상 네트워크 CIDR로 한정하세요.


SSH 노출 경고

인터넷 전체에서 가상 네트워크 내부의 SSH(TCP 22)로 들어올 수 있게 허용하는 규칙에는 규칙 목록에 **경고 아이콘(⚠)**이 표시됩니다. 아이콘에 마우스를 올리면 안내 문구를 확인할 수 있습니다.

경고가 표시되는 규칙:

  • 액션이 ACCEPT이고, 소스가 0.0.0.0/0이며,
  • 프로토콜이 TCP 또는 ALL이고, 포트 범위에 22가 포함되며(포트 미지정·ALL은 전 포트로 간주),
  • 대상이 가상 네트워크 내부를 향하는 경우 (대상이 외부 주소뿐인 규칙은 제외)

기본 방화벽 규칙의 SSH 허용 규칙도 여기에 해당해 생성 직후부터 경고가 표시됩니다. 접속 편의를 위한 의도된 기본값이지만, 소스를 특정 IP 대역으로 제한하면 경고가 사라지고 보안도 강화됩니다. 경고는 안내일 뿐 규칙 저장을 막지는 않습니다.

가상머신 상세 페이지에서도 확인: 가상머신 상세의 네트워크 탭 > 방화벽 설정 항목에 같은 경고가 표시됩니다.

  • 가상 네트워크의 규칙 중 SSH 노출 규칙이 있으면 ⚠와 함께 안내 문구 표시
  • 방화벽 규칙이 하나도 없으면 (모든 인바운드가 열린 상태) ⚠와 함께 규칙 설정 권장 문구 표시

순서 배치 원칙

1. 구체적인 허용 규칙 (특정 IP·포트)
2. 일반적인 허용 규칙 (서브넷·표준 서비스 포트)
3. 구체적인 차단 규칙 (특정 위험 IP)
4. 포괄적 차단 규칙 (마지막)

예시 1: 웹 서버(10.0.0.100) 접근 제어

순서프로토콜소스대상포트액션설명
1TCP192.168.1.0/2410.0.0.10022ACCEPT내부망 SSH
2TCP0.0.0.0/010.0.0.10080ACCEPTHTTP 공개
3TCP0.0.0.0/010.0.0.100443ACCEPTHTTPS 공개
4ALL0.0.0.0/010.0.0.100DROP나머지 차단

예시 2: DB 서버(10.0.0.200) — 웹 서버에서만 접근 허용

순서프로토콜소스대상포트액션설명
1TCP192.168.1.0/2410.0.0.20022ACCEPT관리용 SSH
2TCP10.0.0.10010.0.0.2003306ACCEPT웹서버 → DB 연결
3ALL0.0.0.0/010.0.0.200DROP나머지 차단

예시 3: 개발 환경 — 개발팀 IP 대역에서만 접근 가능

순서프로토콜소스대상포트액션설명
1TCP203.0.113.0/2410.0.1.0/2422ACCEPT개발팀 SSH
2TCP203.0.113.0/2410.0.1.0/2480-8080ACCEPT개발 웹 서비스
3ALL0.0.0.0/010.0.1.0/24DROP나머지 차단

자주 묻는 질문

규칙을 추가했는데 트래픽이 여전히 차단됩니다.

  • 위쪽에 더 광범위한 DROP 규칙이 있는지 확인하세요. 첫 번째로 일치하는 규칙만 적용됩니다.
  • 소스/대상 CIDR과 포트가 정확한지, 호스트 비트가 0인지 확인하세요(예: 192.168.1.100/24192.168.1.0/24).
  • 변경 사항은 최대 1분 이내에 적용되므로 잠시 기다린 뒤 재시도합니다.

모든 트래픽이 차단되어 가상머신에 접근할 수 없어요.

  • 웹 콘솔은 방화벽과 무관하게 항상 접속 가능합니다. 가상머신 상세 페이지의 웹 콘솔로 접속해 상태를 확인하세요.
  • 외부 접속을 복구하려면 가상 네트워크 페이지에서 임시로 ALL 0.0.0.0/0 → <가상네트워크-CIDR> ACCEPT 규칙을 맨 위에 추가해 우회 접근한 뒤, 올바른 규칙으로 정리하고 임시 규칙을 제거하세요.

기본 방화벽 규칙을 삭제하거나 수정해도 되나요?

네. 기본 규칙(default-accept-ssh, default-drop-all)은 일반 규칙과 동일하게 취급되므로 자유롭게 수정·삭제할 수 있습니다. 다만 default-drop-all을 삭제하면 규칙에 일치하지 않는 모든 인바운드가 허용 상태로 돌아가므로 주의하세요.

포트 범위가 작동하지 않아요.

  • 프로토콜이 TCP 또는 UDP여야 합니다(ALL/ICMP는 포트 미지원).
  • 시작 포트 ≤ 종료 포트, 1–65535 범위인지 확인합니다.

다음 단계