VaultWarden是一个非常优秀的密码管理器,之前使用1Password,一年不少的订阅费用,切换到VaultWarden,开源免费,自托管安全可靠。
VaultWarden可以使用Docker快速部署,也可以使用矿神源的VaultWarden。
Docker部署版本使用上存在如下问题:
- 无法感知到新版本;
- 注册表总是抽风不可用。
直接使用矿神源的VaultWarden,则定期自动升级套件即可。
1. 创建专用共享文件夹
专门为VaultWarden创建一个共享文件夹,该文件夹启用加密特性。
设置好加密密钥,并且勾选将加密密钥添加到密钥管理器
,这样在设备重启时可以自动挂载该共享文件夹目录,避免还需要手动执行挂载才能使用VaultWarden服务的情况。
2. 安装矿神源VaultWarden
矿神源地址如下:https://spk7.imnks.com/
配置好后,可在套件中心的“社群”分类中找到VaultWarden
。
安装该套件。
3. VaultWarden套件配置
3.1. 修改主数据文件夹
安装好后,从桌面打开VaultWarden
,将打开配置窗口。
找到数据文件夹
分类设置,修改主数据文件夹的路径
,让数据可以在Web Portal中管理,若不修改,则数据缺省将保存在如下目录中/volume1/@appdata/Vaultwarden/data
,并且属主为Vaultwarden
,内容将无法通过DSM Portal看到并管理,最致命的是无法通过HyperVault来执行备份。
为了让数据更方便、安静地控制在自己的手中,修改主数据文件夹的位置。
在新创建的VaultWarden
共享文件夹下创建data
目录,作为VaultWarden的主数据目录。
接下来要注意修改/volume1/VaultWarden
和/volume1/VaultWarden/data
目录的权限,使得Vaultwarden
用户可以读写。
常规
页签中的内容不变,不用变更拥有者。切换到权限
页签,新增
一个用户权限,用户名为Vaultwarden
,权限赋予读取和写入的所有权限,并勾选应用到这个文件夹、子文件夹及文件
。
修改如下内容:
## 主数据文件夹
# DATA_FOLDER=data
为:
## 4. 主数据文件夹
DATA_FOLDER=/volume1/VaultWarden/data
在套件中心重启VaultWarden套件,这时,在File Station中可见的共享文件夹中就有VaultWarden的所有数据了。
3.2. 允许新用户注册
在常规设置
分类中,设置VaultWarden允许注册。
修改:
## 5. 控制新用户是否可以注册
# SIGNUPS_ALLOWED=true
为:
## 控制新用户是否可以注册
SIGNUPS_ALLOWED=true
在套件中心重启VaultWarden套件。
3.3. 设置ADMIN_TOKEN
在高级设置
分类中,找到管理界面令牌的Token设置,修改掉默认的ADMIN_TOKEN
为一个新的随机串(手动改一下原来的字符串的部分字符也可)。
修改:
# ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$MmeKRnGK5RW5mJS7h3TOL89GrpLPXJPAtTK8FTqj9HM$DqsstvoSAETl9YhnsXbf43WeaUwJC6JhViIvuPoig78'
为:
# ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$MmeKRnGK5RW5mJS7h3TOL89GrpLPXJPAtTK8FTqj9HM$DqsstvoSAETl9YhnsXbf43WeaUwJC6JhViIvuPoig78'
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$MmeKRnGK5RW5mdjfdskjgkdfjgkdfjdfkjgfdkgjdfkgjdfksl4jkdjgfkjgfkggfkjlhkfldljgdkjgkjfgjfk'
注:上述为示例,非真实TOKEN。
在套件中心重启VaultWarden套件。
4. 防火墙设置
此时,需要在防火墙上放开全链路合适的访问权限,并创建第一个用户。
因此,需要在DSM上设置仅允许从WAF服务器来访问8507
端口:
然后在WAF所在的192.168.3.10
服务器上设置允许所有至开放的公网VaultWarden端口的访问:
然后,在WAF防火墙中新建反代的站点:
至此,则可以通过公网访问VaultWarden了:
5. 创建第一个用户
此时,若不想再开放新用户注册,强烈建议回到VaultWarden配置中,关闭允许新用户注册,参考3.2章节。
将配置项修改为:
## 控制新用户是否可以注册
SIGNUPS_ALLOWED=false
6. 导入密码库数据
如果是从旧的密码切换到新建的密码库,则通过导出导入将密码数据导入到新的密码库中。
7. 密码库安全设置之设置“两步登录”验证TOTP
必须为用户启用两步登录
,以保证身份认证的安全。在设置
-> 安全
设置中,切换到“两步登录”,启用“验证器App”的TOTP认证。
启用后,再次登录需要校验TOTP:
至此,VaultWarden配置完成。
8. 备份VaultWarden数据
最后,VaultWarden数据的重要性不言而喻,那么我们需要遵从3-2-1
,甚至3-2-1-1
的备份策略保护数据的完整性与机密性。建立 3-2-1 备份策略,即至少要有 3 份数据备份,将这些备份存放在 2 种不同的存储设备上,至少异地备份 1 份,避免硬件或软件的故障、数据损坏、勒索病毒攻击造成的数据丢失。
整体的措施如下图所示:
其中:
- 3 : 一共需要3份副本,本方案中3份副本如下:
- 生产一份数据;
- 生产通过Snapshot Replication复制快照至另一个存储空间一份;
- 生产通过Hyper Backup备份至远程NAS一份(容灾);
- 2 : 存储在2种介质上,其中本地NAS存储在2个不同的存储空间上;
- 1 : 一份远程,异地容灾一份快照;
- 1 : 一份不可变存储,异地容灾的备份再通过Snapshot Replication复制到WORM的共享文件夹中;
8.1. Snapshot Replication本地快照计划
打开Snapshot Replication
,设置快照计划:
该快照是创建在存储空间本地的。为了保持多副本在不同介质上,再创建复制
计划:
8.2. Snapshot Replication本地复制计划
将数据在本地NAS上从存储空间1
复制一份至存储空间2
。
是否再“复制计划拍摄的本地快照”,这个可以勾选也可以不再重复复制。
复制计划将新创建一个VaultWarden-1
的共享文件夹,并且将继承源共享文件夹的加密特性及加密密钥,需要保持为卸载状态,以保证复制任务可以正常执行。
8.3. HyperBackup远程备份计划
先在远程NAS目标端创建一个加密的共享文件夹:
在本地启用Hyper Backup,并按照向导一步一步配置备份任务。
注意:需要在目标服务器上在防火墙上开放6281端口,否则,可能无法创建备份任务。
立即执行一次远程备份:
8.4. 远程备份本地复制至WORM存储
远程NAS上现在在存储空间1
已经有一份加密的备份文件,保险起见,可以再在远程NAS上通过Snapshot Replication将存储空间1
的备份复制一份至存储空间2
的加密共享文件夹中,并对文件开启WORM不可变特性。
上面配置的远程备份是每天早上8点,远程NAS上的本地复制则设置到上午10点,晚2个小时,保证远程备份已完成。
配置好后,系统将立即执行首次复制:
至此,全部妥当。