RustDesk Server at Docker on UBUNTU 20.04 LTS

RigidBody·2023년 3월 27일
0
post-thumbnail

RustDesk Server 설치를 진행해보자.

1. 기본 설치 조건
Rustdesk Server/Client는 다양한 환경에 설치가 가능하다..
윈도우즈/리눅스/맥OS/시놀로지

여기에서는 우분투 20.04 LTS 기준으로 설치를 진행 하도록 하겠다.

2. 네이티브로도 설치가 가능하나, 설정의 편의를 위해 Docker-Compose로 진행하기로 한다.
우분투에 SSH로 접속하고, 적당한 곳에 docker에서 사용할 로컬 폴더를 생성한다.

mkdir -p /docker/rustdesk
cd /docker/rustdesk

3. 이제 docker-compose에서 사용할 yml파일을 작성하도록 한다.
아래 rustdesk.yml파일중에 {도메인주소 OR IP}만 본인 환경에 맞게 수정해서 복사/붙여넣기 하기 바란다.
ex) command: hbbs -r joongon.com:21117 -k OR command: hbbs -r 122.22.22.12:21117 -k
그리고 저장한다.(당연한거지만...)
*복사(ctrl + ins) / 붙여넣기(shift + ins)

  • 본인 서버의 cpu에 따라 docker image가 다르니 구분해서 설정하도록 한다.

    • 아키텍처를 잘못 선택하여 설치시 아래와 같은 에러 발생, docker-compose yml을 수정하고 재 로딩한다.
  • AMD/INTEL CPU

nano rustdesk.yml
version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r {도메인주소 OR IP}:21117 -k _
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr -k _
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    restart: unless-stopped
  • ARM CPU *OCI A1(Ampere)
nano rustdesk.yml
version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest-arm64v8
    command: hbbs -r {도메인주소 OR IP}:21117 -k _
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest-arm64v8
    command: hbbr -k _
    volumes:
      - ./data:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

4. 이제 아래 명령으로 container를 실행해보자.

docker-compose -f rustdesk.yml up -d
docker ps #docker가 잘 로딩 된 것을 확인

5. 이제 네트워크 설정할 차례이다.
RustDesk는 총 21115 - 21119까지 5개의 Port를 사용한다.
이중 21118, 21119는 옵션인다.(WebUI용) 그래도 해당 포트를 일단 모두 열어준다.
방화벽에서 모두 열어주고 라우터(공유기)에서 포트포워딩도 해줘야 한다.(당연한거지만)

5.1 방화벽 설정

ufw allow 21115:21119
ufw allow 21116/udp

*OCI(오라클 클라우드 인프라스트럭쳐) VM 같은경우 ufw가 아닌 iptables에 직접 방화벽 정책을 입력해야 한다. 하단의 OCI 네트워크 설정을 참조해서 진행

5.2 라우터(공유기) 설정

외부 --> 내부로 볼떄, 21115:21119 --> 21115:21119(tcp), 21116 --> 21116(udp)

6. 이제 보안 설정을 해보자.
아래 경로에 가면 보안 Key set이 보인다.(id_ed25519, id_ed25519.pub)
이중 public key인 id_ed25519.pub 파일을 열어서 내용을 복사해 놓는다.

cd /docker/rustdesk/data
nano id_ed25519.pub

*아래와 같은 공개키값을 복사해 놓는다.

vCM4beuUJiwWWLnewYsdfsgdfhdfhdfhadsasHR5Y=

이제 이 키 값을 우리가 연결해 사용할 remote PC등에 설정할 예정이다.

7. 이제 모든 서버 설정이 마무리 되었다. 우리가 접속할 모든 remote 기기들, PC/Mac등에 RustDesk의 Client를 설치하자. Client 다운로드 https://rustdesk.com/

8. 설치된 Client를 실행하고 아래와 같이 설정한다.(ID/Relay Server)

RustDesk Server의 도메인과 포트번호(21116)를 입력하고, 마지막의 ed25519 공개키 값을 입력해준다.

9. 정상적으로 Server에 연결되면 하단에 아래와 같이 "Ready"문구가 뜨게 된다.

10. 이제 다른 PC에서 지금 설정한 PC(remote)로 접속이 가능한지 확인해 본다.
다른 PC에도 RustDesk Client가 마찬가지로 설치/동일셋팅(서버주소, 보안키) 되어 있어야 한다.
접속시 사용할 비번은 임의 생성되나, 본인 고유의 값으로 변경 가능하다.
비번은 접속 타겟이 되는 remote PC마다 각각 설정해주어야 한다.

접속이 정상적으로 되면, 상단에 암호화된 접속임을 알 수 있는 초록색 방패아이콘이 표기된다.

=========================================================

*Oracle Cloud Infrastructure UBUNTU (OCI 서버 네크워크설정)

OCI VPS(UBUNTU 20.04 LTS A1(Ampere) Instance)

OCI에 Rustdesk Server 설치시 네트워크 설정

1. SSH로 접속 후, iptables로 방화벽 설정을 진행한다. OCI에서는 ufw가 비활성화 되어 있는 것 같다.

21115-21119/tcp, 21116/udp를 열어준다.

iptables -I INPUT -p tcp --dport 21115:21119 -j ACCEPT
iptables -I INPUT -p udp --dport 21116 -j ACCEPT

아래 명령으로 iptables 설정을 저장한다. 저장하지 않을 경우 재부팅시 설정한 사항은 초기화 되버린다.

netfilter-persistent save

※ netfilter-persistent가 없는 경우 패키지 매니저를 통해 설치하면 된다.

apt update
apt install netfilter-persistent -y

2. 설정된 방화벽이 제대로 등록되었는지 확인 한다.

iptables -S | grep 2111*

3. OCI 네크워크에 대한 Portforwarding 설정을 진행한다.

  • OCI에 접속 > 상단 ORACLE Cloud > Dashboard > Instances 클릭
  • 해당 Instance 클릭
  • 하단 Resources > Attached VNICs 클릭
  • Subnet 클릭
  • Security Lists 에서 기본 리스트 클릭
  • Ingress(Inbound) Rules에서 "Add Ingress Rules" 클릭
  • 아래와 같이 21115-21119/tcp, 21116/udp Rule을 추가한다.

  • 목록이 많을 경우 2번째 페이지에서 해당 Rule이 잘 반영되어 있는지 확인한다.

profile
Speed Enthusiast

0개의 댓글