안녕하세요. 미뇽입니다.
클라우드 서버를 처음 운영하다 보면 분명히 모든 설정을 마친 것 같은데 서비스가 외부에서 접속되지 않아 당황스러웠던 경험, 다들 한 번쯤 있으실 겁니다. 저 역시 중요한 서비스를 배포하고 나서 정작 외부에서 접근이 안 돼 식은땀을 흘렸던 기억이 있는데요. 대부분의 경우 원인은 바로 ‘방화벽 설정’, 특히 ‘수신 규칙’ 누락이었습니다. 그래서 오늘은 오라클 클라우드(Oracle Cloud Infrastructure, OCI) 환경에서 외부 접속을 위해 필수적인 수신 규칙(Ingress Rule)을 추가하는 방법에 대해 자세히 알아보고자 합니다. 이 글을 통해 클라우드 보안의 첫걸음을 떼시는 분들께 실질적인 도움이 되기를 바랍니다.
수신 규칙이란 무엇이고 왜 중요할까요?
우리가 집 현관문에 도어락을 설치해 허가된 사람만 출입하도록 하는 것처럼, 클라우드 서버에도 ‘가상 방화벽’ 이 존재합니다. 이 가상 방화벽은 서버로 들어오고 나가는 모든 네트워크 트래픽을 제어하는데, 이때 ‘수신 규칙’은 특정 IP 주소나 포트를 통해 서버로 ‘들어오는’ 트래픽을 허용하는 정책을 의미합니다.
예를 들어, 웹 서버를 운영한다면 전 세계 누구나 웹사이트에 접속할 수 있도록 HTTP(80번 포트)나 HTTPS(443번 포트) 트래픽을 허용해야 합니다. 만약 원격에서 서버에 접속해 관리 작업을 해야 한다면 SSH(22번 포트) 트래픽을 특정 IP 주소(예: 사무실 고정 IP)에 대해서만 허용해야 보안을 강화할 수 있습니다. 이처럼 수신 규칙을 어떻게 설정하느냐에 따라 서비스의 정상적인 동작 여부와 보안 수준이 결정되기 때문에 매우 중요합니다.
오라클 클라우드에서 수신 규칙 추가하기
오라클 클라우드에서는 주로 보안 목록(Security List) 또는 네트워크 보안 그룹(Network Security Group, NSG)을 통해 수신 규칙을 관리합니다. 보안 목록은 서브넷 전체에 적용되는 반면, NSG는 개별 VNIC(가상 네트워크 인터페이스 카드) 수준에서 보다 세밀한 제어가 가능합니다. 여기서는 가장 일반적으로 사용되는 보안 목록을 기준으로 설명드리겠습니다.
OCI 콘솔 접속 및 VCN 선택:
먼저 오라클 클라우드 콘솔(cloud.oracle.com)에 로그인합니다.

좌측 상단의 햄버거 메뉴를 클릭한 후, ‘네트워킹(Networking)’ 섹션에서 ‘가상 클라우드 네트워크(Virtual Cloud Networks, VCNs)’를 선택합니다.

수신 규칙을 추가하고자 하는 인스턴스가 속한 VCN을 목록에서 찾아 클릭합니다.
보안 목록(Security List) 접근:
VCN 세부 정보 페이지의 ‘Security’ 메뉴에서 ‘Security Lists’를 확인합니다.

일반적으로 VCN 생성 시 기본 보안 목록(Default Security List for [VCN 이름])이 생성되어 있습니다. 이 목록을 사용하거나, 필요에 따라 새로 생성한 보안 목록을 선택합니다. 저는 보통 서비스 용도별로 보안 목록을 분리하여 관리하는 편입니다. 예를 들어, 웹 서버용, 데이터베이스용 등으로 나누면 관리가 용이합니다.
수신 규칙 추가:
선택한 보안 목록의 세부 정보 페이지에서 ‘수신 규칙(Ingress Rules)’ 탭을 선택하고, 파란색 ‘+ 다른 수신 규칙 추가(Add Ingress Rules)’ 버튼을 클릭합니다.

이제 규칙의 세부 정보를 입력하는 화면이 나타납니다. 각 항목의 의미는 다음과 같습니다.

- 상태 없음(Stateless): 기본적으로 체크 해제된 상태(Stateful)로 둡니다. Stateful 규칙은 연결 추적을 통해 응답 트래픽을 자동으로 허용하므로 대부분의 경우 더 편리합니다. Stateless 규칙은 들어오고 나가는 트래픽 각각에 대해 명시적으로 규칙을 정의해야 합니다.
- 소스 유형(Source Type): 트래픽이 시작되는 위치를 지정합니다. 일반적으로 ‘CIDR’을 선택합니다. ‘서비스(Service)’는 Oracle 서비스에 대한 접근을 의미합니다.
- 소스 CIDR(Source CIDR): 트래픽을 허용할 IP 주소 범위를 입력합니다.
0.0.0.0/0
: 모든 IP 주소로부터의 접근을 허용합니다. 웹 서버의 HTTP/HTTPS 포트처럼 공개적으로 접근해야 하는 경우 사용합니다. 하지만 보안상 필요한 포트에만 최소한으로 사용해야 합니다.특정 IP 주소/32
(예:1.234.56.78/32
): 단일 IP 주소로부터의 접근만 허용합니다. SSH 접속 등 관리 목적의 포트에 특정 IP(예: 집이나 사무실 IP)를 지정하면 보안을 크게 강화할 수 있습니다.특정 대역 IP 주소/넷마스크
(예:192.168.1.0/24
): 특정 네트워크 대역의 IP 주소로부터의 접근을 허용합니다.
- IP 프로토콜(IP Protocol): 허용할 프로토콜을 선택합니다.
- TCP: HTTP(S), SSH, FTP, 데이터베이스 연결 등 대부분의 애플리케이션에서 사용됩니다.
- UDP: DNS, 일부 온라인 게임, 스트리밍 서비스 등에서 사용됩니다.
- ICMP: Ping과 같은 네트워크 진단 도구에서 사용됩니다.
- 모두(All Protocols): 모든 프로토콜을 허용하지만, 보안상 권장되지 않습니다.
- 소스 포트 범위(Source Port Range): 보통 ‘모두(All)’로 둡니다. 클라이언트가 사용하는 출발지 포트는 동적으로 할당되기 때문입니다.
- 대상 포트 범위(Destination Port Range): 서버에서 리스닝하고 있는 서비스의 포트 번호를 입력합니다.
80
: HTTP (웹 서버)443
: HTTPS (보안 웹 서버)22
: SSH (원격 접속)3306
: MySQL 데이터베이스1521
: Oracle 데이터베이스
- 설명(Description): 이 규칙이 어떤 목적으로 추가되었는지 알기 쉽게 설명을 작성합니다. (예: “웹 서버용 HTTP/HTTPS 허용”, “관리자 SSH 접속 허용”) 나중에 규칙을 검토하거나 수정할 때 매우 유용하므로 반드시 구체적으로 작성하는 습관을 들이는 것이 좋습니다.
모든 정보를 입력했으면 하단의 ‘수신 규칙 추가(Add Ingress Rules)’ 버튼을 클릭하여 규칙을 저장합니다. 규칙은 즉시 적용됩니다.
중요 고려사항 및 팁
- 최소 권한의 원칙(Principle of Least Privilege): 반드시 필요한 포트만, 필요한 소스 IP에 대해서만 허용하는 것이 보안의 기본입니다.
0.0.0.0/0
(모든 IP) 허용은 신중하게 사용해야 하며, 특히 SSH와 같은 관리용 포트는 특정 IP 주소로 제한하는 것이 매우 중요합니다. - 규칙의 순서: 보안 목록 내 규칙은 순서에 영향을 받지 않고, 허용(Allow) 규칙만 존재합니다. 따라서 충돌을 걱정할 필요는 없습니다.
- 테스트 및 검증: 규칙을 추가한 후에는 반드시 실제로 해당 포트로 접속하여 규칙이 올바르게 작동하는지 확인해야 합니다.
telnet [서버 IP] [포트]
(Windows의 경우 telnet 클라이언트 기능 활성화 필요) 또는nc -zv [서버 IP] [포트]
(Linux/macOS) 명령어를 사용하면 특정 포트의 연결 상태를 간단히 확인할 수 있습니다. - 정기적인 검토: 사용하지 않는 규칙은 보안 위협이 될 수 있으므로, 정기적으로 보안 규칙을 검토하고 불필요한 규칙은 삭제하는 것이 좋습니다.
저의 경우, 초기에 모든 IP에 대해 SSH 포트를 열어두었다가 해외 IP로부터 무작위 대입 공격(Brute-force attack) 시도를 경험한 적이 있습니다. 다행히 비밀번호를 복잡하게 설정해두어 실제 침입은 없었지만, 그 이후로는 반드시 특정 IP(주로 사무실이나 집 IP)에서만 SSH 접속이 가능하도록 설정하고 있습니다. 작은 습관 하나가 서버 보안을 크게 좌우할 수 있다는 것을 깨달은 경험이었습니다.
마무리
오늘은 오라클 클라우드에서 수신 규칙을 추가하는 방법에 대해 알아보았습니다. 클라우드 환경에서는 이러한 네트워크 보안 설정이 서비스 안정성과 직결되므로, 꼼꼼하게 관리하는 습관이 중요합니다. 처음에는 다소 복잡하게 느껴질 수 있지만, 몇 번 직접 설정해보시면 금방 익숙해지실 겁니다.
혹시 오라클 클라우드나 다른 클라우드 플랫폼에서 방화벽 설정을 하시면서 특별히 신경 쓰시는 부분이나 공유하고 싶은 팁이 있으신가요? 댓글로 의견을 남겨주시면 다른 분들께도 큰 도움이 될 것 같습니다.
읽어주셔서 감사합니다. 🙂