홈서버 casaOS 관리하기 / 포트오픈 하지않고 서버 운영하기 - cloudflared

 

안녕하세요. 달소입니다.

 

이번 글에서는 외부로 포트가 오픈이 불가능한 상태에서 CasaOS를 비롯한 다른 서비스들을 운영하는방법입니다.

 

기본적으로 홈서버를 운영할때는 포트포워딩을 통해서 내부서버에 트래픽을 연계해서 연결하는방식을 주로 사용하는데요.

(반대로 외부에 집 공인 IP를 노출하기 싫을때)

 

통신사의 환경이나 공유 네트워크를 사용하는 환경에서는 이러한 포트포워딩이 불가능하고 그런경우에 외부에서 접속할 방법이 막막해집니다. 

하지만 언제나,, 방법은 있죠? 바로 Cloudflare에서 제공해주는 Tunnel을 이용해서 진행하는것입니다.

 

터널을 이용해서 내부서버에서 클라우드플레어와 네트워크 구간을 연결해서 외부사용자가 요청이 왔을때 내부 서버로 통신을 연계해주는방식입니다.

 

이왕 진행하는거 좀더 깊이 알아봅시다 ㅎㅎ

Cloudflare 터널이란?

Cloudflare Tunnel은 공개적으로 라우팅 가능한 IP 주소 없이 리소스를 Cloudflare에 연결하는 안전한 방법을 제공합니다. Tunnel을 사용하면 트래픽을 외부 IP로 보내지 않습니다. 대신 인프라의 경량 데몬( cloudflared)이 Cloudflare의 글로벌 네트워크에 대한 아웃바운드 전용 연결을 생성합니다. Cloudflare Tunnel은 HTTP 웹 서버, SSH 서버 , 원격 데스크톱 및 기타 프로토콜을 Cloudflare에 안전하게 연결할 수 있습니다 . 이렇게 하면 원본이 Cloudflare를 우회하는 공격에 취약하지 않고 Cloudflare를 통해 트래픽을 제공할 수 있습니다.

작동 원리

Cloudflared는 리소스와 Cloudflare의 글로벌 네트워크 간에 아웃바운드 연결(터널)을 설정합니다. 터널은 트래픽을 DNS 레코드로 라우팅하는 영구 개체입니다. 동일한 터널 내에서 cloudflared필요한 만큼 많은 프로세스(커넥터)를 실행할 수 있습니다. 이러한 프로세스는 Cloudflare에 대한 연결을 설정하고 가장 가까운 Cloudflare 데이터 센터로 트래픽을 보냅니다.

 

image.png.jpg

 

준비물은 당연히(?) cloudflare로 관리되는 도메인입니다.

 

터널 생성하기

클플 대시보드에 로그인하고
제로트러스트 -> Networks -> Tunnels로 이동합니다.

image.png.jpg

 

 

image.png.jpg

 

 

기본양식에 맞춰서 터널을 생성해줘야합니다.

 

image.png.jpg

 

image.png.jpg

 

토큰번호만 별도로 복사합니다. install 뒤에 나오는 항목입니다.

 

image.png.jpg

 

 위처럼 터널이 생성되었으면 앱을 연결해봅시다.

cloudflared 컨테이너 생성하기

casaOS 앱스토어로 가서 cloudflared를 다운로드받습니다.

image.png.jpg

 

설치후 앱을 누르면 아래와같은 페이지로 갈텐데요. 아래 나오는 업데이트트 이따가 진행할겁니다.

복사한 토큰을 아래에 붙여넣어주세요.

 

image.png.jpg

 

Save 후 Start해주시면됩니다.

 

image.png.jpg

 

그다음은 다시 설정화면으로가서 라우팅을 어떻게할지 지정해줘야하는데요

 

아래와같은 형식으로 작성해주시면됩니다.

cloudflard.dalso.org로 접속하면 내부의 http:192.168.1.231:80번으로 라우팅시켜준다는 말입니다.

image.png.jpg

 

save turnnel로 완료.

 

image.png.jpg

 

주소에 살짝 오타가있었지만

이렇게 터널이 연결되고 도메인으로 접속하면 아래처럼 잘 연결되는걸 보실 수 있습니다.

 

image.png.jpg

 

이런식으로 도메인을 여러개 연동하면 외부에 포트오픈을 하지않고도 서비스 운영이 가능합니다.

다만, 파일전송같은경우 단일로 100M이상은 전송이 불가능하니 파일서버보다는 다른용도들로 사용하시는게 좋습니다.

 

++이미지 업데이트 방법

아이콘의 설정으로 가서 이미지 버전을 latest로 넣어주시면됩니다.

image.png.jpg

 

image.png.jpg

업그레이드하니 UI도 바뀌었네요;

image.png.jpg