系统工程 - 建设篇
第二章 vaultwarden密码库 搭建流程
系列文章回顾
前言
建设安全可存储的密码库,以开源版bitwarden为例,方便IT人员安全存储密码
由于BitWarden是一个网站应用,是B/S架构,而且支持docker部署,所以需要搭建一台支持docker部署的Linux,同时为了方便管理Linux服务器,在Linux服务器上使用宝塔运维面板进行运维管理。
前置条件
- Linux虚拟机已安装LNMP
- Linux虚拟机需要联网
- 准备Xshell等连接工具,安装lrzsz、zip、unzip等工具
实施步骤
1. 宝塔面板配置docker,开启docker服务
2. 从docker.io镜像库下载vaultbitwarden版本,运行镜像并测试访问密码库后台
3. 配置密码库的基础功能、组织、管理员
4. Chrome、Firefox浏览器安装bitwarden插件,测试登录和自动填充功能
注意事项
- 如果vaultwarden使用的SSL证书是自建CA的SSL证书,那么浏览器就需要导入自建CA证书才可正常访问登录bitwarden,否则会提示证书告警并登录失败。
浏览器插件下载链接
Chrome bitwarden
Firefox bitwarden
部署 vaultwarden密码库
宝塔面板配置docker,开启docker服务
从docker.io镜像库下载vaultbitwarden版本,运行镜像并测试访问密码库后台
镜像下载的可选方式:
① 登录nginx后台,使用docker pull命令下载
# Linux后台
[root@localhost ~]# cd /opt
[root@localhost ~]# docker pull vaultwarden/server:latest
② 登录宝塔面板,使用宝塔提供的docker镜像窗口下载
docker run运行镜像
# Linux后台
# 必须用命令行执行docker run CLI命令可以更简单地执行丰富的参数集
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
# 上述参数解析: -d --detach 后台运行容器并打印容器ID --name 指定容器名称 -v --volume 指定映射的目标 (本地:容器) -p --publish 指定映射的端口号 (本地:容器)
# -e --env 设置容器运行的环境变量, 一般用来设置容器内软件的参数和配置.
宝塔面板部署vaultwarden密码库网站,伪静态+SSL证书
SSL证书的添加过程(略)
# 伪静态配置
location / {
proxy_pass http://vaultwarden.xxx.com:8000;
}
# nginx配置文件
server
{
listen 80;
listen 443 ssl http2;
server_name vaultwarden.xxx.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/vaultwarden/;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /www/server/panel/vhost/cert/vaultwarden.xxx.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/vaultwarden.xxx.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/vaultwarden.xxx.com.conf;
#REWRITE-END
access_log /www/wwwlogs/vaultwarden.xxx.com.log;
error_log /www/wwwlogs/vaultwarden.xxx.com.error.log;
}
测试访问密码库的首页和后台
访问https://vaultwarden.xxx.com/
访问密码库后台并配置后台参数
# Linux后台
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 \
-e ADMIN_TOKEN=random_token_as_this_server_above_admin_pass \ # 删除docker容器,重新执行docker run并添加ADMIN_TOKEN参数,开放密码库后台的访问
vaultwarden/server:latest
访问https://vaultwarden.xxx.com/admin/
配置完成后台参数后,在后台将ADMIN_TOKEN设置成空,退出即关闭后台界面访问
配置密码库的基础功能、组织、管理员
(略)
Chrome、Firefox浏览器安装bitwarden插件,测试登录和自动填充功能
安装过程(略)
测试登录和自动填充