2025년 12월 13일

지난 포스트에 이어서 외부 접속을 위한 설정을 이어나가려고 한다. Oracle Cloud에서 VM Instance를 처음 설치하면 ssh 접근을 위한 22번 포트를 제외하고 모든 외부 접근을 차단하도록 설정되어 있다. 이를 해결하기 위해서 내부 파일의 수정이 필요하다.
rules.v4 수정하기
지난 포스트에서 설명했던 것 처럼 로컬PC에서 Powershell로 VM Instance에 접속한다.
ssh -i [ssh_key_place] [username]@[machine_ip]접속되었으면 다음과 같은 명령어를 입력하고, 파일에 접근한다.
sudo nano /etc/iptables/rules.v4
파일 중간에 아래와 같은 내용이 두 줄로 있을 것이다. 이 내용을 삭제한다. ```
-A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited
> 이 두 줄의 의미:
INPUT: 🔒 22번 SSH 제외하고 모든 외부 접근을 전부 차단
FORWARD: 🔒 모든 포트 포워딩/NAT 트래픽을 전부 차단
키보드로 커서를 이동해서 삭제하면 되고, 내용을 삭제 한뒤, Ctrl + X → Y → Enter를 입력해서 저장하고 나온다.
파일 수정을 완료했으면, Oracle Cloud의 Instance 섹션으로 가서 해당 인스턴스의 우측 끝 점 세개를 눌러 Reboot를 진행한다.
<img src="https://velog.velcdn.com/images/usfree/post/1b840682-ff3a-4642-afa8-f4f68e85ee9d/image.png" alt="">
<hr/>
Security rules Setting
<blockquote>
앞에서 VM Instance OS 내부에서 접근을 거부하도록 설정돼있는 것을 수정했다. 아래에서는 실질적으로 포워딩하고 싶은 포트를 설정하는 것이다.
</blockquote>
Virtual Cloud Networks(이하 VCN)에서 사용 중인 VCN의 Detail로 접근한다. 그 뒤, Security 탭으로 이동한다.
<img src="https://velog.velcdn.com/images/usfree/post/f8b61814-0444-409b-b3d6-ad984b51ea36/image.png" alt="">
Default로 바인딩된 Security List가 존재한다. 해당 리스트를 누르고 Security rules 탭으로 이동한다.
<img src="https://velog.velcdn.com/images/usfree/post/903ab017-7f67-4301-892a-35f47649ea08/image.png" alt="">
Ingress Rules에 있는 포트들을 통해 외부에서 VM Instance에 열려있는 서버로 접근할 수 있는 것이다.
<blockquote>
가령 UDP 8585 포트를 열고 싶으면 아래와 같이 설정하면 된다.
Add Ingress Rules 클릭
Source CIDR을 0.0.0.0/0 (모든 경로에서 들어오는 접속을 허용한다는 의미)으로 설정 , IP Protocol을 열고 싶은 프로토콜로 설정, Destination Port Range에 열고 싶은 포트를 기입한다.
<img src="https://velog.velcdn.com/images/usfree/post/e5edac54-4337-43be-a96e-18d120c2a904/image.png" alt="">
</blockquote>
이 설정을 통해 VM Instance에서 UDP 8585를 Listen중이라면 외부에서 UDP 8585 포트로 접속할 수 있다.
만약 이 설정을 통해서도 외부 접근이 불가능하다면 VM Instance를 확인해야 한다. Compute의 해당 VM Instance의 Detail에 접근하여, Networking 탭의 Network security groups (이하 NSG)가 바인딩 되어있다면 여기서 동일하게 포트를 오픈해야한다. 불필요하다면 제거할 수도 있다.
<img src="https://velog.velcdn.com/images/usfree/post/a1e18fe7-44bf-4c1a-aa17-26c774e72e31/image.png" alt="">
<blockquote>
NSG (Network Security Group)
↓
Security List (Subnet)
↓
인스턴스 내부 방화벽
이 순서대로 트래픽 우선순위가 정해지는데, NSG에서 막히면 위에서 설정한 Security List는 의미가 없기 때문이다.
</blockquote>
<hr/>
일련의 과정을 통해 외부에서 특정 포트로 접근하는 방법을 알아보았다. 앞선 Security Rules를 통해 원하는 프로토콜과 포트를 오픈할 수 있으니 서비스에 필요한 포트를 오픈해서 사용하면 되겠다.