본문 바로가기
서버/Cloudflare

[Cloudflare]SSH, VNC, Minecraft 등을 Cloudflare을 통해 액세스 하는법

by jamong1014 2022. 2. 28.
반응형

단계 설명

  1. Cloudflare Zero Trust 등록
  2. Zero Trust 정책 생성
  3. 서버에 클라우드 플레어 설치 (로그인까지) 참고 : https://jamong1014.tistory.com/108?category=913441 
 

NextCloud에 Cloudflare 적용하기!! (OwnCloud도 가능)

조건 : 클라우드 플레어가 적용된 도메인, nextcloud owncloud등이 구축되어 있는 상태. (클라우드플레어 네임서버를 본인이 갖고 있는 도메인 네임서버에 기입해서 서비스를 이용할 수 있도록 해야

jamong1014.tistory.com

  4. 터널 생성

  5. 터널 구성

  6. 터널로 가는 길

  7. 터널 실행

  8. 클라이언트에서 접속하는 법


1. Cloudflare Zero Trust 등록

 

* 등록 절차는 생략하도록 하겠습니다. 무료 플랜으로 가입하시고 등록하시면 끝

 

2. Zero Trust 정책 생성

- 먼저 제로 트러스트 대시보드로 이동하여 새 애플리케이션을 만듭니다

 

- 다음 페이지에서 'Add an application'

 

- 다음 페이지에서 자체 호스팅 선택

 

- 사용자가 애플리케이션을 사용할 수 있는 호스트 이름이 될 하위 도메인을 입력합니다.

* 위 사진은 예시입니다.

 

- 그런 다음 애플리케이션에 연결할 수 있는 사용자를 제어하는 ​​규칙을 만듭니다.

* Include는 어떤 방식으로 접근하게 할건지 설정하는겁니다. 전 간단하게 제 이메일로만 승인할 수 있도록 했습니다.

 

- 마지막으로 Add application 하시면 됩니다.

* 딴거 건드릴 필요 없음

 

 

- 정상적으로 앱이 추가된 모습


3. 서버에 클라우드 플레어 설치(로그인까지)

https://jamong1014.tistory.com/108?category=913441 

 

NextCloud에 Cloudflare 적용하기!! (OwnCloud도 가능)

조건 : 클라우드 플레어가 적용된 도메인, nextcloud owncloud등이 구축되어 있는 상태. (클라우드플레어 네임서버를 본인이 갖고 있는 도메인 네임서버에 기입해서 서비스를 이용할 수 있도록 해야

jamong1014.tistory.com

설치부터 로그인까지는 이 글 보고 참고하시면 됩니다.

 


4. 터널 생성

- 설치하고 로그인까지 정상적으로 이루어졌으면 이 후 터널을 생성해주셔야 합니다.

#cloudflared tunnel create [NAME]

Tunnel credentials written to /home/janne/.cloudflared/01f0928b-6a11-4254-854c-4173b5b74f2e.json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel. 
Created tunnel nextcloud with id 01f0928b-6a11-4254-854c-4173b5b74f2e

*원하시는 이름을 지정하고 앞으로 프로세스 실행할 때도 지정한 이름으로 실행됩니다.

 

 

5. 터널 구성

- 터널 구성은 따로 구성 파일을 만들어서 절대경로로 실행하는 방식을 선택하겠습니다.

저는 /etc/cloudflared/ssh/config.yml 이런식으로 구성해줬습니다. 

 

- config.yml 파일을 열어서 아래 내용을 참고하여 붙혀넣어주시 바랍니다.

tunnel: 01f0928b-6a11-4254-854c-4173b5b74f2e 
credentials-file: /home/janne/.cloudflared/01f0928b-6a11-4254-854c-4173b5b74f2e.json 

ingress:
- hostname: 자신의 도메인 
  service: ssh://192.168.1.5:22
- service: http_status:404

* tunnel, credentials-file은 앞서 생성한 터널을 통해 나온 아이디를 입력해주시기 바랍니다.

* hostname은 자신이 앞에서 설정한 하위 도메인 예)sshd.fooblack.com

* service는 ssh://자신의 서버 사설 아이피:포트(ssh는 22)

 

6. 터널로 가는 길

- 이제 Cloudflare 웹 대시보드에서 DNS 설정을 구성해야 합니다.

* 형식은 CNAME으로 구성하시고 대상(필수 항목)은 터널 생성을 통해 나온 아이디.cfargotunnel.com 이렇게 기입해주시면 됩니다.

예) 아이디가 234dfe-3re-w3 라면 ' 234dfe-3re-w3.cfargotunnel.com ' 요렇게 넣어주시면 됩니다.

 

7. 터널 실행

- 이제 프로세스를 실행하시면 됩니다. 이름은 아까 지정한 이름 사용

#cloudflared tunnel --config /etc/cloudflared/ssh/config.yml run [NAME]

 

- 완전히 백그라운드로 실행하고 싶으시면 앞에 nohup과 끝에 &를 붙혀주세요.

#nohup cloudflared tunnel --config /etc/cloudflared/ssh/config.yml run [NAME] &

 

 

* vnc와 Minecraft와 같은 tcp 기반으로 돌아가는 프로토콜들도 이런식으로 포트 바꿔서 구축해주시면 됩니다.


8. 클라이언트에서 접속 하는 법

가정 : 윈도우에서 ssh 접속을 할 때

 

1. 먼저 윈도우 버전의 클라우드 플레어를 다운받아 줍시다.

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/

 

2. 바탕화면에 저장하고 cmd를 켜서 해당 명령어 입력

 

해석하자면 '192.168.1.178:22가 호스트네임의 sshd.foolblack.com 으로 포워딩한다' 라는 뜻입니다.

자신의 사설 아이피:포트 --> 서버구축한 클라우드플레어 터널 --> 본 서버 형식으로 넘어가는겁니다.

cloudflared.exe access tcp --hostname sshd.foolblack.com --url 192.168.1.178:22

* 위 명령어는 예시입니다.

* hostname과 url은 각각 자신이 설정한 하위도메인과 자신의 사설아이피:포트로 지정해야 합니다.

* 포트는 접속하는 클라이언트이기 때문에 아무렇게 해도 상관 없음. 대신 들어갈때 지정한 포트로 들어가줘야 함

 

3. 명령어를 실행한 상태에서 putty 접속!

* 꼭 자신의 사설 아이피:포트로 접속

 

- 접속 성공


*** 저렇게 일일히 명령어를 적어서 실행해야 되고, 컴퓨터가 다를 시 사설 아이피 또한 다르기 때문에 이러한 귀찮음 때문에 bat 파일로 만들었습니다. 

 

Cloudflare TCP Connect.zip
13.78MB

 

그냥 압축 풀고 .bat 파일 바로 실행하시면 됩니다.

 

 

반응형

댓글