本文介绍使用Bitwarden和Podman管理Fedora Linux系统上的密码的方法。
前言 常见且被推荐的密码管理器,比如有LastPass、1Password或Dashlane,密码管理器消除了记住所有网站密码的负担,您不再需要重新使用密码或使用易于记忆的密码,相反,您只需要记住一个可以解锁所有其他密码的密码。 通过使用一个强密码而不是弱密码,这可以使您更安全,如果您有基于云的密码管理器(如LastPass、1Password或Dashlane),您还可以跨设备同步密码,不幸的是,这些产品都不是开源的,不过有可用的开源替代品,以下讲讲开源密码管理器。 这些替代品包括Bitwarden、LessPass或KeePass,Bitwarden是一个开源密码管理器,它存储在服务器上加密所有密码,其工作方式与LastPass、1Password或Dashlane相同,LessPass有点不同,因为它专注于成为无状态密码管理器,这意味着它根据主密码、网站和用户名导出密码,而不是存储加密的密码,另一方面,KeePass是一个基于文件的密码管理器,它的插件和应用程序具有很大的灵活性。 这三个应用程序中的每一个都有其自身的缺点,Bitwarden将所有东西存储在一个地方,并通过其API和网站界面暴露给网络,LessPass无法存储自定义密码,因为它是无状态的,因此您需要使用其派生密码,KeePass是一个基于文件的密码管理器,无法在设备之间轻松同步,您可以将云存储提供程序与WebDAV一起使用来解决此问题,但是许多客户端不支持它,如果设备无法正确同步,您可能会遇到文件冲突。 本文重点介绍Bitwarden,参考在Linux上安装BitWarden开源密码管理器的方法。
运行非官方的Bitwarden实现 服务器及其API的社区实现称为bitwarden_rs,这个实现是完全开源的,因为它可以使用SQLite或MariaDB/MySQL,而不是官方服务器使用的专有Microsoft SQL Server(参考:在RHEL/CentOS 8上安装Microsoft SQL Server的方法)。 重要的是要认识到官方和非官方版本之间存在一些差异,例如,官方服务器已经过第三方审核,而非官方服务器则没有,在实现方面,非官方版本缺少电子邮件确认和支持使用Duo或电子邮件代码进行双因素身份验证。 让我们开始使用SELinux来运行服务器,根据bitwarden_rs的文档,您可以构建一个Podman命令(参考:在CentOS 7、Fedora 30/29/28上安装Podman的方法),如下所示: $ podman run -d \ --userns=keep-id \ --name bitwarden \ -e SIGNUPS_ALLOWED=false \ -e ROCKET_PORT=8080 \ -v /home/egustavs/Bitwarden/bw-data/:/data/:Z \ -p 8080:8080 \ bitwardenrs/server:latest 这将下载bitwarden_rs映像并在用户命名空间下的用户容器中运行它,它使用1024以上的端口,以便非root用户可以绑定它,它还会更改卷的SELinux上下文,:Z以防止读写/数据的权限问题。 可以使用命令更改卷的SELinux上下文,以防止读/写/数据的权限问题。 如果您在域下托管它,建议将此服务器放在Apache或Nginx的反向代理下,这样,您可以使用80和443端口指向容器的8080端口,而无需以root身份运行容器。
在systemd下运行 随着Bitwarden的运行,您可能希望保持这种状态,接下来,创建一个使容器保持运行的单元文件,如果它没有响应则自动重新启动,并在系统重新启动后开始运行,将此文件创建为/etc/systemd/system/bitwarden.service: [Unit] Description=Bitwarden Podman container Wants=syslog.service [Service] User=egustavs Group=egustavs TimeoutStartSec=0 ExecStart=/usr/bin/podman run 'bitwarden' ExecStop=-/usr/bin/podman stop -t 10 'bitwarden' Restart=always RestartSec=30s KillMode=none [Install] WantedBy=multi-user.target 现在,使用sudo启用并启动它: $ sudo systemctl enable bitwarden.service && sudo systemctl start bitwarden.service $ systemctl status bitwarden.service bitwarden.service - Bitwarden Podman container Loaded: loaded (/etc/systemd/system/bitwarden.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2019-07-09 20:23:16 UTC; 1 day 14h ago Main PID: 14861 (podman) Tasks: 44 (limit: 4696) Memory: 463.4M 成功,Bitwarden现在在系统下运行并将继续运行。
添加LetsEncrypt 如果您有一个域,强烈建议您通过加密通道运行你的Bitwarden实例,如LetsEncrypt, Certbot是一个为我们创建LetsEncrypt证书的工具,参考使用Certbot:在Linux上安装letsencrypt的最简单方法。 生成证书后,您可以按照有关HTTPS的bitwarden_rs指南进行操作,记得要追加:Z附加到LetsEncrypt卷以处理权限而不更改端口。
相关主题 |