Docker 를 이용한 Zero Tier 셀프호스팅하기.

profile
달소

 

안녕하세요 달소입니다. 앞서 DarkAcid @DarkAcid 94505 님께서 소개해주신 ZeroTier를 오라클 클라우드 서버에 직접 구축해보았습니다. VPN...
달소 | 2021.12.03

 

앞서 오라클 클라우드에 구축했던 제로티어를 직접 홈서버환경에 맞게 셋팅해서 사용해보도록하겠습니다.

차이점은 오라클클라우드에서는 단일 호스팅 환경(80,443)에 도메인을 통해 인증서를 자동갱신해줬다면


내부에서만 접근가능하며 인증서를 발급받을수없을때 사용하시면 되겠습니다.

 

Zerotier가 모르는분들을 위한 간단한 설명입니다.

 

ZeroTier는 SDN (Software Defined Networks)의 선두 기업 중 하나이며, 포트를 열 필요없이 인터넷을 통해 여러 장치를 상호 연결할 수있는 가능성을 제공합니다. ZeroTier One 덕분에이 회사는 PC, 서버, 스마트 폰 및 기타 장치가 가상 사설망 (VPN)을 통해 서로 통신 할 수있는 클라이언트 프로그램을 제공합니다. ZeroTier 네트워크는 암호화됩니다. - itgic.com


제로티어를 잘 활용하면 클라우드와 홈서버를 공인네트워크 통신이아닌 사설 네트워크로 운영할 수 있어서 보안적으로도 큰 이점이 있다고 보시면 되겠습니다.

image.png.jpg


유연성 ⏁ 멀티패스, 멀티캐스트 및 브리징 기능으로 레이어 2 이더넷을 에뮬레이트합니다.
보안 ⏁ ZeroTier의 제로 트러스트 네트워킹 솔루션은 256비트 종단 간 암호화로 확장 가능한 보안을 제공합니다.


또한 아래처럼 여러 플랫폼(헤놀포함!!)도 지원해주기때문에 응용방법도 많습니다!

image.png.jpg


잡설은 이만하고.. 본격적으로 구축을 진행해보겠습니다.
이번 이미지에서는 ssl 인증서까지 전체적용해주는 이미지로 진행하며
별도의 80,443을 사용하지못하고 ssl인증서를 못사용하는 환경에서는 설정을 커스텀해서 사용해야합니다.(추가글로 게재 예정)

구축환경

ESXi 홈서버
Alpine Linux 3.15
docker 최신버전,docker-compose 1.29.2
4000번 포트 사용

 

컨테이너 생성하기

 

image.png.jpg

설치자체를 docker-compose를 이용할것이기때문에 큰 어려움은 없습니다

간단하게 docker-compose.yml 파일을 받고 수정을 통해서 진행해보겠습니다.

 

wget https://raw.githubusercontent.com/dec0dOS/zero-ui/main/docker-compose.yml

image.png.jpg

기본이미지에서 proxy-https부분을 빼서 아래처럼 수정해주시고
zero-ui에 expose 다음에 ports를 추가해주시면됩니다.

+ - ZU_SECURE_HEADERS=true -> false 변경

 

version: "3.9"

services:
  zerotier:
    image: dec0dos/zerotier-controller:latest
    container_name: zu-controller
    build:
      context: .
      dockerfile: ./docker/zerotier/Dockerfile
    restart: unless-stopped
    volumes:
      - controller_data:/var/lib/zerotier-one
    expose:
      - "9993/tcp"
    ports:
      - "9993:9993/udp"
  zero-ui:
    image: dec0dos/zero-ui:latest
    container_name: zu-main
    build:
      context: .
      dockerfile: ./docker/zero-ui/Dockerfile
    restart: unless-stopped
    depends_on:
      - zerotier
    volumes:
      - controller_data:/var/lib/zerotier-one
      - zero-ui_data:/app/backend/data
    environment:
      - ZU_CONTROLLER_ENDPOINT=http://zerotier:9993/
      - ZU_SECURE_HEADERS=false
      - ZU_DEFAULT_USERNAME=admin
      - ZU_DEFAULT_PASSWORD=zero-ui
    expose:
      - "4000"
    ports:
      - "4000:4000"

volumes:
  zero-ui_data:
  controller_data:

 

이제 docker-compose pull 명령어로 이미지를 먼저 받아오겠습니다.

 

docker-compose pull

 

image.png.jpg

이미지를 받아줬으면 컨테이너를 바로 만들어주겠습니다.

 

docker-compose up -d --no-build

 

image.png.jpg

 

설치가 완료되면 ip:4000번으로 접속하시면됩니다.

로그인은 admin/zero-ui 입니다

image.png.jpg

 

컨트롤러 사용은 기존 웹사용방식과 동일합니다.

 

image.png.jpg

 

 

클라이언트 3개로 테스트했으며 아래 링크에서 클라이언트를 다운로드 받은 후 위 네트워크주소로 join 하면됩니다.

 

https://www.zerotier.com/download/

 

 

image.png.jpg

 

RDP 연결도 다 잘됩니다.

 

image.png.jpg

서버포럼 관리자입니다.!

서버포럼은 홈서버로 운영중이며 아래와같은 시스템으로 운영됩니다.

 

메인서버 - Ryzen 5700G / Proxmox 7.2 / Ubuntu / Xpenology / 기타 VM 등등

보조서버 - Intel i9-9900ES(QQC0) / H370M / Proxmox 7.1 / 아직개발용서버로 사용중
백업서버 - 타오나스 A형(?) / DS918+ 6.2.3 / 메인서버 VM 백업용

 

하드웨어,가상화 등등 여러 IT분야에 관심이 두루두루많습니다만 깊게알고있는건 없습니다 하하하

 

 

적용중인 도장이 없습니다.

* 가입일 : 2020-12-24
* 총 게시글 수 : 5467
* 총 댓글 수 : 16408
* 추천받은 게시글 개수 : 2247
* 추천받은 댓글 개수 : 2799
댓글
2
  • ewdgqqd1224
    2022.03.19

    이렇게 서버 직접 호스팅하면 호스팅한 서버에서 각 클라이언트에 어떻게 접근해야 하나요?

  • ewdgqqd1224
    달소
    작성자
    2022.03.19
    @ewdgqqd1224 님에게 보내는 답글

    클라이언트에서 서버로 통신하는것이고 서버도 upnp로 직접 포트오픈은안해줘도 됐었던걸로 기억합니다

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