现代社会,各种信息系统的密码非常重要。密码怎么设置?不能都设置成一样的,否则,一旦一个密码被泄露,所有的密码都不安全。
但是,都不一样也很麻烦,估计每个人都要记几十个密码。把密码记录在记事本里面?每次都要打开记事本进行查阅,也不方便。
有人用第三方的密码记录工具,这样又有隐私泄露的问题,你把密码都交给第三方,心也是够大的。
那到底怎么办?
答案就是:Bitwarden。这个软件,本身是一个第三方的密码管理服务,同时竟然也是一个开源免费的软件。基本上,服务端、客户端、浏览器扩展等所有的软件,都可以直接使用。
例如在浏览器中,安装一个插件,然后以后再打开某个网站,可以直接点击插件的图标进行自动填充,非常方便。
所以,如果你有一个服务器,强烈建议自己安装一个密码管理服务,把这么重要的东西,掌握在自己的手中。
使用Docker安装Bitwarden
使用Docker安装Bitwarden非常简单,先安装Docker:
#安装Docker
yum -y install docker
#启动docker
systemctl start docker
#开机自启
systemctl enable docker
其他的系统需要相应的修改安装命令。
然后拉去镜像并启动。
#docker pull bitwardenrs/server:latest,最新版的镜像的名字已经发生改变
docker pull vaultwarden/server:latest
docker run -d --name bitwarden -v /bw-data/:/data/ -p 40:80 bitwardenrs/server:latest
其中,/bw-data/是在服务器上创建的,用于存放bitwarden数据的文件夹,可以根据自己的情况进行修改。-p 40:80,指的是服务器的端口40(自己定义,只要和其他的服务没有冲突就行),映射到容器的80端口。
启动起来之后,输入http://server-ip:40就可以访问到bitwarden了。
如果需要后台管理员服务,则在启动的时候,加上Token:
docker run -d --name bitwarden -e ADMIN_TOKEN=your_admin_token_string -v /bw-data/:/data/ -p 40:80 bitwardenrs/server:latest
其中,把your_admin_token_string改成自己设置的字符串并记住。
这样访问:http://server-ip:40/admin的时候,输入这个字符串,就可以进入后台管理了。
使用宝塔搭建Bitwarden
可以看到,http://server-ip:40/这样的形式很不高级,可以考虑使用宝塔做反向代理的方式来处理。
首先,在宝塔中,创建一个网站,例如pass.yourdomain.com。
这样,在/www/wwwroot/下就创建了一个文件夹pass.yourdomain.com,在下面再创建一个文件夹bw-data,用来存储数据。
这时候,可以用命令的方式来启动Docker,和上面唯一的区别就是存放数据的文件夹,改成:/www/wwwroot/pass.yourdomain.com/bw-data,最终的命令是这样的:
docker run -d --name bitwarden -e ADMIN_TOKEN=your_admin_token_string -v /www/wwwroot/pass.yourdomain.com/bw-data/:/data/ -p 40:80 bitwardenrs/server:latest
当然,最新版本的宝塔,带了Docker的可视化工具,配置方法如下图:
其实和命令没有本质的区别。
启动起来就可以了。
然后配置代理,先给这个网站,申请一个SSL证书(不是本文重点,不再赘述),然后编辑该网站的配置文件。
在:
<VirtualHost *:443>
ServerAdmin webmaster@example.com
DocumentRoot "/www/wwwroot/pass.yangyq.net/"
ServerName SSL.pass.yangyq.net
ServerAlias pass.yangyq.net
#errorDocument 404 /404.html
ErrorLog "/www/wwwlogs/pass.yangyq.net-error_log"
CustomLog "/www/wwwlogs/pass.yangyq.net-access_log" combined
中,加入:
ProxyPreserveHost On
ProxyPass / http://localhost:40/
ProxyPassReverse / http://localhost:40/
最终的结果是这样的:
<VirtualHost *:443>
ServerAdmin webmaster@example.com
DocumentRoot "/www/wwwroot/pass.yangyq.net/"
ServerName SSL.pass.yangyq.net
ServerAlias pass.yangyq.net
#errorDocument 404 /404.html
ProxyPreserveHost On
ProxyPass / http://localhost:40/
ProxyPassReverse / http://localhost:40/
ErrorLog "/www/wwwlogs/pass.yangyq.net-error_log"
CustomLog "/www/wwwlogs/pass.yangyq.net-access_log" combined
这样通过域名访问就可以了。
群晖docker也可以。但是我还是嫌麻烦。直接用浏览器记住了
@xqiushi 是的,我之前就在群晖里面放着,后来放到服务器了。
用浏览器同步感觉还是有点麻烦,而且这个的好处就是不依赖浏览器了,换浏览器比较方便。