docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker部署Vaultwarden

docker部署Vaultwarden密码共享管理系统的实现(图文)

作者:centreon~

Vaultwarden是一个开源的密码管理器,它提供了类似于Bitwarden的功能,允许用户安全地存储和管理密码、敏感数据和身份信息,本文主要介绍了docker部署Vaultwarden密码共享管理系统的实现,感兴趣的可以了解一下

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

6、验证安装

执行以下命令验证Docker是否安装成功:

sudo docker run hello-world

如果输出如下信息,说明Docker安装成功:

Hello from Docker!
...

7、拉取Vaultwarden镜像

执行以下命令检查当前镜像仓库是否存在Vaultwarden镜像:

sudo docker search vaultwarden

执行以下命令拉取 Vaultwarden镜像:

sudo docker pull vaultwarden/server

8、安装MySQL5.7数据库

由于官方镜像使用的是微软的SQLserver不方便我们后期的维护,这里就需要部署MySQL以方便我们后期对Vaultwarden的维护,这就不讲MySQL是如何部署的,不会请自行百度。

9、启动Vaultwarden容器

执行以下命令启动启动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

以下是启动命令中使用的选项和参数的解释:

10、 域名解析

后端的 Bitwarden 服务已经成功运行,前端如何访问呢?

有两种方法:

使用 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应用程序并确保其运行的安全和可靠性。

需要注意的是现在你的密码管理服务器是不允许新用户注册的需要再管理界面将其打开,允许新用户注册登录。

然后点击保存配置,这时你才能注册新用户。

13、登录Vaultwarden用户界面

注册新用户

使用新注册的用户登录

14、新建组织

Vaultwarden提供了以下一些组织功能:

通过这些组织功能,Vaultwarden使得团队和组织能够更好地协作、共享和管理敏感信息,并提供了更好的安全性和控制。

在组织中通过新建集合然后再集合内新建项目(密码),通过集合去分配权限,单独或多个授权给用户,已达到权限控制的效果。

至此我们的Vaultwarden密码管理系统已经介绍完了,其它的功能我这里就不一 一细说了各位大佬可以自行研究

到此这篇关于docker部署Vaultwarden密码共享管理系统的实现(图文)的文章就介绍到这了,更多相关docker部署Vaultwarden内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文