首页 > 其他分享 >docker部署Vaultwarden密码共享管理系统

docker部署Vaultwarden密码共享管理系统

时间:2023-12-27 17:36:04浏览次数:29  
标签:set Vaultwarden 管理系统 server header proxy docker

转自地址: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





标签:set,Vaultwarden,管理系统,server,header,proxy,docker
From: https://blog.51cto.com/u_64214/9001994

相关文章

  • 浅谈云能耗管理系统在某高校建筑系统平台的开发与应用
    罗轩志安科瑞电气股份有限公司上海嘉定201801摘要:依据本项目依托某学院的电能计量管理系统、给水计量监管系统以及供热计量管理系统等基础平台,制订了高等学校建筑能耗综合管理系统平台应用的总体框架和方案,该系统可以对校园建筑的各种用能情况进行实时监测、统计能耗、进行能效分......
  • 管理系统服务 -- systemctl
    功能介绍systemctl是用于管理系统服务的命令行工具,常用于Linux系统中。提供了对系统服务(包括启动、停止、重启、启用、禁用等)的控制,以及对系统单元(units)的操作。语法结构systemctl的基本语法结构为:systemctl[option][command][unit]option:选项,用于指定不同的操作。......
  • docker
    查看docker的镜像dockerimages重启容器dockerrestartecece58c23ba删除容器dockerrm72e707ed2f2f停止容器dockerstopconfluencedocker容器启动自动启动某个容器dockerupdate--restart=always9274671a14ed查询docker容器时间dockerexec14806b328545date进入容器控制......
  • docker笔记
    docker设置:在执行TensorFlowServing容器的命令之前,你需要完成以下Docker相关的设置和操作:安装Docker:如果你的系统上尚未安装Docker,请按照以下步骤进行安装:对于Ubuntu系统:shell复制代码sudoapt-getupdatesudoapt-getinstalldocker.io对于CentOS系统:......
  • 内网安全管理系统的作用和价值有哪些?
    什么是内网安全管理系统内网安全管理系统是一种用于保护企业或组织内部网络中的各种资源和数据的安全的系统,它涵盖了终端管理、网络管理、内容管理、资产管理等多个方面,实现了对内网的全面监控和控制。内网安全管理系统的主要功能有:终端管理:对内网中的各种终端设备(如PC、手机......
  • CRM销售管理系统有推荐的吗?哪款CRM好用?
     CRM销售管理系统,哪款好?在寻找这个问题的答案时,企业需要先了解自己的需求,明确核心需求,这样才能在挑选过程中保持方向明确,让最终部署的CRM销售管理系统符合自己的要求。下面就为大家介绍六款知名的CRM销售管理系统,这些品牌都是行业佼佼者,具有操作简单、界面丰富、......
  • docker部署fastapi
    使用Docker部署FastAPI应用程序可以提供更好的可移植性和隔离性。以下是使用Docker部署FastAPI应用程序的一般步骤:创建Dockerfile:在项目的根目录下创建一个名为Dockerfile的文件,用于定义Docker镜像的构建过程。在Dockerfile中,你需要指定基础镜像、复制应用程序......
  • 浅谈云能耗管理系统在某高校建筑系统平台的开发与应用
    安科瑞张田田摘要:依据本项目依托某学院的电能计量管理系统、给水计量监管系统以及供热计量管理系统等基础平台,制订了高等学校建筑能耗综合管理系统平台应用的总体框架和方案,该系统可以对校园建筑的各种用能情况进行实时监测、统计能耗、进行能效分析,并可以对系统进行评估和故障诊断......
  • Unity3D Asset与Object 资源管理系统详解
    Unity3D是一款流行的游戏开发引擎,它提供了一个强大的资源管理系统,可以帮助开发者有效地管理和使用游戏中的资源。在Unity3D中,资源可以分为Asset和Object两种类型,本文将详细介绍Unity3D的Asset与Object资源管理系统的技术细节和代码实现。对啦!这里有个游戏开发交流小组里面聚集了......
  • docker 启用ipv4,默认只有ipv6
    方法一在服务器上禁用IPv6使用vim打开/etc/default/grub在第6行中增加ipv6.disable=1例如:复制代码GRUB_CMDLINE_LINUX="ipv6.disable=1..."重新配置grub并重启服务器复制代码$grub2-mkconfig-o/boot/grub2/grub.cfg$reboot等到服务器重启完成后,我们再次使......