本篇是网络docker部署bitwarden的续篇。
本篇需要部署ntp服务器实现高精度的时间同步。
本地部署bitwarden的部署和安全性要求,较公网上的要求低,但是bitwarden默认要求https才可以浏览器打开,本方式不再采用nginx反代的方式,因此组件要求降低。
- 前提条件
1)部署docker
- 部署过程
#关闭selinux sed -i '/^SELINUX/s/enforcing/disabled/g' /etc/selinux/config setenforce 0 #将host上的/vw-data/ 映射到docker上的/data/ mkdir /vw-data/ #创建证书路径 mkdir /ssl/ mkdir /ssl/keys/ cd /ssl/keys/ #通过openssl生成私钥vhost.key openssl genrsa -out vhost.key 4096 #生成证书申请文件vhost.csr openssl req -new -key vhost.key -out vhost.csr #使用私钥对证书申请进行签名从而生成10有效期证书vhost.crt openssl x509 -req -in vhost.csr -out vhost.crt -signkey vhost.key -days 3650 #运行容器 docker pull vaultwarden/server:latest docker run -d --name bitwarden --restart always \ -e ROCKET_TLS='{certs="/ssl/vhost.crt",key="/ssl/vhost.key"}' \ -v /ssl/keys/:/ssl/ \ -v /vw-data/:/data/ \ -p 443:80 \ vaultwarden/server:latest #防火墙开放端口 systemctl restart firewalld firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --permanent --zone=public --add-port=443/tcp systemctl restart firewalld
- 小结
测试通过。
补充说明:
1)对于docker部署的软件,由于其开源特性不足,因此使用时需要考虑其可能存在的问题,一般建议在防火墙上禁止访问公网比较妥当。
2)有ipv6的情况,必要的情况下关闭ipv6避免被暴露,引来攻击。
3)对于避免docker占用主机端口,并无意开放端口的问题,可以采用以下设置:
docker run -d --name bitwarden --restart always \ -e ROCKET_TLS='{certs="/ssl/vhost.crt",key="/ssl/vhost.key"}' \ -v /ssl/keys/:/ssl/ \ -v /vw-data/:/data/ \ -p 127.0.0.1:443:80 \ vaultwarden/server:latest
对于外部访问可以采用nginx反向代理
4)开启管理后台
docker run -d --name bitwarden --restart always \ -e ROCKET_TLS='{certs="/ssl/vhost.crt",key="/ssl/vhost.key"}' \ -e ADMIN_TOKEN="randomkey" \ -v /ssl/keys/:/ssl/ \ -v /vw-data/:/data/ \ -p 127.0.0.1:8443:80 \ vaultwarden/server:latest
默认没有后台admin