docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)
Vaultwarden是一個(gè)開(kāi)源的密碼管理器,它是Bitwarden密碼管理器的自托管版本。它提供了類(lèi)似于Bitwarden的功能,允許用戶(hù)安全地存儲(chǔ)和管理密碼、敏感數(shù)據(jù)和身份信息。
Vaultwarden的主要特點(diǎn)包括:
1. 安全的數(shù)據(jù)存儲(chǔ):Vaultwarden使用加密算法對(duì)用戶(hù)的數(shù)據(jù)進(jìn)行加密,并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶(hù)的數(shù)據(jù)只能通過(guò)唯一的加密密鑰進(jìn)行解密,確保數(shù)據(jù)的機(jī)密性。
2. 跨平臺(tái)支持:Vaultwarden可以用作獨(dú)立的Web應(yīng)用程序或與桌面客戶(hù)端、瀏覽器插件等配合使用,以滿(mǎn)足不同平臺(tái)和設(shè)備上的需求。
3. 密碼生成器:Vaultwarden提供了密碼生成器,可以幫助用戶(hù)生成強(qiáng)密碼,確保賬號(hào)的安全性。
4. 瀏覽器插件支持:Vaultwarden支持各種瀏覽器插件,方便用戶(hù)在瀏覽器中輕松地填充和保存密碼。
5. 多因素身份驗(yàn)證:Vaultwarden支持多種身份驗(yàn)證方式,如TOTP(基于時(shí)間的一次性密碼)和二次驗(yàn)證碼(如YubiKey),以增加登錄過(guò)程的安全性。
6. 團(tuán)隊(duì)協(xié)作:Vaultwarden支持團(tuán)隊(duì)協(xié)作,用戶(hù)可以與團(tuán)隊(duì)成員共享密碼和敏感數(shù)據(jù),方便安全地共享賬號(hào)和信息。
使用Vaultwarden,用戶(hù)可以集中管理他們的密碼和敏感數(shù)據(jù),并通過(guò)強(qiáng)加密和嚴(yán)格的訪(fǎng)問(wèn)控制來(lái)保護(hù)這些數(shù)據(jù)。由于它是開(kāi)源的,用戶(hù)可以自行托管并擁有完全控制權(quán),滿(mǎn)足對(duì)數(shù)據(jù)隱私和安全性有更高要求的用戶(hù)需求。
下面我將介紹Vaultwarden的docker部署方式:
1、卸載舊版本
如果你之前已經(jīng)安裝過(guò)Docker,請(qǐng)先卸載舊版本。執(zhí)行以下命令卸載Docker:
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2、安裝依賴(lài)包
在安裝Docker之前,需要安裝一些必要的依賴(lài)包。執(zhí)行以下命令安裝依賴(lài)包:
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、啟動(dòng)Docker
執(zhí)行以下命令啟動(dòng)Docker服務(wù):
sudo systemctl start docker
6、驗(yàn)證安裝
執(zhí)行以下命令驗(yàn)證Docker是否安裝成功:
sudo docker run hello-world
如果輸出如下信息,說(shuō)明Docker安裝成功:
Hello from Docker!
...
7、拉取Vaultwarden鏡像
執(zhí)行以下命令檢查當(dāng)前鏡像倉(cāng)庫(kù)是否存在Vaultwarden鏡像:
sudo docker search vaultwarden
執(zhí)行以下命令拉取 Vaultwarden鏡像:
sudo docker pull vaultwarden/server
8、安裝MySQL5.7數(shù)據(jù)庫(kù)
由于官方鏡像使用的是微軟的SQLserver不方便我們后期的維護(hù),這里就需要部署MySQL以方便我們后期對(duì)Vaultwarden的維護(hù),這就不講MySQL是如何部署的,不會(huì)請(qǐng)自行百度。
9、啟動(dòng)Vaultwarden容器
執(zhí)行以下命令啟動(dòng)啟動(dòng)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
以下是啟動(dòng)命令中使用的選項(xiàng)和參數(shù)的解釋?zhuān)?/p>
- -d:以守護(hù)進(jìn)程模式運(yùn)行容器。
- --name vaultwarden:指定容器的名稱(chēng)為"vaultwarden";
- --restart=always:設(shè)置容器在重啟時(shí)自動(dòng)啟動(dòng);
- -e WEBSOCKET_ENABLED=true:?jiǎn)⒂肳ebSocket支持;
- -e SIGNUPS_ALLOWED=false:禁止用戶(hù)自行注冊(cè)新賬戶(hù);
- -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ù)庫(kù)的連接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)行,前端如何訪(fǎng)問(wèn)呢?
有兩種方法:
- 直接使用
https://{ip}:{password}
? 訪(fǎng)問(wèn) web - 申請(qǐng)個(gè)域名,使用
https://{domain}
? 訪(fǎng)問(wèn) web
使用 ip 訪(fǎng)問(wèn),記得去設(shè)置安全組,開(kāi)放端口
使用域名訪(fǎng)問(wèn),可以使用子域名,省得再申請(qǐng)域名,個(gè)人推薦使用域名,使用上更方便。
在云廠(chǎng)商上設(shè)置好 DNS 解析后,還需要設(shè)置下 nginx 的反向代理,才可以使用域名進(jìn)行訪(fǎng)問(wèn)。
11、部署Nginx反向代理
這里值得說(shuō)的是如果你不部署Nginx反向代理你是無(wú)法打開(kāi)Vaultwarden的。
這里就不詳細(xì)講Nginx如何部署的,咱們直接講Nginx的配置,找到你的 nginx 配置文件路徑,假設(shè)是 /usr/local/nginx/conf/nginx.conf,添加如下配置,并將申請(qǐng)好的域名證書(shū)對(duì)應(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' 指令確保你有一個(gè) 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管理平臺(tái)
管理員頁(yè)面用于管理Vaultwarden應(yīng)用程序。作為管理員,您可以創(chuàng)建,編輯和刪除用戶(hù)、組和條目,設(shè)置應(yīng)用程序選項(xiàng)并監(jiān)視應(yīng)用程序統(tǒng)計(jì)信息。管理員頁(yè)面需要管理員賬號(hào)和密碼才能訪(fǎng)問(wèn),可以通過(guò)在Vaultwarden服務(wù)器上運(yùn)行的特殊命令來(lái)創(chuàng)建管理員賬號(hào)。
輸入我們?cè)趧?chuàng)建容器時(shí)設(shè)置的管理員令牌來(lái)登錄。
以下是Vaultwarden管理員頁(yè)面的一些功能:
- 用戶(hù)和組管理:管理員可以創(chuàng)建、編輯和刪除Vaultwarden應(yīng)用程序中的用戶(hù)和組。管理員還可以為用戶(hù)分配和管理組和條目訪(fǎng)問(wèn)權(quán)限。
- 應(yīng)用程序選項(xiàng)設(shè)置:管理員可以配置Vaultwarden應(yīng)用程序的選項(xiàng),例如應(yīng)用程序語(yǔ)言、加密設(shè)置和自動(dòng)鎖定時(shí)間等。
- 安全審計(jì)日志:管理員可以查看Vaultwarden應(yīng)用程序的安全審計(jì)日志,以監(jiān)視各種安全事件和故障情況。
- 用戶(hù)密碼策略:管理員可以設(shè)置并強(qiáng)制實(shí)施強(qiáng)密碼策略,例如密碼長(zhǎng)度、復(fù)雜性和有效期限。
- 數(shù)據(jù)備份和恢復(fù):管理員可以定期備份Vaultwarden應(yīng)用程序的數(shù)據(jù),并在需要時(shí)對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。
- 應(yīng)用程序更新:管理員可以在更新可用時(shí)升級(jí)Vaultwarden應(yīng)用程序到最新版本,以確保應(yīng)用程序運(yùn)行的安全和穩(wěn)定性。
這些功能使管理員能夠更好地管理Vaultwarden應(yīng)用程序并確保其運(yùn)行的安全和可靠性。
需要注意的是現(xiàn)在你的密碼管理服務(wù)器是不允許新用戶(hù)注冊(cè)的需要再管理界面將其打開(kāi),允許新用戶(hù)注冊(cè)登錄。
然后點(diǎn)擊保存配置,這時(shí)你才能注冊(cè)新用戶(hù)。
13、登錄Vaultwarden用戶(hù)界面
注冊(cè)新用戶(hù)
使用新注冊(cè)的用戶(hù)登錄
14、新建組織
Vaultwarden提供了以下一些組織功能:
- 組織創(chuàng)建:管理員可以創(chuàng)建組織,將用戶(hù)分配到組織中。組織可以根據(jù)不同的團(tuán)隊(duì)、部門(mén)或項(xiàng)目進(jìn)行組織和管理。
- 權(quán)限管理:管理員可以為組織中的用戶(hù)分配不同的權(quán)限級(jí)別,以控制他們對(duì)組織內(nèi)密碼和保密信息的訪(fǎng)問(wèn)和操作權(quán)限。
- 組織共享:管理員可以在組織內(nèi)共享密碼和保密信息。這使得團(tuán)隊(duì)成員能夠方便地共享和訪(fǎng)問(wèn)共享的敏感信息。
- 組織級(jí)別的密碼策略:管理員可以為組織設(shè)置密碼策略,強(qiáng)制組織內(nèi)的所有用戶(hù)遵守相同的密碼要求和安全標(biāo)準(zhǔn)。
- 組織審計(jì):管理員可以查看和監(jiān)控組織的活動(dòng)日志和審計(jì)記錄,以便跟蹤和審計(jì)組織成員的操作和變更。
通過(guò)這些組織功能,Vaultwarden使得團(tuán)隊(duì)和組織能夠更好地協(xié)作、共享和管理敏感信息,并提供了更好的安全性和控制。
在組織中通過(guò)新建集合然后再集合內(nèi)新建項(xiàng)目(密碼),通過(guò)集合去分配權(quán)限,單獨(dú)或多個(gè)授權(quán)給用戶(hù),已達(dá)到權(quán)限控制的效果。
至此我們的Vaultwarden密碼管理系統(tǒng)已經(jīng)介紹完了,其它的功能我這里就不一 一細(xì)說(shuō)了各位大佬可以自行研究
到此這篇關(guān)于docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)的文章就介紹到這了,更多相關(guān)docker部署Vaultwarden內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 教你docker方式部署nacos
- 在docker中部署tomcat并且部署java應(yīng)用程序的步驟詳解
- Docker中部署mysql服務(wù)的方法及遇到的坑
- docker部署mysql后無(wú)法連接的解決方式
- Docker部署portainer的詳細(xì)步驟
- 在Docker上開(kāi)始部署Python應(yīng)用的教程
- docker部署kafka的方法步驟
- docker安裝部署 onlyoffice的詳細(xì)過(guò)程
- Docker 部署 Prometheus的安裝詳細(xì)教程
- 使用docker部署java項(xiàng)目運(yùn)行環(huán)境的實(shí)現(xiàn)步驟
- 在docker中部署k8s的方法
相關(guān)文章
Docker安裝MongoDB的過(guò)程(mongo.latest)
MongoDB是一種高性能、靈活的數(shù)據(jù)庫(kù),特別適合處理大量非結(jié)構(gòu)化數(shù)據(jù),它采用文檔數(shù)據(jù)模型,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),提供類(lèi)似面向?qū)ο蟮牟樵?xún)語(yǔ)言,本文給大家介紹Docker安裝MongoDB的過(guò)程(mongo.latest),感興趣的朋友一起看看吧2024-11-11docker mysql修改root賬號(hào)密碼并賦予權(quán)限
本文主要介紹了docker mysql修改root賬號(hào)密碼并賦予權(quán)限,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07教你在docker?中搭建?PHP8?+?Apache?環(huán)境的過(guò)程
這篇文章主要介紹了docker中搭建?PHP8?+?Apache?環(huán)境,文章以安裝?pdo-mysql?擴(kuò)展為例介紹php安裝擴(kuò)展的詳細(xì)過(guò)程,需要的朋友可以參考下2022-03-03Docker+Jupyter 部署算力服務(wù)的解決方案
Docker+Jupyter部署算力服務(wù)為AI學(xué)習(xí)框架提供了一種高效的發(fā)布和使用方案,本文以Windows環(huán)境為例,介紹了如何下載安裝Docker工具,以及如何根據(jù)AI框架所需的Python版本拉取合適的Jupyter鏡像,本文介紹了Docker+Jupyter 部署算力服務(wù)的相關(guān)知識(shí),一起看看吧2024-11-11Docker部署MySQL8集群(一主二從)的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署MySQL8集群,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案
今天小編就為大家分享一篇關(guān)于Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10docker鏡像下載到本地并導(dǎo)入其他服務(wù)器方式
這篇文章主要介紹了docker鏡像下載到本地并導(dǎo)入其他服務(wù)器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04