在LXC容器(如Proxmox)中安装Bitwarden的详细指南

本文详细介绍了如何在Proxmox的LXC容器中安装和配置Bitwarden密码管理器,包括Docker环境设置、模块加载、配置文件修改以及解决特权容器问题的步骤。

在LXC容器(如Proxmox)中安装Bitwarden

许多人都知道,我非常重视安全性,因此坚信一个无法从互联网访问的服务(例如密码管理器)比可访问的服务更难被攻击。在选择密码管理器时,这使选择变得不那么容易。当然,有Keepass及其衍生版本,但它们的问题是安全性仅基于主密码和终端设备的安全性。看到朋友使用Google Drive在设备之间同步密码文件,我考虑过这个选项,但它不适合我(例如浏览器集成、双因素认证等)。

像Lastpass或1Password这样的密码管理器也不适合我。是的,我相信它们的加密技术很好,而且它们从未看到用户的密码,但双因素认证的安全性仅与丢失密码/双因素认证重置功能一样好。我读过并见过太多针对此功能的攻击,因此无法依赖它。

所有这些都让我选择了Bitwarden,它提供与Lastpass或1Password相同水平的功能,但是开源的,并且可以托管在我自己的服务器上。不将其开放到互联网,仅通过VPN(我本来就有的)远程使用,使得攻击面非常小。这篇博客文章展示了我如何在Proxmox LXC容器中安装它,我这样做是为了将其与其他东西隔离,因此如果我需要升级某些东西,就没有依赖关系。我不喜欢在Proxmox主机本身上安装任何东西。由于这是我第一次尝试,并且我遇到了一个非特权容器和其中的Docker的问题,目前这个设置仅适用于特权容器。我知道这不太好,但在这种情况下,这是一个我可以接受的风险。如果你找到在非特权容器中运行它的解决方案,请给我发送电子邮件或写下评论。

LXC容器

在创建带有Debian 9的LXC容器(2GB RAM,>5GB硬盘)后,不要立即启动容器。你需要将以下内容添加到/etc/modules-load.d/modules.conf

1
2
aufs
overlay

如果你不想启动时加载模块,可以使用:

1
2
modprobe aufs
modprobe overlay

如果你不这样做,你的安装将会变得巨大(超过30GB)。现在,我们只需要将以下内容添加到/etc/pve/lxc/<vid>.conf

1
2
3
4
#insert docker part below
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:

现在你可以启动容器并进入它,我们稍后会检查是否正确,但我们需要Docker来完成这一步。

Docker和Docker Composer

Docker的一些要求:

1
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

现在我们可以添加Docker的仓库:

1
2
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

现在我们可以安装它:

1
2
apt-get update
apt-get install docker-ce

Debian附带的Docker Composer太旧,无法与此Docker配合使用,因此我们需要以下步骤:

1
2
curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

并通过将以下内容添加到.bashrc来将/usr/local/bin/添加到路径变量中:

1
PATH=/usr/local/bin:$PATH

并在bash中直接调用它,以便在不启动新bash实例的情况下设置它。我知道一个包会更好,但找不到,所以这是一个临时解决方案。如果有人找到更好的方法,请在下面的评论中留下。

现在我们需要通过调用docker info来检查overlay是否正常工作,希望你也得到overlay2作为存储驱动程序:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.06.1-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file

Bitwarden

现在我们只需要以下步骤:

1
2
3
4
5
curl -s -o bitwarden.sh https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh
chmod +x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start
./bitwarden.sh updatedb

现在你完成了,你有了自己的密码管理器服务器,它还支持Google Authenticator(基于时间的一次性密码算法(TOTP)作为第二个因素。也许我以后会写一篇博客文章,介绍如何设置Yubikey作为双因素认证(桌面和移动设备)。

在IT安全、Linux中 | 5条评论

5条评论

RSS feed用于本文评论。 TrackBack URI

嗨, 感谢这个教程。不幸的是,在数据库迁移后我总是收到SQL错误消息。 Mike 评论由MZ — 2019年7月6日 #

感谢教程。我非常新手,不确定如何完成第一步: “在创建带有Debian 9的LXC容器(2GB RAM,>5GB硬盘)后,不要立即启动容器。你需要将以下内容添加到/etc/modules-load.d/modules.conf: aufs overlay” 我已经在proxmox服务器中创建了LXC容器,但不知道如何在不启动容器的情况下访问/etc/modules-load.d/modules.conf。我假设我必须在proxmox shell中完成,但多次搜索几乎没有找到如何在不启动容器的情况下修改LXC文件的见解。任何建议都感激不尽,谢谢! 评论由Drew — 2020年9月26日 #

抱歉我的文字误导了你,你只需要将这个添加到proxmox系统的modules.conf中,而不是容器。 评论由robert — 2020年9月27日 #

嗨, 感谢这个!我会试试看。你找到使用特权容器的方法了吗? Lawr 评论由Lawr — 2021年4月29日 #

打字错误,抱歉,我意思是“非特权”

评论由Lawr — 2021年4月29日 #

留下评论

名称(必填)

邮件(不会发布)(必填)

网站 Δ

XHTML:

由WordPress提供支持 条目和评论feed。 有效的XHTML和CSS。

37次查询。0.071秒。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计