Vaultwarden 1.36.0: Hướng dẫn nâng cấp
Tự lưu trữ (Self-hosting) có nghĩa là bạn chính là đội ngũ bảo mật của chính mình.
Trên đám mây, một công ty sẽ vá các lỗ hổng trước khi bạn kịp nhận ra. Với Vaultwarden, bạn là người chịu rủi ro. Nếu bạn bỏ qua các bản cập nhật, bạn đang đối mặt với các lỗ hổng đã được biết đến.
Vaultwarden 1.36.0 khắc phục hai lĩnh vực quan trọng: • Xác thực bảng điều khiển quản trị (Admin panel). • Xử lý mã thông báo phiên (Session token).
Bảng điều khiển quản trị là một mục tiêu phổ biến. Nhiều người dùng chạy nó trên một tên miền phụ (subdomain) công khai. Nếu bạn không chặn đường dẫn /admin ở cấp độ proxy, bạn đang gặp rủi ro.
Các cải tiến chính trong 1.36.0:
• Giới hạn tốc độ phía máy chủ (Server-side rate limiting): Ứng dụng hiện xử lý việc giới hạn tốc độ một cách nội bộ. Nó không còn phụ thuộc hoàn toàn vào cấu hình Nginx hoặc Caddy của bạn. Điều này ngăn chặn kẻ tấn công vượt qua các giới hạn bằng cách sử dụng các tiêu đề IP giả mạo.
• Bảo mật phiên tốt hơn: Máy chủ hiện kiểm tra thời hạn hết hạn của mã thông báo (token) trong mỗi lần gọi API. Điều này ngăn chặn các mã thông báo bị đánh cắp hoạt động lâu hơn mức cần thiết.
• Cập nhật các phụ thuộc (dependencies): Các bản sửa lỗi cho OpenSSL và tower-http giúp giảm rủi ro bị tấn công từ chối dịch vụ (DoS).
Cách nâng cấp mà không làm mất dữ liệu:
Sao lưu cơ sở dữ liệu của bạn một cách chính xác. Đừng chỉ sao chép các tệp. Hãy sử dụng lệnh sao lưu SQLite bên trong container để tránh bị lỗi dữ liệu (corruption). Chạy:
docker exec vaultwarden sqlite3 /data/db.sqlite3 '.backup /data/db_backup.sqlite3'Xác minh bản sao lưu. Chạy kiểm tra tính toàn vẹn trên tệp mới. Nếu nó không hiển thị "ok", đừng tiếp tục.
Sử dụng phương pháp nâng cấp nguyên tử (atomic upgrade). Đừng dừng container của bạn trước. Điều này sẽ gây ra thời gian gián đoạn (downtime). Thay vào đó, hãy tải (pull) hình ảnh (image) mới trong khi hình ảnh cũ vẫn đang chạy, sau đó tạo lại dịch vụ. Chạy:
docker compose pull vaultwardendocker compose up -d vaultwardenThiết lập tiêu đề IP của bạn. Để đảm bảo việc giới hạn tốc độ hoạt động, hãy cho Vaultwarden biết proxy của bạn sử dụng tiêu đề nào. Thêm dòng này vào biến môi trường của bạn:
IP_HEADER=X-Forwarded-For
Tăng cường bảo mật cho thiết lập của bạn:
• Ngừng sử dụng ADMIN_TOKEN dưới dạng văn bản thuần túy (plaintext). Hãy sử dụng mã băm argon2 thay thế.
• Giới hạn đường dẫn /admin trong mạng nội bộ của bạn thông qua reverse proxy.
• Đặt SIGNUPS_ALLOWED thành false nếu bạn là người dùng duy nhất.
Việc nâng cấp chỉ mất năm phút. Chuẩn bị kỹ lưỡng mất mười phút. Đừng bỏ qua bước sao lưu.
