Payload Logo
server

TailScale VPN 설치

Date Published

vpn

기본적인 서버 구성을 마치고 오라클 클라우드에서 제공하는 방화벽 기능을 통해 22, 80, 443 포트만 남기고 모두 막아 버렸었다.

이후 개발과 관련하여 PostgreSql 접근을 위해 기본 포트인 5432 포트를 다시 열어줬고, 기본 관리자 계정의 로그인을 제한하고, 새로운 관리자 계정을 만들어 관리를 하도록 하였으며, 각 DB별 계정을 별도로 만들어 사용하도록 하여 나름 보안을 유지하도록 하였다.

하지만, 날이 갈수록 알 수 없는 여러 로그인 기록들이 남아있는 것을 보면서 근본적인 해결책을 원하게 되었다. 사실 개발때를 제외하면 실제 운영시에는 DB를 원격으로 연결할 일은 없어 보이긴 하지만, 다르게 얘기하면 개발할때 가장 많이 원격 접속이 필요하기도 하다. 물론 개발과 프로덕션을 분리하는것이 올바른 방법일 테지만.. 그건 그거고 현재의 나는 그것이 몹시 불편하다.

근본적인 보안을 위한 방법을 찾아

검색을 하던중 누군가가 홈서버 운영을 위해 VPS와 집에 있는 서버를 연결하기 위해 TailScale VPN을 활용한 글을 보게 되었다.

tailscale logo

회원 가입을 하면 기본적으로 Personal Plan으로 등록이 된다. 유저수 3명에 최대 100대의 기기를 등록 할 수 있다. 팀 단위 경우는 활성 사용자당 월 6달러의 Starter Plan을 이용하면 유저수 무제한이고 유저당 기기 10대를 등록할 수 있는 것으로 보인다. 개인의 경우 가격 정책에 변동만 없다면 평생 고맙게 쓸수 있을 듯 싶다.

지원하는 플랫폼도 Windows, Mac, Linux, Android, iOS, ... 기타 왠만한 플랫폼은 거의 다 지원하는 것 같다. 설치를 원하는 장치에서 지원하는 플랫폼용 앱을 설치하기만 하면 된다.

필자가 생각하는 이 제품의 가장 큰 장점은 기존 통신(인터넷)은 그대로 사용하면서 각 장치간의 통신만 VPN망을 사용하도록 되어 있기 때문에 큰 변화를 인식하지 않고 자연스럽게 사용을 할 수 있다는 것이다.

서버 포트는 이제 80과 443이면 충분하다

필자의 집에서 개발용 맥을 이용해 테스트를 진행할 때 OCI VM(100.64.1.1 할당)에 있는 PostgreSQL에 접속을 하기 위해서는 postgres://user:password@100.64.1.1:5432/dbname 처럼 접속 문자열을 구성할수 있게 된다.

내부망에 있는 것처럼 편안하게 호출할 수 있고 환경 정보를 그대로 oci vm에 올려도 문제없이 구동이 된다.

때문에 개발 테스트를 위해 별도의 DB 포트를 열 필요가 없고, 그렇기 때문에 외부의 허가되지 않은 누군가의 접속 시도조차 사전에 차단 할 수 있는 것이다. 반대로 VPN망 내부에서는 모든 포트를 자유롭게 사용할 수 있게 된다.

무엇보다 좋은점은 SSH 접속을 위해 외부에 22번 포트를 열 필요가 없다는 것이며, 단지 장치 등록시 SSH 접속을 허용 해주기만 하면 SSH 클라이언트는 인증서 없이도 TailScale에 등록된 계정 인증을 통해 접속을 할 수 있게 해준다.