Tailscale의 편의기능(Magic DNS, Tail SSH, Web SSH) 사용하기
안녕하세요. 달소입니다.
이번글에서는 Tailscale의 편의기능을 좀더 소개해드리겠습니다.
Tailscale에서 가장 좋게보는부분은 무료플랜에서도 기능제약을 대부분 하지않는다는점 인데요.
Magic DNS, TailSSH 모두 무료플랜에서 사용이 가능합니다.
DNS에 대해서는 대부분 아실거라고 생각하지만 간단하게 한번 더 짚고 넘어가겠습니다.
DNS란?
DNS란 무엇인가요? 간단하게 10줄내로 요약해주세요
DNS(Domain Name System)은 인터넷에서 도메인 이름을 IP 주소로 변환하는 시스템입니다.
인터넷에서 컴퓨터나 장치들은 IP 주소를 사용하여 통신을 하지만, 사람들은 기억하기 쉬운 도메인 이름을 사용하고 싶어합니다.
DNS는 이러한 요구를 충족시켜주는 역할을 합니다.
DNS는 전 세계에 분산된 서버들로 구성되어 있으며, 사용자가 도메인 이름을 입력하면 해당 도메인 이름에 대한 IP 주소를 찾아주는 역할을 합니다.
이를 통해 사용자는 도메인 이름을 통해 웹사이트에 접속하거나 이메일을 보낼 수 있습니다.
또한, DNS는 도메인 이름의 계층 구조를 관리하고, 도메인 이름 간의 관계를 설정하는 등의 기능도 수행합니다.
DNS는 인터넷의 핵심 시스템 중 하나로, 웹 브라우저나 이메일 클라이언트 등의 애플리케이션에서 자동으로 사용되며, 사용자는 DNS에 대한 자세한 이해 없이도 인터넷을 사용할 수 있습니다.

뭐 대충 IP를 외우기어려우니 익숙한 영어로 도메인을 만들고 접속하게끔해주는 시스템이라고 보면됩니다.
MagicDNS란?
Tailscale에서는 Node의 이름을 도메인처럼 사용할 수 있게해주는데 이걸 Magic DNS라고합니다.
2022년도 10월 이후부터 생성된 tailnet의 경우 모두 기본적으로 활성화 되어있는데 관리페이지에서 활성화 시켜줄수도 있습니다.

이렇게 활성화 되면 장치에 등록된 Device 이름으로 통신이 가능합니다.
이렇게 n100으로 등록을해놨다면

ping n100으로 이렇게 핑도되고

도메인접속도 문제없습니다 ㄷㄷ

참 편하죠..? 이걸 TailSSH와 사용하면 더 편합니다.
TailSSH란?
Tailscale SSH를 사용하면 다음을 수행할 수 있습니다.
- 정상적으로 SSH를 사용하고 인증을 위해 Tailscale을 사용합니다. Tailscale SSH를 사용하면 Tailscale이 Tailscale 네트워크에서 들어오는 SSH 연결을 위해 포트 22를 사용합니다. Tailscale은 Tailscale 노드 키를 사용하여 WireGuard를 통한 연결을 인증하고 암호화합니다. SSH 클라이언트와 서버는 여전히 암호화된 SSH 연결을 생성하지만 더 이상 인증되지는 않습니다.
- 확인 모드를 사용하여 위험도가 높은 연결을 확인합니다 .
root
선택적으로 연결하기 전에 재인증하려면 특정 연결 또는 특정 사용자(예: )로서의 연결이 필요합니다 . 이를 통해 사용자는 다음 12시간 동안 또는 다시 인증하기 전 지정된 확인 기간 동안 이러한 고위험 애플리케이션에 액세스할 수 있습니다.
쉽게말해 Tailscale에 연결된 기기로 ssh 허용을 지정해준다면 언제 어디서든 ssh 접속이 가능해집니다.
여기서 추가적인 SSO 인증도 사용할 수 있으며 키값이 필요없어 오라클클라우드등에 지정해놓는다면 아주 편한 접속이 가능해집니다.
활성화 방법은 간단합니다. tailscale up을 시킬때 tailscale up --ssh 로만해주시면됩니다.
그럼 관리콘솔에 아래처럼 SSH로 접속가능한 기기라는 태그가 달립니다.

여기서 ACL을 사용하면 좀더 상세하게 제어가 가능한데.. 여기서는 튜토리얼성이니 기본적으로 설정되어있는 ACL을 사용해보겠습니다. 상세한 설정은 아래 링크를 참조하시는걸 추천드립니다.
접속방법은 매우쉽습니다.
일반 ssh 처럼 붙어주시면 되는데
ssh root@ds-management 와 같이 뒤에는 magicdns나 tailscale ip를 붙여주시면됩니다.

기본적으로 root 접속도 허용이되는데 ACL에서 root를 없애면 root 접속은 제한할 수 있습니다.


조금 더 심화된버전으로 이 SSH에 인증을 부여할 수도 있습니다.
기본옵션에서 아래 한줄을 추가해주면
"checkPeriod": "5m", // optional, in minutes or hours
5분을 주기로 인증을 받게되고 한번인증하면 다른 서버에 붙을때는 인증을 안해도 됩니다. 기간은 편하신만큼..



그리고 원모얼띵스가 하나 더있습니다 ㄷㄷ..
Tailscale에서 베타로 지원하고있는 기능인데 위 ssh를 활성한 기기에 대해서 웹 ssh로도 접근이 가능합니다.
기기관리에서 아래처럼 SSH가 추가되어있으며

접근할 계정명만 딱 넣어주면

인증을 한번 하라고합니다.

인증되면 이렇게 웹콘솔로 SSH까지..!
아주 쉽죠??
편리한 기능들이 참 많습니다 ㅎㅎ