반응형

원격(외부) 네트워크에서 SMB에 접속하려면 139, 445(맥북 연결 시) 등의 포트를 개방해야 된다. 하지만 이러한 포트들은 보안에 취약하기 때문에 기본적으로 SMB 프로토콜은 로컬 네트워크에서만 사용하는 것을 권장한다.

 

보안 취약성을 최소화하면서 원격에서 접근하려면 로컬 네트워크에 VPN을 구축하는 것이 좋다. OpenVPN, WireGuard 등 사설 VPN을 구축하는 여러 가지 방법이 있는데 Tailscale을 사용하는 게 가장 편리하다.

 

Tailscale Pricing

Tailscale은 WireGuard를 이용한 사설 Mesh Network 서비스다. Tailscale에 연결된 장치는 같은 네트워크에 있는 것처럼 작동한다. Tailscale은 설정이 거의 필요 없고 SSO 로그인을 사용하므로 보안 문제가 발생할 일도 적다. 시놀로지 나스 패키지를 제공하는 것도 큰 장점이다(WireGuard는 패키지를 직접 빌드하고 수동 설치해야 하는 번거로움이 있다).

Tailscale 무료 버전은 유저 3명에 100대 기기까지 추가할 수 있어서 결제하지 않고도 충분히 잘 사용할 수 있다.

 

💡 Mesh Network란 각 노드(디바이스)가 다른 노드와 직접적으로 연결되어 데이터 경로를 형성하는 네트워크를 말한다. 중앙 허브나 라우터에 의존하지 않기 때문에, 어떤 노드에 장애가 발생하더라도 대체 경로를 통해 데이터를 전송할 수 있는 특징이 있다. 

 

 

설정 방법


  1. 나스 DSM → 패키지 센터 → Tailscale 검색 / 설치
  2. Tailscale 패키지 실행 → 회원가입/로그인 → 나스 기기 등록
  3. iOS, macOS 어플리케이션 설치 후 로그인 → 기기 등록
  4. macOS 메뉴바의 Tailscale 아이콘 클릭 → "Exit Nodes" → "Allow Local Network Access" 체크
    체크하면 현재 기기가 물리적으로 연결된 로컬 네트워크의 다른 장치들과 통신이 가능해진다. 예를 들어 Exit Node가 활성화된 상태에서 ping 192.168.1.60 이렇게 다른 기기로 핑을 날려보면 정상적으로 응답을 받을 수 있다. 만약 Allow Local Network Access에 체크하지 않으면 Request Timeout 에러가 발생한다.
  5. Tailscale 콘솔 → 나스 기기 우측 ... 더 보기 버튼 클릭 → "Disable key expiry" 클릭
    Tailscale에 추가된 모든 장치는 기본적으로 180일 간격으로 재인증해야 한다. 나스는 로컬 네트워크에 위치한 신뢰할 수 있는 서버이므로 만료일을 비활성해서 번거로운 재인증을 방지할 수 있다(선택 사항).

 

 

접속 방법


맥 혹은 아이폰에서 Tailscale을 연결하고 나스에 부여된 주소로 접속하면 끝. 정말 간단하다. Tailscale 콘솔에서 나스 접속 주소를 확인할 수 있다. Machine Name은 기기 이름으로 자동 등록되는데 우측에 있는 ... 더보기 버튼 → "Edit machine name" 을 눌러서 수정할 수 있다.

 

Tailscale 콘솔 화면

또한, 무료 유저도 MagicDNS 기능을 이용해 IP 주소 대신 도메인만 입력해서 접속할 수 있다. 도메인은 아래 두 가지 중 원하는 방식으로 접속하면 된다. TailnetName은 따로 수정하지 않는 한 변경되지 않으며, DNS 설정 페이지에서 확인할 수 있다.

 

  1. MachineName (장치이름) e.g. nas
  2. MachineName.TailnetName (전체 도메인 이름) e.g. nas.yak-bebop.ts.net

 

Tailscale이 연결된 상태에서 기기 이름으로 핑 테스트를 해보면 전체 도메인 이름과 IP 주소가 표시된다.

ping nas
# PING nas.yak-bebop.ts.net (100.xx.xxx.xx): 56 data bytes
# 64 bytes from 100.xx.xxx.xx: icmp_seq=0 ttl=64 time=82.535 ms
# 64 bytes from 100.xx.xxx.xx: icmp_seq=1 ttl=64 time=2.459 ms

 

MagicDNS는 네트워크의 모든 장치에 대해 전체 도메인 이름(Fully Qualified Domain Name)을 생성하고 검색 도메인을 네트워크에 추가한다. 이 검색 도메인을 사용하면 장치 이름만 입력해서 액세스 할 수 있게 된다.

 

 

SMB 접속 예시


별다른 설정 없이 Tailscale에 연결된 상태에서 smb://MachineName 주소로 바로 접속할 수 있다. 예를 들어 기기 이름이 nas라면 smb://nas 주소로 접속하면 된다. 사용자 ID/PW는 나스 DSM 로그인 정보를 입력하면 된다. 참고로 맥북 파인더(Finder) 앱에서 CMD + K 단축키를 누르면 서버 연결 창이 뜬다. 이 창에 주소를 입력하고 연결하면 해당 서버의 공유 폴더가 마운트 된다.

 

 

 

모든 트래픽 라우팅 - Exit Node


💡 Tailscale은 오버레이 네트워크 역할을 수행한다. 오버레이 네트워크는 물리적인 네트워크 위에 가상으로 구축된 네트워크를 의미한다. 이러한 네트워크는 물리적 네트워크의 인프라를 그대로 활용하지만 논리적으론 별도의 네트워크로 동작한다. 대표적인 오버레이 네트워크는 VPN, SDN 등이 있다.

 

기본적으로 Tailscale은 연결된 장치들끼리의 트래픽만 라우팅 한다. Google, Twitter 같은 공용 인터넷 트래픽에는 영향을 주지 않는다. 하지만 신뢰할 수 없는 WiFi 혹은 해외에서 국내 인터넷 뱅킹 등을 사용하는 상황에선 공용 인터넷 트래픽 라우팅이 필요할 수 있다. Tailscale에 연결된 특정 장치를 Exit Node로 설정하면 모든 공용 인터넷 트래픽을 라우팅 할 수 있다. 즉, 원격에 있는 기기가 Exit Node의 IP 주소를 통해 인터넷에 접속하는 것처럼 만들 수 있다. — 참고 링크

 

아래는 나스를 Exit Node로 설정하고 아이폰에서 Exit Node를 사용하는 예시.

 

❶ DSM → Tailscale 패키지 클릭 → "Advertise as Exit Node" 버튼 클릭

 

Tailscale 콘솔 → 나스 장치 우측 ... 클릭 → "Use as exit node" 체크 (Nas를 Exit Node로 설정)

 

❸ Exit Node를 사용하려는 기기의 Tailscale 앱 실행 → "EXIT NODE" 클릭 → Nas 기기 선택

 

WhatIsMyIP 사이트에서 나스의 IP 주소가 표시되면 성공.

 

 

Taildrop


Tailscale 네트워크에 있는 기기들끼리 파일을 주고받을 수 있는 Taildrop이라는 기능도 제공한다. 이름에서 알 수 있듯 애플의 에어드롭(AirDrop)과 비슷하다. 하지만 에어드롭은 Apple 기기들이 근처에 있을 때만 작동한다. 반면 Taildrop은 이러한 제약이 없다. Taildrop은 다른 서버를 거치지 않고 암호화된 P2P 연결을 통해 파일을 전송하기 때문에 대용량이나 민감한 파일을 전송할 때 유용하다. 

 

Taildrop 작동 화면 (영상 출처 Tailscale) ▼

 

 

macOS에서 수신한 파일은 ~/Downloads 폴더에 저장되고 iOS에서 수신한 파일은 파일(File) 앱에서 확인할 수 있다. 시놀로지 나스로 파일을 전송할 수도 있는데 이땐 별도 설정이 필요하다. 자세한 내용은 링크 참고. 

반응형