구독료는 그만, 라즈베리파이로 만드는 나만의 비밀번호 금고 Vaultwarden

Admin LeeJun 23, 20268 min read7 views

💡 글의 핵심 3줄 요약

  1. Vaultwarden은 Bitwarden과 완벽히 호환되는 초경량 비밀번호 관리자로, 라즈베리파이에서도 50MB 미만의 메모리로 돌아가 홈 서버에 딱 맞습니다.
  2. 모든 비밀번호는 기기에서 먼저 AES-256으로 암호화되어 서버로 전송되므로, 내 서버조차 원본 비밀번호를 들여다볼 수 없는 구조입니다.
  3. HTTPS 적용, 강력한 마스터 비밀번호, 2단계 인증, 그리고 정기 백업만 챙기면 상용 서비스 못지않게 안전한 나만의 비밀번호 금고를 만들 수 있습니다.

구독료는 그만, 라즈베리파이로 만드는 나만의 비밀번호 금고 Vaultwarden

안녕하세요 여러분! 혹시 지금 사용 중인 비밀번호를 전부 머릿속에 외우고 계신가요? 솔직히 요즘 같은 시대에 그건 거의 불가능한 일이죠. 사이트마다 다른 비밀번호를 쓰라는데, 그걸 다 외우자니 머리가 터질 것 같고, 그렇다고 똑같은 비밀번호를 여기저기 돌려쓰자니 한 군데만 털려도 줄줄이 뚫릴까 봐 불안하고요.

그래서 많은 분들이 비밀번호 관리자를 쓰기 시작했는데, 막상 써보면 매달 나가는 구독료가 은근히 부담스럽습니다. 게다가 내 모든 비밀번호를 남의 회사 서버에 맡긴다는 게 어쩐지 찜찜하기도 하고요. 오늘은 이 두 가지 고민을 한 방에 해결해주는 셀프호스팅 비밀번호 관리자 Vaultwarden을 직접 구축하는 이야기를 들려드릴게요.

Vaultwarden이 홈 서버에 딱 맞는 이유

Vaultwarden은 한마디로 'Bitwarden의 가벼운 자체 호스팅 버전'입니다. 원래는 bitwarden_rs라는 이름으로 시작했는데요. 유명한 오픈소스 비밀번호 관리자인 Bitwarden의 공식 서버는 기능이 많은 만큼 꽤 무거워서, 개인용 작은 서버에 올리기에는 부담이 컸습니다. 그래서 한 개발자가 같은 기능을 Rust 언어로 가볍게 다시 구현한 것이 바로 Vaultwarden이에요.

이게 얼마나 가볍냐면, 도커 컨테이너 하나로 돌아가는데 아무것도 안 할 때는 메모리를 10MB 남짓밖에 안 씁니다. 라즈베리파이 같은 손바닥만 한 기기에 올려도 50MB 미만으로 거뜬히 동작하죠. 전기 요금 걱정 없이 24시간 켜둘 수 있다는 뜻입니다.

그러면서도 기능은 전혀 부족하지 않습니다. Bitwarden의 공식 클라이언트 API를 그대로 구현했기 때문에, 우리가 평소 쓰는 크롬·파이어폭스 확장 프로그램, 윈도우·맥 데스크톱 앱, 아이폰·안드로이드 앱이 전부 그대로 연결됩니다. 별도의 특별한 앱을 깔 필요 없이, 공식 Bitwarden 앱에서 서버 주소만 내 서버로 바꿔주면 끝이에요. 일회용 인증 코드(TOTP) 생성, SSH 키 보관, 첨부파일, 가족이나 팀과 공유하는 조직 기능까지 다 됩니다.

내 서버조차 비밀번호를 못 본다는 안심 구조

여기서 가장 중요한 보안 이야기를 짚고 갈게요. "그래도 내 서버가 해킹당하면 비밀번호가 다 털리는 거 아니야?"라고 걱정하실 수 있습니다. 그런데 Vaultwarden의 암호화 방식은 이 걱정을 상당 부분 덜어줍니다.

핵심은 모든 암호화가 서버가 아니라 내 기기에서 먼저 일어난다는 점입니다. 내가 입력한 비밀번호는 브라우저나 앱에서 AES-256 방식으로 단단히 암호화된 다음에야 서버로 전송됩니다. 그러니까 서버에는 처음부터 끝까지 알아볼 수 없는 암호 덩어리만 저장되는 거예요. Bitwarden이든 Vaultwarden이든 서버는 여러분의 원본 비밀번호를 단 한 번도 볼 수 없습니다. 이걸 흔히 '제로 지식(zero-knowledge)' 구조라고 부릅니다. 금고 열쇠는 오직 여러분만 가지고 있고, 서버는 그저 잠긴 금고를 보관만 하는 셈이죠.

Docker로 5분 만에 띄우기

이제 실제로 띄워볼까요? 도커가 설치된 서버라면 정말 간단합니다. 아래처럼 docker-compose 파일 하나만 작성하면 됩니다.

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "false"
    volumes:
      - ./vw-data:/data
    ports:
      - "8080:80"

여기서 한 가지 팁을 드리자면, SIGNUPS_ALLOWED 값을 false로 두는 것이 좋습니다. 처음에 내 계정을 하나 만들고 나서는 이 값을 꺼두어야, 누군가 내 서버 주소를 알아내더라도 함부로 계정을 만들지 못하거든요. 데이터는 vw-data 폴더에 차곡차곡 쌓이니 이 폴더만 잘 백업하면 됩니다.

컨테이너를 띄운 다음에는 공식 Bitwarden 앱이나 브라우저 확장 프로그램을 열고, 설정에서 서버 주소를 내 도메인으로 바꿔준 뒤 회원가입을 하면 끝입니다. 이때 만드는 마스터 비밀번호가 모든 금고를 여는 단 하나의 열쇠이니, 이것만큼은 길고 복잡하게, 그리고 절대 잊어버리지 않게 정하셔야 해요.

패스키와 2단계 인증으로 한 단계 더

요즘은 비밀번호 없이 로그인하는 패스키(Passkey) 시대가 열리고 있죠. 반가운 소식은 Vaultwarden도 패스키 저장을 지원한다는 점입니다. 여러 사이트의 패스키를 한곳에 모아 관리할 수 있어요. 다만 패스키 관련 표준이 자주 바뀌다 보니, 최신 규격 반영은 공식 Bitwarden보다 조금씩 늦을 수 있다는 점은 감안해 두시면 좋습니다.

그리고 금고 자체를 지키는 2단계 인증도 꼭 켜두세요. 마스터 비밀번호가 혹시 새어 나가더라도, 내 휴대폰의 인증 앱이 한 번 더 막아주니 훨씬 든든합니다.

안전하게 오래 쓰기 위한 마무리 점검

자체 호스팅의 묘미는 자유로움이지만, 그만큼 관리 책임도 내 몫입니다. 몇 가지만 챙기면 상용 서비스 못지않게 안전하게 운영할 수 있어요.

첫째는 HTTPS 적용입니다. 비밀번호처럼 민감한 정보를 다루는 만큼, 외부에서 접속하게 하려면 반드시 리버스 프록시를 앞에 두고 암호화된 연결(HTTPS)로만 열어야 합니다. 평문 연결은 절대 금물이에요. 둘째는 백업입니다. 데이터 폴더를 정기적으로 다른 저장소에 복사해두세요. 비밀번호 금고가 통째로 날아가면 그야말로 재앙이니, 백업만큼은 게으름을 부리면 안 됩니다. 셋째는 꾸준한 업데이트입니다. 보안 취약점은 계속 발견되고 고쳐지므로, 컨테이너 이미지를 주기적으로 최신 버전으로 갱신해주는 습관이 중요합니다.

결론: 내 비밀번호의 주인은 나입니다

지금까지 셀프호스팅 비밀번호 관리자 Vaultwarden을 직접 구축하고 안전하게 운영하는 방법을 살펴봤습니다. 초경량이라 라즈베리파이에서도 거뜬하고, 기기에서 먼저 암호화하는 구조 덕에 서버조차 내 비밀번호를 못 보며, HTTPS와 2단계 인증, 백업만 챙기면 든든한 나만의 금고가 완성된다는 이야기였죠.

매달 나가던 구독료에서 벗어나고, 내 가장 민감한 정보를 남의 손이 아닌 내 손안에 두는 경험은 생각보다 훨씬 큰 만족감을 줍니다. 무엇보다 '내 데이터의 주인은 나'라는 자체 호스팅의 철학을 가장 잘 보여주는 프로젝트가 바로 이 비밀번호 관리자가 아닐까 싶어요.

이미 홈 서버를 운영하고 계신 분이라면 주말에 한 시간만 투자해 한번 올려보시길 권합니다. 흩어져 있던 비밀번호들을 내 금고에 하나씩 모으다 보면, 디지털 생활이 한결 가볍고 안전해지는 기분을 분명 느끼실 거예요!

This post was drafted with the help of AI tools and personally reviewed and edited.

Share:

Thanks for reading!

If you found this post useful, check out more articles on the homepage.

Read More Posts