在LXC容器中安装Bitwarden(例如Proxmox环境)
背景与动机
众所周知,我十分重视安全性,并坚信一个无法从互联网访问的服务遭受攻击的难度远高于可公开访问的服务。在选择密码管理器时,这使决策变得复杂。虽然Keepass及其衍生品存在,但它们的安全完全依赖于主密码和终端设备的安全性。看到朋友使用Google Drive同步密码文件后,我考察了这一选项,但它并不适合我(例如浏览器集成、双因素认证等方面)。
Lastpass或1Password等密码管理器也不符合我的需求。尽管我相信它们的加密技术良好,且从不查看用户密码,但双因素认证的安全性取决于密码丢失/双因素重置功能的安全性。我见过太多相关攻击案例,无法依赖这些服务。
这一切让我选择了Bitwarden——它提供与Lastpass或1Password相同的功能级别,但是开源的,并且可以托管在我自己的服务器上。不向互联网开放,仅通过VPN远程使用(反正我已经有VPN),大大减少了攻击面。本文展示了我如何在Proxmox LXC容器中安装它,以实现与其他服务的隔离,从而在升级时没有依赖关系。我不喜欢在Proxmox主机上直接安装任何东西。
由于这是我的首次尝试,并且在非特权容器中运行Docker时遇到了问题,当前设置仅适用于特权容器。我知道这并不理想,但在此情况下,这是一个我可以接受的风险。如果您找到在非特权容器中运行的方法,请发送电子邮件或留言。
LXC容器配置
使用Debian 9创建LXC容器(2GB RAM,>5GB硬盘)后,不要立即启动容器。您需要将以下内容添加到/etc/modules-load.d/modules.conf
:
|
|
如果您不想启动时加载模块,可以使用以下命令手动加载:
|
|
如果不这样做,您的安装将会变得非常庞大(超过30GB)。现在,我们只需将以下内容添加到/etc/pve/lxc/<vid>.conf
:
|
|
现在您可以启动容器并进入它。稍后我们将检查一切是否正确,但我们需要Docker来完成这一步。
Docker和Docker Composer安装
Docker的一些先决条件:
|
|
现在添加Docker的仓库:
|
|
现在安装Docker:
|
|
Debian自带的Docker Composer版本太旧,无法与此Docker配合使用,因此我们需要:
|
|
并通过将以下内容添加到.bashrc
中来将/usr/local/bin/
添加到路径变量中:
|
|
并在bash中直接调用它以在不启动新bash实例的情况下设置它。我知道使用软件包会更好,但找不到,所以这是一个临时解决方案。如果有人找到更好的方法,请在下方留言。
现在我们需要通过调用docker info
来检查overlay功能是否正常工作,希望您也能看到overlay2
作为存储驱动程序:
|
|
Bitwarden安装
现在只需要以下步骤:
|
|
现在您已经完成了,拥有了自己的密码管理器服务器,它还支持Google Authenticator(基于时间的一次性密码算法TOTP)作为第二因素。也许我以后会写一篇博客文章介绍如何设置Yubikey作为双因素认证(桌面和移动设备)。
评论与反馈
文章发布后收到了几条有价值的评论:
- Mike报告在数据库迁移后遇到SQL错误消息
- Drew询问如何在未启动容器的情况下修改LXC配置文件,作者澄清需要在Proxmox系统中而非容器内添加模块配置
- Lawr询问是否找到了在非特权容器中运行的方法
这些互动显示了社区对此技术的兴趣和实际部署中可能遇到的问题。
发布于2019年1月13日 | 属于IT安全、Linux类别 | 5条评论