转自地址:https://blog.csdn.net/weixin_51697917/article/details/133654754
Vaultwarden是一个开源的密码管理器,它是Bitwarden密码管理器的自托管版本。它提供了类似于Bitwarden的功能,允许用户安全地存储和管理密码、敏感数据和身份信息。
Vaultwarden的主要特点包括:
1. 安全的数据存储:Vaultwarden使用加密算法对用户的数据进行加密,并将其存储在数据库中。用户的数据只能通过唯一的加密密钥进行解密,确保数据的机密性。
2. 跨平台支持:Vaultwarden可以用作独立的Web应用程序或与桌面客户端、浏览器插件等配合使用,以满足不同平台和设备上的需求。
3. 密码生成器:Vaultwarden提供了密码生成器,可以帮助用户生成强密码,确保账号的安全性。
4. 浏览器插件支持:Vaultwarden支持各种浏览器插件,方便用户在浏览器中轻松地填充和保存密码。
5. 多因素身份验证:Vaultwarden支持多种身份验证方式,如TOTP(基于时间的一次性密码)和二次验证码(如YubiKey),以增加登录过程的安全性。
6. 团队协作:Vaultwarden支持团队协作,用户可以与团队成员共享密码和敏感数据,方便安全地共享账号和信息。
使用Vaultwarden,用户可以集中管理他们的密码和敏感数据,并通过强加密和严格的访问控制来保护这些数据。由于它是开源的,用户可以自行托管并拥有完全控制权,满足对数据隐私和安全性有更高要求的用户需求。
下面我将介绍Vaultwarden的docker部署方式:
1、卸载旧版本
如果你之前已经安装过Docker,请先卸载旧版本。执行以下命令卸载Docker:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装依赖包
在安装Docker之前,需要安装一些必要的依赖包。执行以下命令安装依赖包:
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
执行以下命令安装Docker:
sudo yum makecache fast
sudo yum -y install docker-ce
5、启动Docker
执行以下命令启动Docker服务:
sudo systemctl start docker
sudo systemctl enable docker
6、验证安装
执行以下命令验证Docker是否安装成功:
sudo docker run hello-world
7、查看Vaultwarden镜像
查看镜像
sudo docker search vaultwarden
8.执行以下命令拉取Vaultwarden镜像:
sudo docker pull vaultwarden/server
9、安装MySQL5.7数据库
10、启动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:[email protected]:3306/vault -v /data/bitwarden/:/data/ -p 8080:80 -p 3012:3012 vaultwarden/server:latest
上面参数解析:
以下是启动命令中使用的选项和参数的解释:
-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:[email protected]:3306/vault:指定MySQL数据库的连接URL;
-v /data/bitwarden/:/data/:将宿主机上的/data/bitwarden/目录挂载到容器内的/data/目录,用于持久化数据;
-p 8080:80 -p 3012:3012:将宿主机的8080端口映射到容器的80端口,以及3012端口映射到容器的3012端口;
vaultwarden/server:latest:运行最新版本的Vaultwarden服务器镜像;
10、 域名解析
后端的 Bitwarden 服务已经成功运行,前端如何访问呢?
有两种方法:
直接使用 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应用程序。作为管理员,您可以创建,编辑和删除用户、组和条目,设置应用程序选项并监视应用程序统计信息。管理员页面需要管理员账号和密码才能访问,可以通过在Vaultwarden服务器上运行的特殊命令来创建管理员账号。
入我们在创建容器时设置的管理员令牌来登录。
以下是Vaultwarden管理员页面的一些功能:
用户和组管理:管理员可以创建、编辑和删除Vaultwarden应用程序中的用户和组。管理员还可以为用户分配和管理组和条目访问权限。
应用程序选项设置:管理员可以配置Vaultwarden应用程序的选项,例如应用程序语言、加密设置和自动锁定时间等。
安全审计日志:管理员可以查看Vaultwarden应用程序的安全审计日志,以监视各种安全事件和故障情况。
用户密码策略:管理员可以设置并强制实施强密码策略,例如密码长度、复杂性和有效期限。
数据备份和恢复:管理员可以定期备份Vaultwarden应用程序的数据,并在需要时对数据进行恢复。
应用程序更新:管理员可以在更新可用时升级Vaultwarden应用程序到最新版本,以确保应用程序运行的安全和稳定性。
这些功能使管理员能够更好地管理Vaultwarden应用程序并确保其运行的安全和可靠性。
需要注意的是现在你的密码管理服务器是不允许新用户注册的需要再管理界面将其打开,允许新用户注册登录。
https://blog.csdn.net/m0_54768192/article/details/127827783?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-8-127827783-blog-133654754.235%5Ev40%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-8-127827783-blog-133654754.235%5Ev40%5Epc_relevant_anti_t3
docker run -d --restart=always --name vaultwarden -v /www/wwwroot/vaultwarden/:/data/ -p 8000:80 \
-e LOG_FILE=data/access.log \
-e LOG_LEVEL=info \
-e EXTENDED_LOGGING=true vaultwarden/server:latest