docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)
Vaultwarden是一個(gè)開源的密碼管理器,它是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(基于時(shí)間的一次性密碼)和二次驗(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-engine
2、安裝依賴包
在安裝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、啟動(dòng)Docker
執(zhí)行以下命令啟動(dòng)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是如何部署的,不會(huì)請自行百度。
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ù)的解釋:
- -d:以守護(hù)進(jìn)程模式運(yùn)行容器。
- --name vaultwarden:指定容器的名稱為"vaultwarden";
- --restart=always:設(shè)置容器在重啟時(shí)自動(dòng)啟動(dòng);
- -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 - 申請個(gè)域名,使用
https://{domain}
? 訪問 web
使用 ip 訪問,記得去設(shè)置安全組,開放端口
使用域名訪問,可以使用子域名,省得再申請域名,個(gè)人推薦使用域名,使用上更方便。
在云廠商上設(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' 指令確保你有一個(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管理平臺
管理員頁面用于管理Vaultwarden應(yīng)用程序。作為管理員,您可以創(chuàng)建,編輯和刪除用戶、組和條目,設(shè)置應(yīng)用程序選項(xiàng)并監(jiān)視應(yīng)用程序統(tǒng)計(jì)信息。管理員頁面需要管理員賬號和密碼才能訪問,可以通過在Vaultwarden服務(wù)器上運(yùn)行的特殊命令來創(chuàng)建管理員賬號。
輸入我們在創(chuàng)建容器時(shí)設(shè)置的管理員令牌來登錄。
以下是Vaultwarden管理員頁面的一些功能:
- 用戶和組管理:管理員可以創(chuàng)建、編輯和刪除Vaultwarden應(yīng)用程序中的用戶和組。管理員還可以為用戶分配和管理組和條目訪問權(quán)限。
- 應(yīng)用程序選項(xiàng)設(shè)置:管理員可以配置Vaultwarden應(yīng)用程序的選項(xiàng),例如應(yīng)用程序語言、加密設(shè)置和自動(dòng)鎖定時(shí)間等。
- 安全審計(jì)日志:管理員可以查看Vaultwarden應(yīng)用程序的安全審計(jì)日志,以監(jiān)視各種安全事件和故障情況。
- 用戶密碼策略:管理員可以設(shè)置并強(qiáng)制實(shí)施強(qiáng)密碼策略,例如密碼長度、復(fù)雜性和有效期限。
- 數(shù)據(jù)備份和恢復(fù):管理員可以定期備份Vaultwarden應(yīng)用程序的數(shù)據(jù),并在需要時(shí)對數(shù)據(jù)進(jìn)行恢復(fù)。
- 應(yīng)用程序更新:管理員可以在更新可用時(shí)升級Vaultwarden應(yīng)用程序到最新版本,以確保應(yīng)用程序運(yùn)行的安全和穩(wěn)定性。
這些功能使管理員能夠更好地管理Vaultwarden應(yīng)用程序并確保其運(yùn)行的安全和可靠性。
需要注意的是現(xiàn)在你的密碼管理服務(wù)器是不允許新用戶注冊的需要再管理界面將其打開,允許新用戶注冊登錄。
然后點(diǎn)擊保存配置,這時(shí)你才能注冊新用戶。
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)。
- 組織審計(jì):管理員可以查看和監(jiān)控組織的活動(dòng)日志和審計(jì)記錄,以便跟蹤和審計(jì)組織成員的操作和變更。
通過這些組織功能,Vaultwarden使得團(tuán)隊(duì)和組織能夠更好地協(xié)作、共享和管理敏感信息,并提供了更好的安全性和控制。
在組織中通過新建集合然后再集合內(nèi)新建項(xiàng)目(密碼),通過集合去分配權(quán)限,單獨(dú)或多個(gè)授權(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)文章
Docker安裝MongoDB的過程(mongo.latest)
MongoDB是一種高性能、靈活的數(shù)據(jù)庫,特別適合處理大量非結(jié)構(gòu)化數(shù)據(jù),它采用文檔數(shù)據(jù)模型,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),提供類似面向?qū)ο蟮牟樵冋Z言,本文給大家介紹Docker安裝MongoDB的過程(mongo.latest),感興趣的朋友一起看看吧2024-11-11docker mysql修改root賬號密碼并賦予權(quán)限
本文主要介紹了docker mysql修改root賬號密碼并賦予權(quán)限,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07教你在docker?中搭建?PHP8?+?Apache?環(huán)境的過程
這篇文章主要介紹了docker中搭建?PHP8?+?Apache?環(huán)境,文章以安裝?pdo-mysql?擴(kuò)展為例介紹php安裝擴(kuò)展的詳細(xì)過程,需要的朋友可以參考下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)知識,一起看看吧2024-11-11Docker部署MySQL8集群(一主二從)的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署MySQL8集群,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案
今天小編就為大家分享一篇關(guān)于Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10docker鏡像下載到本地并導(dǎo)入其他服務(wù)器方式
這篇文章主要介紹了docker鏡像下載到本地并導(dǎo)入其他服務(wù)器方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04