前言:

bitwarden使用了很多年,也非常好用,但是在公网上使用,最好是开启2FA,以免被攻击丢失所有资料,但是在最近一次我发现我的TOTP失效了,我进入/admin的路径寻找解决办法,发现在/admin的页面可以直接快速移除账号的任何安全认证,我觉得把admin放在公网可能会是一个非常不安全的因素,所以就有了今天的教程。

教程:

这里的教程是针对使用traefik反代bitwarden,其他反代的小伙伴就可以不用往下看了。

在traefik的动态文件增加一个ip白名单的中间件:

    ip-access:
      ipWhiteList:
        sourceRange:
          - "192.168.1.0/24"    

192.168.1.0/24替换成你的内网的网段。

容器配置有两种办法,第一种是标签,第二种是动态配置。

标签:

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.bitwarden-web.rule=Host(`bitwarden.example.com`)"
      - "traefik.http.routers.bitwarden-web.service=bitwarden-service"
      - "traefik.http.services.bitwarden-service.loadbalancer.server.port=80"
      - "traefik.http.routers.bitwarden-admin.rule=Host(`bitwarden.example.com`) && Path(`/admin`)"
      - "traefik.http.routers.bitwarden-admin.service=bitwarden-admin-service"
      - "traefik.http.services.bitwarden-admin-service.loadbalancer.server.port=80"
      - "traefik.http.routers.bitwarden-admin.middlewares=ip-access@file"

这里我演示的是docker-compose 如果是docker run启动的 请自行用-l 来添加,其中的域名请自行更换为你自己的,配置好后docker compose up -d生效。

动态文件:

http:
  routers:
    bitwarden-web:
      service: bitwarden-web
      middlewares:
      rule: "Host(`bitwarden.example.com`)"
    bitwarden-admin:
      service: bitwarden-admin
      middlewares:
        - ip-access
      rule: "Host(`bitwarden.example.com`) && Path(`/admin`)"
  services:
    bitwarden-web:
      loadBalancer:
        servers:
          - url: "http://192.168.1.3:80"
    bitwarden-admin:
      loadBalancer:
        servers:
          - url: "https://192.168.1.3:80"

注意修改域名和ip改为你自己的即可。

测试:

访问主页测试:

访问正常,登录也无问题。

测试访问/admin路径:

给到的结果Forbidden 就是禁止的,我们在局域网内再次访问这个地址。

正常访问,这样就在需要使用admin的页面的时候可以在内网的机器上进入,保证安全。

结尾:

密码库不比其他程序,一旦丢失,全部账号密码都会暴漏,是一个非常危险的事情,所以谨慎一点并不过分。

发表回复

后才能评论

评论(1)