用bitwarden_rs搭建属于自己的密码管理器
本文最后更新于 386 天前,其中的信息可能已经有所发展或是发生改变。

以前用过Lastpass密码管理器,但后来爆出过安全问题,又因为服务器不在自己手里,所以一直不能安心,遂放弃。
1Password太贵,肯定也不在我的选择之中,现在主要是使用Enpass,支持全平台,数据保存在各大网盘,安全性是没有问题的,我买的时候挺便宜的,是买断制终身使用,但是这个终身到底是多久谁也不知道,现在听说改为订阅制了。

为了以防万一,我找到了bitwarden开源密码管理器,它有分免费版和收费版,个人使用免费版足够了,最主要的是它支持自建服务器,也就是把数据保存在自己的服务器,再通过各种网盘备份数据,加上本身是开源的,所以安全性应该是没有问题的。

1.拉取bitwardenrs镜像

docker pull bitwardenrs/server:latest

2.直接通过 docker run 创建镜像

你也可以通过 docker-compose 进行管理,还能更好的保存运行参数。但我保存了 docker run 命令且图便宜就 docker run 了。

docker run -d --name bitwardenrs -v /www/wwwroot/key:/data/ -p 85:80 -p 3012:3012 -e WEBSOCKET_ENABLED=true bitwardenrs/server:latest

第一次创建这个容器请不要加 -e SIGNUPS_ALLOWED=false 参数,这个参数是禁止新用户注册的。

-v /www/wwwroot/key:/data/ 参数中,前者/www/wwwroot/key是host中持久化数据的路径,后者/data/container中数据保存路径
-p 85:80 -p 3012:3012 服务监听端口一般使用80,你可以使用 lsof -i:80 查看你的系统80端口是否有被占用,如果有使用其他端口。如果要显示通知,则加上-e WEBSOCKET_ENABLED=true,并且多映射一个端口 -p 3012:3012
其他参数比如邮件通知相关的、日志记录文件路径相关的,可以按照你的喜好增加
--name bitwardenrs 将该容器取名为 bitwardenrs
我就这些了。

3.配置前置代理nginx 配置ssl

server
{
    listen 80;
    listen 443 ssl http2;
    server_name *.laowang.me;
    index index.php index.html index.htm default.php default.htm default.html;
    root /home/wwwroot/*;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/*.laowang.me/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/*.laowang.me/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;
    
    
    location / {
            proxy_pass http://127.0.0.1:85;
            proxy_http_version    1.1;
            proxy_cache_bypass    $http_upgrade;
            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 X-Forwarded-For    $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto  $scheme;
            proxy_set_header X-Forwarded-Host   $host;
            proxy_set_header X-Forwarded-Port   $server_port;
        }

        location /notifications/hub {
            proxy_pass http://127.0.0.1:3012;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        location /notifications/hub/negotiate {
            proxy_pass http://127.0.0.1:85;
        }

        location /admin {
            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://127.0.0.1:85;
        }
  
    access_log  /www/wwwlogs/*.laowang.me.log;
    error_log  /www/wwwlogs/*.laowang.me.error.log;
}

4.禁止新用户注册

一般自建bitwarden服务器是供个人使用,我们在注册完自己的账号后,都选择关闭注册功能,防止他人注册。

需要用到上文中的-e SIGNUPS_ALLOWED=false 参数重新启动容器。但是不能直接重新 docker run,因为会提示你这个同名容器已经存在。

但不用担心,刚刚我们已经注册了用户了,数据库信息已经持久化到/www/wwwroot/key 这个宿主机目录中了。所以正确的步骤是

停止容器

docker container stop bitwardenrs

然后remove容器

docker container rm bitwardenrs

再重新 docker run 启动容器,这一次要加上-e SIGNUPS_ALLOWED=false参数

docker run -d --name bitwardenrs -v /www/wwwroot/key:/data/ -p 85:80 -p 3012:3012 -e SIGNUPS_ALLOWED=false -e WEBSOCKET_ENABLED=true bitwardenrs/server:latest

也可以禁止web登陆,进一步增强安全性。

只需在启动命令中添加:-e WEB_VAULT_ENABLED=false

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇