docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)
Vaultwarden是一個開源的密碼管理器,它是Bitwarden密碼管理器的自托管版本。它提供了類似于Bitwarden的功能,允許用戶安全地存儲和管理密碼、敏感數(shù)據(jù)和身份信息。
Vaultwarden的主要特點(diǎn)包括:
1. 安全的數(shù)據(jù)存儲:Vaultwarden使用加密算法對用戶的數(shù)據(jù)進(jìn)行加密,并將其存儲在數(shù)據(jù)庫中。用戶的數(shù)據(jù)只能通過唯一的加密密鑰進(jìn)行解密,確保數(shù)據(jù)的機(jī)密性。
2. 跨平臺支持:Vaultwarden可以用作獨(dú)立的Web應(yīng)用程序或與桌面客戶端、瀏覽器插件等配合使用,以滿足不同平臺和設(shè)備上的需求。
3. 密碼生成器:Vaultwarden提供了密碼生成器,可以幫助用戶生成強(qiáng)密碼,確保賬號的安全性。
4. 瀏覽器插件支持:Vaultwarden支持各種瀏覽器插件,方便用戶在瀏覽器中輕松地填充和保存密碼。
5. 多因素身份驗(yàn)證:Vaultwarden支持多種身份驗(yàn)證方式,如TOTP(基于時間的一次性密碼)和二次驗(yàn)證碼(如YubiKey),以增加登錄過程的安全性。
6. 團(tuán)隊(duì)協(xié)作:Vaultwarden支持團(tuán)隊(duì)協(xié)作,用戶可以與團(tuán)隊(duì)成員共享密碼和敏感數(shù)據(jù),方便安全地共享賬號和信息。
使用Vaultwarden,用戶可以集中管理他們的密碼和敏感數(shù)據(jù),并通過強(qiáng)加密和嚴(yán)格的訪問控制來保護(hù)這些數(shù)據(jù)。由于它是開源的,用戶可以自行托管并擁有完全控制權(quán),滿足對數(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軟件源
使用以下命令設(shè)置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服務(wù):
sudo systemctl start docker
6、驗(yàn)證安裝
執(zhí)行以下命令驗(yàn)證Docker是否安裝成功:
sudo docker run hello-world
如果輸出如下信息,說明Docker安裝成功:
Hello from Docker!
...
7、拉取Vaultwarden鏡像
執(zhí)行以下命令檢查當(dāng)前鏡像倉庫是否存在Vaultwarden鏡像:
sudo docker search vaultwarden

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

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

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

這里就不詳細(xì)講Nginx如何部署的,咱們直接講Nginx的配置,找到你的 nginx 配置文件路徑,假設(shè)是 /usr/local/nginx/conf/nginx.conf,添加如下配置,并將申請好的域名證書對應(yīng)的pem、key文件放在正確的位置,并重啟 nginx 服務(wù)。
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 選項(xiàng)并擁有更好的性能
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應(yīng)用程序。作為管理員,您可以創(chuàng)建,編輯和刪除用戶、組和條目,設(shè)置應(yīng)用程序選項(xiàng)并監(jiān)視應(yīng)用程序統(tǒng)計信息。管理員頁面需要管理員賬號和密碼才能訪問,可以通過在Vaultwarden服務(wù)器上運(yùn)行的特殊命令來創(chuàng)建管理員賬號。

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

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

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

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


使用新注冊的用戶登錄

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



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



至此我們的Vaultwarden密碼管理系統(tǒng)已經(jīng)介紹完了,其它的功能我這里就不一 一細(xì)說了各位大佬可以自行研究
到此這篇關(guān)于docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)的文章就介紹到這了,更多相關(guān)docker部署Vaultwarden內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 教你docker方式部署nacos
- 在docker中部署tomcat并且部署java應(yīng)用程序的步驟詳解
- Docker中部署mysql服務(wù)的方法及遇到的坑
- docker部署mysql后無法連接的解決方式
- Docker部署portainer的詳細(xì)步驟
- 在Docker上開始部署Python應(yīng)用的教程
- docker部署kafka的方法步驟
- docker安裝部署 onlyoffice的詳細(xì)過程
- Docker 部署 Prometheus的安裝詳細(xì)教程
- 使用docker部署java項(xiàng)目運(yùn)行環(huán)境的實(shí)現(xiàn)步驟
- 在docker中部署k8s的方法
相關(guān)文章
使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)
本文主要介紹了使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Docker中優(yōu)化Mysql運(yùn)行內(nèi)存的操作
這篇文章主要介紹了Docker當(dāng)中優(yōu)化Mysql運(yùn)行內(nèi)存的操作,經(jīng)過一番操作可以優(yōu)化為只占用100mb內(nèi)存,具體優(yōu)化方法及技巧跟隨小編一起看看吧2022-01-01
淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn)
本文主要介紹了淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Docker網(wǎng)段和內(nèi)網(wǎng)網(wǎng)段ip沖突導(dǎo)致無法訪問網(wǎng)絡(luò)的兩種解決方法
本文主要介紹了Docker網(wǎng)段和內(nèi)網(wǎng)網(wǎng)段沖突導(dǎo)致無法訪問網(wǎng)絡(luò)的兩種解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
解決Docker x509 insecure registry的問題
這篇文章主要介紹了解決Docker x509 insecure registry的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Docker 數(shù)據(jù)卷及數(shù)據(jù)容器詳細(xì)介紹及示例
這篇文章主要介紹了Docker 數(shù)據(jù)卷及數(shù)據(jù)容器詳細(xì)介紹及示例的相關(guān)資料,Docker 很強(qiáng)大,不僅部署維護(hù)提高效率,docker和宿主之間的數(shù)據(jù)共享以及docker間的數(shù)據(jù)共享需要好好研究一下,需要的朋友可以參考下2016-11-11

