docker部署Vaultwarden密碼共享管理系統(tǒng)的實現(xiàn)(圖文)
Vaultwarden是一個開源的密碼管理器,它是Bitwarden密碼管理器的自托管版本。它提供了類似于Bitwarden的功能,允許用戶安全地存儲和管理密碼、敏感數(shù)據(jù)和身份信息。
Vaultwarden的主要特點包括:
1. 安全的數(shù)據(jù)存儲:Vaultwarden使用加密算法對用戶的數(shù)據(jù)進行加密,并將其存儲在數(shù)據(jù)庫中。用戶的數(shù)據(jù)只能通過唯一的加密密鑰進行解密,確保數(shù)據(jù)的機密性。
2. 跨平臺支持:Vaultwarden可以用作獨立的Web應用程序或與桌面客戶端、瀏覽器插件等配合使用,以滿足不同平臺和設備上的需求。
3. 密碼生成器:Vaultwarden提供了密碼生成器,可以幫助用戶生成強密碼,確保賬號的安全性。
4. 瀏覽器插件支持:Vaultwarden支持各種瀏覽器插件,方便用戶在瀏覽器中輕松地填充和保存密碼。
5. 多因素身份驗證:Vaultwarden支持多種身份驗證方式,如TOTP(基于時間的一次性密碼)和二次驗證碼(如YubiKey),以增加登錄過程的安全性。
6. 團隊協(xié)作:Vaultwarden支持團隊協(xié)作,用戶可以與團隊成員共享密碼和敏感數(shù)據(jù),方便安全地共享賬號和信息。
使用Vaultwarden,用戶可以集中管理他們的密碼和敏感數(shù)據(jù),并通過強加密和嚴格的訪問控制來保護這些數(shù)據(jù)。由于它是開源的,用戶可以自行托管并擁有完全控制權,滿足對數(shù)據(jù)隱私和安全性有更高要求的用戶需求。
下面我將介紹Vaultwarden的docker部署方式:
1、卸載舊版本
如果你之前已經(jīng)安裝過Docker,請先卸載舊版本。執(zhí)行以下命令卸載Docker:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine2、安裝依賴包
在安裝Docker之前,需要安裝一些必要的依賴包。執(zhí)行以下命令安裝依賴包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3、添加Docker軟件源
使用以下命令設置Docker官方GPG密鑰:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、安裝Docker
執(zhí)行以下命令安裝Docker:
sudo yum makecache fast
sudo yum -y install docker-ce
5、啟動Docker
執(zhí)行以下命令啟動Docker服務:
sudo systemctl start docker
6、驗證安裝
執(zhí)行以下命令驗證Docker是否安裝成功:
sudo docker run hello-world
如果輸出如下信息,說明Docker安裝成功:
Hello from Docker!
...
7、拉取Vaultwarden鏡像
執(zhí)行以下命令檢查當前鏡像倉庫是否存在Vaultwarden鏡像:
sudo docker search vaultwarden

執(zhí)行以下命令拉取 Vaultwarden鏡像:
sudo docker pull vaultwarden/server

8、安裝MySQL5.7數(shù)據(jù)庫
由于官方鏡像使用的是微軟的SQLserver不方便我們后期的維護,這里就需要部署MySQL以方便我們后期對Vaultwarden的維護,這就不講MySQL是如何部署的,不會請自行百度。
9、啟動Vaultwarden容器
執(zhí)行以下命令啟動啟動Vaultwarden容器:
docker run -d --name vaultwarden --restart=always -e WEBSOCKET_ENABLED=true -e SIGNUPS_ALLOWED=false -e DOMAIN=https://vault.moutai.com.cn -e ADMIN_TOKEN=eMEt*W4ay7 -e DATABASE_URL=mysql://vault:bBzExr8Lj3NWdnsR@10.0.11.22:3306/vault -v /data/bitwarden/:/data/ -p 8080:80 -p 3012:3012 vaultwarden/server:latest
以下是啟動命令中使用的選項和參數(shù)的解釋:
- -d:以守護進程模式運行容器。
- --name vaultwarden:指定容器的名稱為"vaultwarden";
- --restart=always:設置容器在重啟時自動啟動;
- -e WEBSOCKET_ENABLED=true:啟用WebSocket支持;
- -e SIGNUPS_ALLOWED=false:禁止用戶自行注冊新賬戶;
- -e DOMAIN=https://vault.moutai.com.cn:設置Vaultwarden的域名;
- -e ADMIN_TOKEN=eMEt*W4ay7:設置管理員令牌(密碼);
- -e DATABASE_URL=mysql://vault:bBzExr8Lj3NWdnsR@10.0.11.22:3306/vault:指定MySQL數(shù)據(jù)庫的連接URL;
- -v /data/bitwarden/:/data/:將宿主機上的/data/bitwarden/目錄掛載到容器內的/data/目錄,用于持久化數(shù)據(jù);
- -p 8080:80 -p 3012:3012:將宿主機的8080端口映射到容器的80端口,以及3012端口映射到容器的3012端口;
- vaultwarden/server:latest:運行最新版本的Vaultwarden服務器鏡像;

10、 域名解析
后端的 Bitwarden 服務已經(jīng)成功運行,前端如何訪問呢?
有兩種方法:
- 直接使用
https://{ip}:{password}? 訪問 web - 申請個域名,使用
https://{domain}? 訪問 web
使用 ip 訪問,記得去設置安全組,開放端口
使用域名訪問,可以使用子域名,省得再申請域名,個人推薦使用域名,使用上更方便。
在云廠商上設置好 DNS 解析后,還需要設置下 nginx 的反向代理,才可以使用域名進行訪問。
11、部署Nginx反向代理
這里值得說的是如果你不部署Nginx反向代理你是無法打開Vaultwarden的。

這里就不詳細講Nginx如何部署的,咱們直接講Nginx的配置,找到你的 nginx 配置文件路徑,假設是 /usr/local/nginx/conf/nginx.conf,添加如下配置,并將申請好的域名證書對應的pem、key文件放在正確的位置,并重啟 nginx 服務。
user www www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 51200;
multi_accept on;
}
http {
include mime.types;
#include luawaf.conf;
include proxy.conf;
default_type application/octet-stream;
server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server_tokens off;
access_log off;
include /www/server/panel/vhost/nginx/*.conf;
# 'upstream' 指令確保你有一個 http/1.1 連接
# 這里啟用了 keepalive 選項并擁有更好的性能
upstream vaultwarden-default {
zone vaultwarden-default 64k;
server 127.0.0.1:8080;
keepalive 2;
}
upstream vaultwarden-ws {
zone vaultwarden-ws 64k;
server 127.0.0.1:3012;
keepalive 2;
}
server {
listen 888;
server_name phpmyadmin;
index index.html index.htm index.php;
root /www/server/phpmyadmin;
#error_page 404 /404.html;
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
access_log /www/wwwlogs/access.log;
}
server {
listen 80;
listen [::]:80;
server_name vault.moutai.com.cn;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name vault.moutai.com.cn;
ssl_certificate /etc/letsencrypt/live/moutai.com.cn/10095543__moutai.com.cn.pem;
ssl_certificate_key /etc/letsencrypt/live/moutai.com.cn/10095543__moutai.com.cn.key;
ssl_trusted_certificate /etc/letsencrypt/live/moutai.com.cn/10095543__moutai.com.cn.pem;
client_max_body_size 128M;
location / {
proxy_http_version 1.1;
proxy_set_header "Connection" "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://vaultwarden-default;
}
location /notifications/hub/negotiate {
proxy_http_version 1.1;
proxy_set_header "Connection" "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://vaultwarden-default;
}
location /notifications/hub {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Forwarded $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://vaultwarden-ws;
}
}
}
12、登錄Vaultwarden管理平臺
管理員頁面用于管理Vaultwarden應用程序。作為管理員,您可以創(chuàng)建,編輯和刪除用戶、組和條目,設置應用程序選項并監(jiān)視應用程序統(tǒng)計信息。管理員頁面需要管理員賬號和密碼才能訪問,可以通過在Vaultwarden服務器上運行的特殊命令來創(chuàng)建管理員賬號。

輸入我們在創(chuàng)建容器時設置的管理員令牌來登錄。

以下是Vaultwarden管理員頁面的一些功能:
- 用戶和組管理:管理員可以創(chuàng)建、編輯和刪除Vaultwarden應用程序中的用戶和組。管理員還可以為用戶分配和管理組和條目訪問權限。
- 應用程序選項設置:管理員可以配置Vaultwarden應用程序的選項,例如應用程序語言、加密設置和自動鎖定時間等。
- 安全審計日志:管理員可以查看Vaultwarden應用程序的安全審計日志,以監(jiān)視各種安全事件和故障情況。
- 用戶密碼策略:管理員可以設置并強制實施強密碼策略,例如密碼長度、復雜性和有效期限。
- 數(shù)據(jù)備份和恢復:管理員可以定期備份Vaultwarden應用程序的數(shù)據(jù),并在需要時對數(shù)據(jù)進行恢復。
- 應用程序更新:管理員可以在更新可用時升級Vaultwarden應用程序到最新版本,以確保應用程序運行的安全和穩(wěn)定性。
這些功能使管理員能夠更好地管理Vaultwarden應用程序并確保其運行的安全和可靠性。
需要注意的是現(xiàn)在你的密碼管理服務器是不允許新用戶注冊的需要再管理界面將其打開,允許新用戶注冊登錄。

然后點擊保存配置,這時你才能注冊新用戶。

13、登錄Vaultwarden用戶界面
注冊新用戶


使用新注冊的用戶登錄

14、新建組織
Vaultwarden提供了以下一些組織功能:
- 組織創(chuàng)建:管理員可以創(chuàng)建組織,將用戶分配到組織中。組織可以根據(jù)不同的團隊、部門或項目進行組織和管理。
- 權限管理:管理員可以為組織中的用戶分配不同的權限級別,以控制他們對組織內密碼和保密信息的訪問和操作權限。
- 組織共享:管理員可以在組織內共享密碼和保密信息。這使得團隊成員能夠方便地共享和訪問共享的敏感信息。
- 組織級別的密碼策略:管理員可以為組織設置密碼策略,強制組織內的所有用戶遵守相同的密碼要求和安全標準。
- 組織審計:管理員可以查看和監(jiān)控組織的活動日志和審計記錄,以便跟蹤和審計組織成員的操作和變更。
通過這些組織功能,Vaultwarden使得團隊和組織能夠更好地協(xié)作、共享和管理敏感信息,并提供了更好的安全性和控制。



在組織中通過新建集合然后再集合內新建項目(密碼),通過集合去分配權限,單獨或多個授權給用戶,已達到權限控制的效果。



至此我們的Vaultwarden密碼管理系統(tǒng)已經(jīng)介紹完了,其它的功能我這里就不一 一細說了各位大佬可以自行研究
到此這篇關于docker部署Vaultwarden密碼共享管理系統(tǒng)的實現(xiàn)(圖文)的文章就介紹到這了,更多相關docker部署Vaultwarden內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker安裝MongoDB的過程(mongo.latest)
MongoDB是一種高性能、靈活的數(shù)據(jù)庫,特別適合處理大量非結構化數(shù)據(jù),它采用文檔數(shù)據(jù)模型,支持復雜的數(shù)據(jù)結構,提供類似面向對象的查詢語言,本文給大家介紹Docker安裝MongoDB的過程(mongo.latest),感興趣的朋友一起看看吧2024-11-11
教你在docker?中搭建?PHP8?+?Apache?環(huán)境的過程
這篇文章主要介紹了docker中搭建?PHP8?+?Apache?環(huán)境,文章以安裝?pdo-mysql?擴展為例介紹php安裝擴展的詳細過程,需要的朋友可以參考下2022-03-03
Docker部署MySQL8集群(一主二從)的實現(xiàn)步驟
本文主要介紹了Docker部署MySQL8集群,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07
Docker容器內不能聯(lián)網(wǎng)的6種解決方案
今天小編就為大家分享一篇關于Docker容器內不能聯(lián)網(wǎng)的6種解決方案,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10

