在LXC容器中安装Bitwarden(例如Proxmox环境)
背景与动机
作为注重安全的技术人员,我坚信不可从互联网直接访问的服务更难以被攻击。对于密码管理器而言,选择变得困难:KeePass及其衍生品仅依赖主密码和终端设备安全,而Lastpass或1Password等云服务的双因素认证重置功能存在安全隐患。
Bitwarden提供了与商业密码管理器相同的功能级别,但它是开源的,可以在自有服务器上托管。通过不向互联网开放且仅通过VPN远程访问,极大地减少了攻击面。
LXC容器配置
使用Debian 9创建LXC容器(2GB内存,>5GB硬盘)后,不要立即启动。首先在/etc/modules-load.d/modules.conf中添加:
aufs
overlay
若不希望启动时加载模块,可运行:
modprobe aufs
modprobe overlay
此步骤可避免安装体积膨胀(超过30GB)。接着在/etc/pve/lxc/.conf中添加:
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
Docker与Docker Compose安装
安装Docker所需依赖:
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
添加Docker仓库:
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"
安装Docker:
apt-get update && apt-get install docker-ce
由于Debian自带的Docker Compose版本过旧,需要手动安装:
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
将/usr/local/bin/添加到PATH环境变量中。
Bitwarden部署
执行以下命令完成安装:
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)作为第二因素的自托管密码管理器服务器。
注意事项
当前配置仅适用于特权容器,存在一定安全风险。若发现非特权容器的解决方案,欢迎通过邮件或评论分享。