• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

cloudflare zero trust에 tunnel, warp 연결하기

콜라 1126

5

27

개요

zero trust가 무엇인지는 우리 keiminem님께서 자세히 설명해주셨습니다.

 

 

 

오늘 설명 드리려는 것은 Cloudflare가 제공해주는 zero trust에 대한 설명입니다.

이 글에서 "zero trust"라고 쓴 단어는 zero trust를 지칭하는 것이 아니라 Cloudflare에서 제공해주는 서비스의 이름입니다.

따라서 일부 기능은 zero trust라면 당연히 갖춰야 하는 기능이 아니라

cloudflare의 zero trust에서만 되는 기능/서비스 일수 있다는 점은 인지해주세요.

image.png.jpg

 

또한.. 제가 쓰려는 글이 이미 우리 포럼에도 있더군요.

제가 가입하기 이전 글이라서 몰랐는데, 지금 글을 쓰기 전에 찾아보려고 하니 있네요.

 

오늘 제가 설명 드리려는 것도 이것과 완전히 같습니다.

 

왜 Cloudflared를?

제가 cloudflared에의 장점으로 보는 것은 다음과 같습니다.

- DNS와 달리 server의 IP를 알수 없다.

- cloudflare proxied DNS의 모든 기능을 갖추고 있다.

- cloudflare proxied dns와 달리 인천ICN CDN을 서버로 사용한다.

cloudflare proxied dns는 나리타NRT를 기본으로 합니다.

지연이 줄어든 것이 상당히 체감이 많이 되고 있어요.ㅎㅎ

- cloudflare proxied DNS와 달리 TCP 프로토콜을 모두 지원한다. http가 아닌 서비스도 제공한다.

cloudflare proxied DNS는 http가 아닌 서비스를 하려면 어쩔수 없이 DNS 모드를 사용해야 했습니다

ssh, vnc, smb 다 됩니다!

- cloudflare proxied DNS와 달리 port에 제한이 없다.

proxied DNS에서 사용할 수 있는 포트: developers.cloudflare.com/fundamentals/get-started/reference/network-ports

 

- tunnel로 ssh, http등을 서비스하기 때문에 모든 포트를 다 막아버려도 접근 가능하다

proxied DNS 쓸 때도 www.cloudflare.com/ko-kr/ips/ 에 해당하지 않는 IP는 다 막아두긴 했습니다.

이제는 저 IP까지 다 차단 박아도 됩니다. 방화벽에서 TCP는 모든 public ip, 모든 port를 막아뒀습니다.

- docker로도 제공합니다.

docker로 network mode를 host모드로 하나, bridge 모드로 하나 실행해두면 모든 서비스에 대해 reverse proxy가 가능합니다.

- 단말기에서 WARP에 연결하면 모든 tunnel에 private IP로 접근 가능하다.

예를 들어 집의 NAS는 10.1.1.1, 집의 데스크탑은 10.1.1.2, oracle cloud 인스턴스는 10.1.1.3, azure는 10.255.255.254라면 다 접근 됩니다.

다른 VPN으로 연결할 필요도 없고, 동시에 smb로 연결해서 10.1.1.1에서 10.255.255.254로 복사하는 것도 가능합니다.

- 자체적으로 ssh, vnc 렌더러를 제공합니다.

guacamole이 없어도 됩니다..!!

image.png.jpg

 

글 하나가 너무 길어지는 것 같아서.. 먼저 간략하게 왜 cloudflared를 사용하는지 정리해봤습니다.

다음 글에서는 cloudflare tunnel 구성하는 방법 설명드릴께요.

 

앞서 sayaro님이 설명해주신 것과 달라진 점이 많더라구요.

deb, rpm repository도 제공하고 있고, 또 synology나 qnap, alpine 등

rpm이나 deb가 아닌 경우 설치/사용 방법에 대해서도 설명 드리려고 합니다.

신고공유스크랩
27
콜라 글쓴이 2023.04.13. 10:03
hilee0602
동생걸론 한계가 있네요.
나중에 헤놀 갈아서 해봐야겠습니다..
한참 있다가 뜬다면 timeout일 가능성이 높겠네요..
profile image
hilee0602 2023.04.13. 10:16
콜라
우선 제가 NPM과 비교해서 웹브라우저 상에서 테스트 해보니 아래와 같은 차이점이 있네요..

NPM : 프록시 설정한 Public Hostname + 5001 조합으로 웹 브라우저에서 입력하면 DSM 화면이 정상 출력됨

Cloudflare Tunnel : 설정한 Public Hostname + 5001 조합으로 웹 브라우저에서 입력하면 DSM 화면 표시 안됨.

일전 인터넷에 찾아보니 DS File과 DS Get 같은 어플은 HTTP의 경우 5000번, HTTPS의 경우 5001을 고정으로 사용한다고 본거 같아서 테스트 해보니까 위와 같은 결론이 나오는군요.

즉, DS Get 앱에서 로그인 버튼을 누르면 해당 호스트 주소로 HTTP인 경우 5000번, HTTPS인 경우 5001번으로 세션 연결을 시도 하는 것으로 보여지네요.

다만 NPM의 경우 제가 공유기에 5001번 포트 포워딩을 해놔서 그런지 웹 브라우저에 "https://{프록시 주소}:5001을 입력하면 DSM 화면이 나오는데, Cloudflare Tunnel은 "https://{터널 도메인}:5001"을 입력해도 웹 브라우저 상에서 DSM 화면이 나오질 않고 페이지를 표시할 수 없습니다라고 나오더군요.

이 차이로 인해 Cloudflare Tunnel로는 시놀 앱을 사용할 수 없는 것으로 보여지네요.
콜라 글쓴이 2023.04.13. 10:59
hilee0602

아. 터널의 퍼블릭 호스트 네임을 사용하면 포트는 따로 지정 못합니다.
서브 도메인 하나에 포트 하나씩이예요.

웹브라우저에서는 https://[터널플
퍼블릭호스트네임]을 입력하시고

터벌 퍼블릭호스트네임에서 포트를 입력해야해요.

 

npm도 똑같습니다.

여러 서브 도메인을 한 IP:port로 프록시할수 있으나

한 서브도메인을 여러 포트로는 못해요.

npm은 고급 설정에서 nginx설정을 하지 않았다면 80, 443만 수신 가능하므로 브라우저에서 5001을 입력했다면 지금까지 npm을 거치지 않았을 가능성이 높아요.

 

고급설정에서 npm 수신 포트를 바꾸시지 않았다면 말이죠.

profile image
hilee0602 2023.04.13. 11:12
콜라
네.. 그렇군요..

말씀 하신 부분은 충분히 이해했습니다.
현재 DS Get의 문제점은 DS Get에서 설정한 서버로 80 또는 443으로 연결 요청 하는 것이 아닌 5000 또는 5001로 연결을 요청한다는게 문제로 보여지는군요.

Cloudflare Tunnel은 "Public Host:443"에 대한 응답만 지원하다보니 "Public Host:5001" 요청에 대한 처리를 하지 못하는 것으로 보여지네요.

만일 Cloudflare Tunnel에서 Public Hostname 설정할 때 Public Hostname에 포트를 설정 할 수 있다면 이 문제는 해결되지 않을까 싶네요.

허나 지금은 Cloudflare 자체에 Custom 포트를 설정하는 기능이 지원되지 않기 때문에 이건 당장은 불가능해 보이는군요...
콜라 글쓴이 2023.04.13. 11:21
hilee0602
그럴것 같습니다.
그냥 해당 서브 도메인을 전부 5000으로 보내버리는게 해결책이 될듯 싶습니다.ㅠㅠ
profile image
hilee0602 2023.04.13. 11:27
콜라
그러게요... 올려주신 강좌가 너무 잘 되어 있어서 NPM에서 넘어갈려고 했는데 저기서 걸려버렸네요..ㅠ.ㅠ
profile image
hilee0602 2023.04.13. 11:47
콜라
아.... 어처구니 없게도 간단하게 해결됐네요...

앱에서 주소 입력할 때 {Tunnel 도메인}:443 이렇게 설정해 주니까 Cloudflare Tunnel로 앱도 잘 연결 되는군요...
12

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
오픈소스 개인 구독 추적기 Wallos 8 달소 3일 전23:26 357 +3
질문 /var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 5일 전20:42 304 +1
잡담 jellyfin 자원 진짜 안쓰네요 1 kmw_ 5일 전19:26 469 +1
질문
image
콜라 23.04.07.13:09 1126 +5
1449 질문
normal
Jasons 23.08.06.22:47 630 +4
1448 질문
normal
올리고당 21.07.26.10:00 1348 +4
1447 질문
normal
배뚱이 23.01.09.12:47 795 +3
1446 질문
normal
돼지족장 22.04.27.17:17 311 +3
1445 질문
normal
하늘위의하늘 22.03.15.14:35 150 +3
1444 질문
normal
강프로 22.01.26.01:35 338 +3
1443 질문
image
akrsoTale 23.06.27.20:19 660 +3
1442 질문
image
달소 21.04.24.14:41 1212 +3
1441 질문
image
콜라 23.04.07.15:57 1124 +3
1440 질문
image
달소 21.04.23.12:51 6143 +3
1439 질문
normal
딩구링 22.03.25.12:34 235 +3
1438 질문
image
달소 22.06.26.00:19 640 +3
1437 질문
normal
올리고당 21.06.23.17:32 1724 +3
1436 질문
normal
greymin 22.05.31.19:17 806 +3
1435 질문
normal
올리고당 21.07.12.16:42 201 +3
1434 질문
normal
펜타네스트 22.04.15.16:30 621 +3
1433 질문
image
Tfv449XWCX9s 22.05.08.00:59 2678 +3
1432 질문
normal
허줩 22.03.22.09:17 230 +2
1431 질문
normal
섭린이 22.03.21.15:28 234 +2