站点图标 谷姐靓号网

Bitwarden自建终极加固指南-sharp097

Rate this post

前言

如果你的bitwarden只托管了一些不重要的密码的话,可以看一下本人之前写的一篇博客(保姆级免Nginx反代配置带SSL证书Bitwarden服务端),基本也够安全的了,因为Bitwarden_RS/Vaultwarden(下文简称Bitwarden)底层采用的rocket tls最低支持版本是1.2,而不是1.0或1.1,具体看这里的官方文档。

但是如果你的自建bitwarden托管了你的支付宝微信、银行卡、信用卡等全部身家,甚至几百个比特币的钱包的私钥,那前面提到的博客就不行了,我们必须再提高安全性,毕竟我们的服务暴露在了公网,一旦被不怀好意的人渗透了可就真的麻烦了。

终极加固实战
首先声明一下,一定一定一定要首先优先配置两步验证,这是最基础的安全措施,本文不再赘述~

另外本人遵循 "eat your own dog food"原则,本文全篇介绍的东西在本人自建的Bitwarden服务器上全部有应用到。

本人作为一名渣渣Linux运维小学生,着实才疏学浅,本文不能涵盖所有加固措施,遗漏的地方还望大家在评论区留言指出来,本人再补充进正文。

我们的加固涉及到了以下方面:

禁止注册和邀请用户
禁止显示密码提示
基于Nginx实现禁止ip访问 (防止类似于shedon的邪恶搜索引擎搜索到,以及脚本小子扫描ip段)
基于腾讯云控制台和Nginx讲解如何配置ECC算法的ssl证书,舍弃掉RSA算法的证书(ECC算法的破解难度要更高,比RSA算法要更上一个台阶),网上搜到的博客试了好几个都不行,我这里的一步到位
让docker进程以非root用户运行,这里踩了一个坑,折腾了个把小时
最后一步几乎将自建Bitwarden的安全性更上了一个台阶,那就是给后台的URL加上随机字符串,使得使用默认的后台地址无法访问
最最后,由于我们的前端流量由Nginx承载,所以Nginx也要加固一下,下述共涉及 屏蔽Nginx的版本号减少攻击面、对Http请求方法进行限制、防止点击劫持、启用HSTS强制https访问、防止跨站攻击和摒弃不安全的ssl cipher且server端主动选择cipher共计6个方面。

基于某些考虑我们没有涉及的:

配置fail2ban,自动封锁暴力破解者,这个有时候很容易在自己连续输入错几次密码后把自己给封了,即使你可以在手机上访问vps解封也比较繁琐,如果你按照本篇博客设置下来的话,配置fail2ban的意义也不是很大了。
docker的ssl挂载目录设置只读权限,因为我们采用了ECC算法的证书,而Bitwarden底层采用的rocket tls实现是不支持解析的,所以我们要移除掉相关设置,不用担心,本篇博客将会介绍如何用Nginx来实现解析ECC算法的证书
舍弃掉你的主域名来作为服务入口,而是配置一个含有随机字符串的二级域名,这也是一个很不错的加固方式,本文也不再赘述

上述所有的加固措施在Bitwarden_rs/vaultwarden的官方wiki中都有提到,大神没必要再付费看我下面的描述了,不过如果你对上述加固措施不太熟悉的话,亦或者自己踩了很多坑搞不定的话,还是墙裂建议看看下面的描述的。

Tips:下述命令和Nginx指令比较零星,对技术不太熟悉的朋友很容易弄混淆,本人贴心的把docker的完整启动命令和关键指令含有注释的Nginx的完整配置分别贴了出来。

下面的部分是本人耗时昨天和今天两天时间亲自在自己的Bitwarden自建服务器上实践出来的,需要付费阅读,感兴趣的可以点签名进去看看,其实我大概半年前就按照官方文档试过,可是当时遇到了各种问题最终不了了之,这一次终于弄出来了。

热议
推荐楼 suichang 2022-2-20 18:43:55

说那么多不如简单的放到内网服务器上,在外用的时候连进局域网即可。

推荐楼 refrigerator 2022-2-20 18:41:53

这么复杂,我觉得个人自建安全性远比不上商业公司

推荐楼 sharp097 2022-2-20 18:40:08

有没有一种可能,记在本子上是最安全的选择

确实,物理隔离永远是最安全的方式

2楼 Ricky.D. 2022-2-20 18:36:41

感谢分享,如果有图片就更好了~

3楼 sharp097 2022-2-20 18:37:48

感谢分享,如果有图片就更好了~

签名里面的博客赞助之后就可以看到图片了,有两张哈

4楼 PicklePiccolo 2022-2-20 18:37:58

有没有一种可能,记在本子上是最安全的选择

5楼 colla 2022-2-20 18:37:59

技术贴绑定,想省心还得1password

8楼 sharp097 2022-2-20 18:42:17

技术贴绑定,想省心还得1password

穷屌丝实在用不起1passwd呀

10楼 sharp097 2022-2-20 18:45:12

说那么多不如简单的放到内网服务器上,在外用的时候连进局域网即可。

我家里的电不稳定经常断电,这个不太适合我~

12楼 枝江小狼王 2022-2-20 18:46:50

支持技术贴

13楼 hlsk 2022-2-20 18:48:03

码这么多字辛苦了
不过密码这种还是推荐加密保存在自己本地 非必要最好就不联网
开源免费的KeePassXC就可以了 支持全平台 支持浏览器插件 支持两步验证

14楼 sharp097 2022-2-20 18:49:42

码这么多字辛苦了
不过密码这种还是推荐加密保存在自己本地 非必要最好就不联网
开源免费的KeePassXC就可以 ...

KeePassXC支持坚果云的webdev不~

15楼 WZ-Software 2022-2-20 18:50:40

技术贴,顶,必须顶

16楼 breakmyheart 2022-2-20 18:54:35

还是习惯写在便签纸上 物理隔离确实安全

17楼 hlsk 2022-2-20 18:54:42

KeePassXC支持坚果云的webdev不~

KeePass支持
不过我个人不会把密码文件放网上 完全离线保存在本地

18楼 sharp097 2022-2-20 19:11:45

还是习惯写在便签纸上 物理隔离确实安全

我的Bitwarden主密码也是记在一个卡片上~

19楼 sharp097 2022-2-20 19:13:11

KeePass支持
不过我个人不会把密码文件放网上 完全离线保存在本地

那你觉得1passwd这种知名度很高的在线的靠得住不~

20楼 ccf 2022-2-20 19:17:33

直接用 DDNS 白名单,其他全屏蔽

22楼 sharp097 2022-2-20 19:20:10

知名的密码类软件都很难破解的 不过之前lastpass就被曝有安全漏洞
反正我是直接保存在自己本地 只要不联 ...

那倒也是~

23楼 yy520 2022-2-20 19:21:10

软路由docker搞定,搞这么多花里胡哨

24楼 sharp097 2022-2-20 19:22:21

知名的密码类软件都很难破解的 不过之前lastpass就被曝有安全漏洞
反正我是直接保存在自己本地 只要不联 ...

我本来昨天想all in enpass这种全平台同步的,一看play商店的版本都快半年没更新了,瞬间就放弃了

25楼 sharp097 2022-2-20 19:25:21

软路由docker搞定,搞这么多花里胡哨

哎,我家里的电不太稳定搞不了啊~

26楼 丶Silently 2022-2-20 19:39:50

开了5秒盾?

27楼 丶Silently 2022-2-20 19:42:30

呃 让了 你的网站限制太多了

28楼 wangjf 2022-2-20 19:43:15

10位数密码 2位数存款,有什么好保密的

29楼 paggy 2022-2-20 19:44:51

没啥用,不如直接用官方,隔段时间备份下算了,别存银行卡助记词啥的就好

30楼 durov 2022-2-20 19:48:08

存家里服务器,需要在外面同步再用虚拟专用网络连回家同步。反正同步完也都缓存本地了。也不用整天同步。部署在内网还更安全

32楼 sharp097 2022-2-20 19:51:40

呃 让了 你的网站限制太多了

最近有大量cc攻击,开了CF的under attack模式,不好意思哈~

33楼 sharp097 2022-2-20 19:52:48

开了5秒盾?

开了CF的under attack模式,今天的cc攻击好像少了,我一会关掉哈,你再试试~

34楼 ccf 2022-2-20 19:53:02

官方不是被wall了嘛,我也想用官方的呢~

只是官网被墙,密码管理是单独的子域名,一切正常

https://vault.bitwarden.com/

35楼 sharp097 2022-2-20 20:21:09

只是官网被墙,密码管理是单独的子域名,一切正常

https://vault.bitwarden.com/ ...

确实,我去试试哈

36楼 brp30vsw 2022-2-20 20:36:03

根本用不了这么费力,最重要的一点,不要把NAS等登陆页面开放给公网,只开诸如open威皮嗯的UDP端口,进行隧道加密访问才是安全等级高的方式!

37楼 风之暇想 2022-2-20 21:23:30

官方版完全没问题,而且很多密码管理器只用了AES,没有多重算法的,还是不够

38楼 joeyli 2022-2-20 21:38:22

放在本地的话要考虑异地灾备的问题(比如地震、火灾),放在公网服务器上这一点就比较方便,只要记住主密码,到任何有网的地方都可以取出密码。

39楼 sharp097 2022-2-20 22:17:27

官方版完全没问题,而且很多密码管理器只用了AES,没有多重算法的,还是不够 ...

确实,AES256很多年了

40楼 sharp097 2022-2-20 22:18:27

放在本地的话要考虑异地灾备的问题(比如地震、火灾),放在公网服务器上这一点就比较方便,只要记住主密码 ...

的确,为了防止意外被墙我还买了国内的vps

42楼 wachyi 2022-2-20 22:38:44

除了有洞脚本批量扫 没人会费力攻破你一个密码库 及时更新就好

43楼 pandaking 2022-2-20 22:56:33

1元还能支持下,9.9是什么鬼呀,一个软件价格?

44楼 等1下™我老公呢 2022-2-20 23:21:01

大佬佩服,只是看完觉得不好上手…

45楼 sharp097 7天前

CloudRaft 发表于 2022-2-20 22:19
1password用苹果土区已经很便宜了,自建总觉得不放心

木有iPhone设备呢,穷屌丝一个~

46楼 sharp097 7天前

等1下™我老公呢 发表于 2022-2-20 23:21
大佬佩服,只是看完觉得不好上手…

谢谢赞助,刚刚收到订单邮件通知了,其实也还好啦,就是一大长串docker启动命令和一个比较长的nginx配置,我把完整的命令和配置都贴出来了,自己改一下分分钟就能用了~

47楼 sharp097 7天前

pandaking 发表于 2022-2-20 22:56
1元还能支持下,9.9是什么鬼呀,一个软件价格?

自建bitwarden上托管的密码数据是无价的,个人感觉9.9是有点贵了,不过相比于无价的数据还好吧。

48楼 huang1dede 7天前

支持知识付费

不过懒得搞,,,感觉还算安全.

49楼 袁小松 7天前

1.基于ip访问会返回一个自签名的证书错误,证书颁发域名为一个不存在的域名;
2.未使用443和80端口,使用了一个4位数的端口;
3.“/admin”直接返回404,反正搭建好了也再也不用管理页面了;

50楼 RaGn 7天前

支持原创,去年上了1p的三年半价车,暂时不考虑自建了

52楼 sharp097 7天前

huang1dede 发表于 2022-2-21 10:18
支持知识付费

不过懒得搞,,,感觉还算安全.

我预计后面每个月基于shodan搜索引擎出个bitwarden自建每月全球安全报告,唤醒大家的安全意识~

53楼 sharp097 7天前

RaGn 发表于 2022-2-21 14:32
支持原创,去年上了1p的三年半价车,暂时不考虑自建了

我昨天也想上1P的车可是找来找去某宝只有家庭拼车,因为之前在v2ex见过家庭拼车被删库的案例所以不敢上车,你的3年半是啥渠道呀~

54楼 sharp097 7天前

袁小松 发表于 2022-2-21 13:43
1.基于ip访问会返回一个自签名的证书错误,证书颁发域名为一个不存在的域名;
2.未使用443和80端口,使用了 ...

这样也行呢~

55楼 sharp097 7天前

apdc 发表于 2022-2-21 15:17
这么复杂?
直接内网建一个。弄个端口映射不用的时候关端口就拉到了。

是有点复杂,所以才叫终极加固嘛~

56楼 bobbylong 7天前

把密码往公网上放,跟脱了裤子放P区别在哪里???

57楼 sharp097 7天前

把密码往公网上放,跟脱了裤子放P区别在哪里???

那1passwd或者lastpass这种算啥呢,只是我的安全措施不如人家而已~

58楼 小学生 7天前

搭建在一台VPS上,开放一个高位端口号,然后另一台小鸡反代,再套CF,皇帝老子都找不到我的IP

59楼 mikasa 6天前

人懒,选着直接用官方的

60楼 cangshui 6天前

只开放了ipv6访问,想扫我怕是得扫好几年

62楼 RaGn 6天前

我昨天也想上1P的车可是找来找去某宝只有家庭拼车,因为之前在v2ex见过家庭拼车被删库的案例所以不敢上车 ...

就是官方那个新用户3年半价的车啊,自己新建账户可以选择家庭套餐或者个人套餐,在99刀充125刀1p礼品卡,我用的个人账户,年费17.94刀,三年后恢复原价35.88

63楼 sharp097 6天前

小学生 发表于 2022-2-21 22:18
搭建在一台VPS上,开放一个高位端口号,然后另一台小鸡反代,再套CF,皇帝老子都找不到我的IP ...

哈哈你厉害~

64楼 sharp097 6天前

RaGn 发表于 2022-2-22 08:39
就是官方那个新用户3年半价的车啊,自己新建账户可以选择家庭套餐或者个人套餐,在99刀充125刀1p礼品卡, ...

好的,我也去换个新的邮箱看看还是不是新用户~

65楼 xlouspeng 昨天11:42

官方可以用呀?我测试移动和联通正常

66楼 ZhènJīngBù 昨天13:46

有没有开源云同步记账的

67楼 last_host 昨天13:51

我觉得keepass就很好啊

68楼 clcavril 昨天14:51

dns上再控制一下,分省分运营商解析

69楼 伊若 昨天14:56

本地excel保存一份。。

70楼 diocat 昨天21:18

说那么多不如简单的放到内网服务器上,在外用的时候连进局域网即可。

不会有人以为内网是绝对安全的吧,都元老了还这种意识

72楼 diocat 1小时前

不会有人以为放内网就没有安全意识吧?
你金牌会员何来自以为是?

真正的安全放外面给人捅都进不去,不会有人掩耳盗铃吧
毕竟金牌吊打一些所谓的元老

73楼 suichang 半小时前

真正的安全放外面给人捅都进不去,不会有人掩耳盗铃吧
毕竟金牌吊打一些所谓的元老 ...

你高兴就好,自以为是一般都是低手。

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

退出移动版