Tự host Vaultwarden trên NAS để lưu trữ mật khẩu
Cuộc sống online gắn liền với các loại tài khoản, và đứng trước những rủi ro của thế giới internet rộng lớn, chúng ta cần mật khẩu mạnh, ít trùng lặp, xác thực 2 bước. Đó là lý do sử dụng các ứng dụng lưu trữ mật khẩu là một nhu cầu thiết yếu.
Nhưng việc lưu trữ mật khẩu trên server của một ứng dụng nào đó vẫn khiến bạn chưa đủ yên tâm, cũng như lý do mà bạn không muốn gửi gắm dữ liệu đến nơi khác nên mới sắm NAS để bảo toàn tính riêng tư, chắc hẳn bạn cũng muốn tự lưu trữ mật khẩu của mình tại nơi có thể tự kiểm soát được.
Bài viết này mình sẽ chia sẻ cách để tự host Vaultwarden để lưu trữ mật khẩu trên NAS Synology và sử dụng phần mềm lưu trữ mật khẩu đa nền tảng Bitwarden khá nổi tiếng với server tự host. Bài viết này thuộc chuỗi bài viết: Tất tần tật về ổ cứng mạng (NAS) cho người dùng cá nhân và gia đình
Miễn trừ trách nhiệm: Toàn bộ hướng dẫn trong bài này chia sẻ cách để các bạn tự host server lưu trữ mật khẩu thông qua Vaultwarden và Bitwarden, mình không chịu trách nhiệm cho bất cứ vấn đề hay rủi ro gì liên quan đến ứng dụng, tài khoản, mật khẩu, thiết bị, bảo mật… của các bạn. Các bạn cần tìm hiểu kĩ, hiểu các bạn đang làm gì và tự chịu rủi ro khi làm (theo những hướng dẫn này).
Nội dung chính
Bitwarden và Vaultwarden là gì?
Bitwarden là một ứng dụng quản lý mật khẩu đa nền tảng, được mã hóa đầu cuối ở mọi nền tảng giúp dữ liệu của các bạn an toàn. Hỗ trợ nhiều tính năng như tự động lưu, tự động điền mật khẩu, tự động điền mã OTP… Quan trọng hơn, Bitwarden ngoài tính năng lưu trữ trên server của công ty, cũng cho phép các bạn tự host server của các bạn để tự lưu trữ mật khẩu.
Nhưng, thay vì tự host server của Bitwarden, chúng ta host một ứng dụng khác có tên là Vaultwarden. Vaultwarden là máy chủ quản lý mật khẩu mã nguồn mở, do cộng đồng tự phát triển dựa trên API của Bitwarden, và tương thích với các ứng dụng Bitwarden chính thức, giúp người dùng tự lưu trữ (self-host) dữ liệu mật khẩu của mình, dễ cài đặt và có đủ tính năng (bao gồm cả một số tính năng mà phải trả phí nếu dùng server của Bitwarden, ví dụ như lưu trữ OTP).
Vaultwarden độc lập với Bitwarden. Tuy nhiên, một trong những người đóng góp tích cực của Vaultwarden được Bitwarden tuyển dụng và được phép đóng góp vào dự án Vaultwarden theo thời gian riêng của họ. Những đóng góp này độc lập với Bitwarden và được các người đóng góp khác xem xét.
Tóm lại, các bạn sẽ cài Vaultwarden lên NAS, còn cài Bitwarden lên toàn bộ các thiết bị client như điện thoại, laptop và cấu hình để chúng nó hoạt động với nhau.
Cài đặt Vaultwarden
Đầu tiên các bạn vào File Station, tạo một thư mục con tên là ‘vaultwarden’ (không viết hoa) bên trong thư mục docker. Đây sẽ là nơi để sau này chúng ta gán container vào để lưu dữ liệu của vaultwarden.

Sau đó, các bạn mở Contain Manager, vào mục Registry, tìm ‘vaultwarden’, sẽ thấy vaultwarden/server, sau đó ấn Download và chờ một vài phút để tải về hoàn tất.

Sau đó vào tab Container rồi ấn Create.

Màn hình cài đặt đầu tiên, chọn Image là vaultwarden/server trong danh sách, đặt tên cho container theo ý bạn, và Tick vào mục Enable auto-restart

Màn hình cài đặt thứ hai, mục Local Port các bạn điền port các bạn muốn (như ảnh mình ví dụ là 12345), phần folder các bạn chọn Add folder, rồi chọn đến folder docker/vaultwarden đã tạo trước đó. Ô bên cạnh các bạn điền ‘/data’. Sau đó ấn Next.

Kéo xuống phần Environment, ấn vào nút Add. Ô Variable điền ‘ADMIN_TOKEN’ và ô Value các bạn tự chọn một mật khẩu Admin, càng mạnh càng tốt. Đây sẽ là mật khẩu để truy cập trang quản trị của server Vaultwarden

Màn hình cài đặt thứ 3 là để các bạn xem lại các thông tin cấu hình container, nếu đúng hết rồi thì các bạn ấn Done.

Lúc này Vaultwarden Server đã cài đặt xong. Nhưng còn đến bước cấu hình thì sẽ gian nan hơn chút đỉnh.
Cấu hình Vaultwarden server
Vaultwarden server sẽ chỉ hoạt động khi chúng ta sử dụng kết nối HTTPS với một tên miền có chứng chỉ TLS, vì vậy các bạn có một vài cách đơn giản sau để có tên miền:
- Cách 1 (chưa thật sự an toàn): Cài đặt DDNS hostname của Synology (free) tại mục Control Panel – External Access – DDNS. Sau đó cấu hình port forwarding trên Router (Gateway) để có thể truy cập được vào NAS thông qua hostname này. Rồi sau đó vào Control Panel – Sercurity – Certificate để lấy chứng chỉ TLS cho hostname đã cài đặt.
- Cách 2 (an toàn hơn, khuyến cáo dùng cách này): Cài đặt và sử dụng Tailscale, sẽ có MagicDNS hostname của Tailscale, và cấu hình TLS của Tailscale lên NAS, mình có hướng dẫn chi tiết chi tiết tại bài viết này: Sử dụng Tailscale với Synology NAS
Bài viết này mình sẽ tiếp tục hướng dẫn theo cách 2 là cách mình đang sử dụng, nếu các bạn dùng cách 1 thì phương pháp cũng tương đương.
Cấu hình Reverse Proxy trên NAS
Các bạn vào Control Panel – Login Portal – Advanced – Reverse Proxy – Create và điền các thông tin như sau:
- Name: Tùy ý
- Source
- Protocal: HTTPS
- Hostname: Điền hostname bạn đã cài trong DDNS hoặc hostname của Tailscale (dạng devicename.tailcode.ts.net)
- Port: điền port các bạn muốn (không trùng với port của vaultwarden đã cài trước đó) (ví dụ: 54321)
- Tick vào ô Enable HSTS
- Destination
- Protocal: HTTP
- Hostname: localhost
- Port: điền port của vaultwarden mà các bạn đã cài đặt ở phần trước. (ví dụ 12345)

Sang Tab Custom Header, chọn Create -> WebSocket, sẽ có 2 mục hiện ra như hình, sau đó ấn Save lại là xong.

Nếu cấu hình đúng, khi truy cập domain đã cài đặt + port (ví dụ: https://devicename.tailcode.ts.net:54321) sẽ thấy màn hình đăng nhập Vaultwander nền Web.

Cấu hình Vaultwarden trong trang Admin
Các bạn truy cập trang Admin Panel của vaultwarden bằng cách thêm /admin ở cuối đường link (ví dụ: https://devicename.tailcode.ts.net:54321/admin), sẽ thấy 1 ô để nhập admin-token, đó chính là mật khẩu mà bạn đã tạo ở phần trước.

Sau khi đăng nhập, các bạn mở phần General Settings, tại mục Domain URL, các bạn điền domain đã cài đặt, đầy đủ cả https và port theo dạng https://devicename.tailcode.ts.net:54321

Kế tiếp, các bạn kéo xuống phần SMTP Email Settings. Đây là để cấu hình giúp server Vaultwarden có thể gửi email để invite user, hoặc khi bạn quên mật khẩu để vào vault thì có thể nhận được email để đặt lại mật khẩu, và nhiều tính năng khác.
Vì vậy, cũng cần phải cài đặt để dùng được mọi tính năng. Các bạn có thể tự cài đặt thông qua SMTP riêng, hoặc có thể sử dụng SMTP của Google với email cá nhân.
- Host: smtp.gmail.com
- Secure SMTP: starttls
- Port: 587
- From Name: tùy ý
- From Address: điền email của bạn
- Password: Các bạn sẽ cần lấy App Password, mình hướng dẫn ở bên dưới. Không phải Password của tài khoản Gmail đâu.

Để tạo App Password bằng Gmail cá nhân, các bạn vào trang này: https://myaccount.google.com/apppasswords
Sau đó đăng nhập tài khoản email Google của bạn, sẽ thấy mục để điền tên ứng dụng, các bạn điền bất kì. Sau đó ấn Tạo.
Các bạn sẽ được cấp 1 chuỗi mật khẩu 16 kí tự. Các bạn copy chuỗi đó và điền vào mục Password trong cài đặt SMTP của Vaultwarden Admin Panel.

Sau đó kéo xuống cuối cùng và ấn Save. Rồi quay trở lại mục SMTP để gửi thử Test email, nếu mọi thứ hoạt động, bạn sẽ nhận được email từ server vaultwarden mà các bạn đang tự host.

Như vậy là đã cấu hình xong trong trang Admin.
Để xác nhận những cấu hình đó đã chính xác và server đã có thể hoạt động, các bạn vào trang Diagnostics, nếu các bạn thấy các mục trong phần Checks đều có màu xanh, không có màu đỏ tức là đã cấu hình đúng.

Như vậy là server đã hoạt động, giờ các bạn có thể cài ứng dụng client lên các thiết bị để sử dụng rồi.
Tạo tài khoản và sử dụng
Sau khi xong xuôi, các bạn có thể truy cập Vaultwarden thông qua hostname và port đã cài bằng trình duyệt, tạo tài khoản và bắt đầu sử dụng. Có thể import password từ các ứng dụng khác sang tại mục Tools – Import data, có danh sách rất nhiều các ứng dụng lưu trữ password nổi tiếng như 1Password, hoặc import password từ Chrome, Safari iOS…

Đối với App trên máy tính, điện thoại, hay extensions của trình duyệt, các bạn tìm ứng dụng Bitwarden, tại màn hình đăng nhập sẽ có một mục là Logging in on, các bạn ấn vào đó rồi chọn Self-hosted, sẽ có pop-up hiện lên để các bạn điều Server URL, dùng hostname + port mà các bạn đã cài đặt rồi ấn lưu lại là được.

Sau đó đăng nhập bình thường với tài khoản đã tạo, ứng dụng sẽ hướng dẫn bạn cấu hình Auto-Fill cho điện thoại, máy tính, trình duyệt v.v… và có thể sử dụng đa nền tảng rất tốt.
Ứng dụng Bitwarden khi sử dụng với server self-hosted vaultwarden cũng có thể add thêm cả mã OTP xác thực 2 lớp cho tài khoản, hoặc PassKey, giúp các bạn tiện lợi hơn trong quá trình bảo mật các tài khoản.
Và kể cả khi thiết bị offline, không có mạng để kết nối tới Server, các bạn vẫn có thể sử dụng ứng dụng như bình thường, khi nào có kết nối tới server thì dữ liệu sẽ lại được sync với server.
Như vậy là mình đã hướng dẫn xong cách sử dụng Vaultwarden để tự host mật khẩu với NAS Synology. Cám ơn các bạn đã theo dõi bài viết.
Miễn trừ trách nhiệm: Toàn bộ hướng dẫn trong bài này chia sẻ cách để các bạn tự host server lưu trữ mật khẩu thông qua Vaultwarden và Bitwarden, mình không chịu trách nhiệm cho bất cứ vấn đề hay rủi ro gì liên quan đến ứng dụng, tài khoản, mật khẩu, thiết bị, bảo mật… của các bạn. Các bạn cần tìm hiểu kĩ, hiểu các bạn đang làm gì và tự chịu rủi ro khi làm (theo những hướng dẫn này).
Nếu thấy nội dung bài viết hữu ích, hãy chia sẻ cho bạn bè và người thân. Đừng quên theo dõi Ngon Bổ Xẻ qua Facebook và Youtube để luôn cập nhật các nội dung mới nhất. Ngoài ra, mình cũng có lập Group FB chuyên chia sẻ các deal hời cho anh em về công nghệ, điện từ, gia dụng… các bạn cũng có thể tham gia nha. Một lần nữa, chân thành cám ơn các bạn và hẹn gặp lại trong những nội dung kế tiếp ❤️
Chia sẻ bài viết:
