使用
最后更新于
“为帮助确保您的帐号安全,从 2022 年 5 月 30 日起,Google 不再支持那些会要求您仅使用用户名和密码登录 Google 帐号的第三方应用或设备。”,参阅。
对于 Gmail SMTP,建议使用 Google 的应用专用密码。参阅。
1、拉取最新版本的稳定版镜像
2、停止旧版本容器
3、移除旧版本容器
4、使用已挂载的数据创建新的容器
为新域名添加相应的 DNS A 记录
重启 Nginx
修改 Vaultwarden 配置文件(位置:/vaultwarden-data/config.json
),将 "domain"
的值修改为新的域名
重启 Vaultwarden(命令:docker restart vaultwarden
)
Choose an API → 勾选 Scoped access(以前可选 Dropbox Legacy API,目前已移除)
Choose the type of access you need → 选择 App folder
Name your app → 输入 App 名称(必须是不存在的名称,已存在会有提示已被占用),此名称会作为 Dropbox 上此 App 可读写的文件夹名称
创建成功后,进入应用
在 Setting 选项卡下的 OAuth 2 部分,Access token expiration 选择 No expiration,然后点击 Generated access token 下方的 Generate 按钮生成 access token,记录下此 access token
值(刷新页面后将不会再次显示)
根据提示输入刚才的 Dropbox 应用的 access token
值,以配置 dropbox_uploader.sh
。
[备注]:删除 .dropbox_uploader
文件后再次运行 ./dropbox_uploader.sh
命令可以重新配置 access token(或直接编辑 .dropbox_uploader
文件)。
复制并粘帖如下内容:
赋予可执行权限:
输入 ./vaultwarden-data_backup.sh
手动执行脚本,以测试能否成功备份。
如果你想保留日志记录,又不希望日志记录文件变得越来越大,可以设置定期转储日志记录。
创建日志转储规则文件:
复制并粘帖如下内容:
这里设置为每天转储一次(如果日志记录比较少也可以设置为每周或每月),并保留 30 个转储的日志记录文件。
配置解释:
daily
:daily
指定转储周期为每天。也可以为 weekly
/monthly
。默认为 weekly
。
rotate 30
:表示转储备份的数量。这里为 30 个。
missingok
:在日志转储期间,任何错误将被忽略。
copytruncate
:用于还在打开中的日志文件。把当前日志截断并备份,然后再清空。由于备份和清空之间有一个时间差,可能会丢失部分日志数据。
noolddir
:转储后的日志文件和当前日志文件放在同一个目录下。
dateext
:指定转储后的日志文件以当前日期格式结尾。如 vaultwarden.log-20201020
。
postrotate/endscript
:在转储之后需要执行的命令可以放入这个语句对中,这两个关键字必须单独成行。同样,prerotate/endscript
表示在转储之前需要执行的命令。
如果你不想保留日志记录,也可以设置定期将其清空。
创建脚本文件:
复制并粘帖如下内容:
赋予可执行权限:
创建自动执行任务:
将 Fail2ban 加入开机启动:
启动 Fail2ban:
创建文件:
复制并粘帖如下内容:
创建文件:
复制并粘帖如下内容:
创建文件:
复制并粘帖如下内容:
创建文件:
复制并粘帖如下内容:
先打开文件监控:
然后尝试用错误的登录信息登录网页密码库或管理页面,Fail2ban 如果生效的话,将在 fail2ban.log
文件监控窗口显示相关的警告信息,类似于: INFO [vaultwarden] Found 172.68.142.89 - 2020-11-03 20:15:08
,当一定时间内达到设置的失败次数时:NOTICE [vaultwarden] Ban 172.68.142.89
,如下图:
同时查看系统的当前 iptables,在最下面会显示 f2b-vaultwarden 封禁的 IP:
如果您的 IP 被 ban,浏览器刷新时将无法再次打开网页密码库或管理页面。
Fail2ban 常用命令:
sudo systemctl start fail2ban
# 启动 Fail2ban
sudo systemctl stop fail2ban
# 停止 Fail2ban
sudo systemctl restart fail2ban
# 重启 Fail2ban
sudo fail2ban-client ping
# 检查 Fail2ban 是否正常运行(正常将显示 pong
)
参数解释:
failregex = ^.*Invalid admin token\. IP: <ADDR>.*$
# 查找日志记录中错误记录正则表达式
ignoreregex =
# 忽略日志记录中错误记录正则表达式
filter = vaultwarden
# 对应的筛选器名称
action = iptables[name=vaultwarden, port=443, protocol=tcp]
# 动作参数
logpath = /vaultwarden-data/log/vaultwarden.log
# 日志文件的路径
maxretry = 10
# IP 被 ban 前允许失败的次数
bantime = 43200
# IP 被 ban 的时长(秒),-1
表示永 ban
findtime = 3600
# 此时长(秒)内达到 maxretry
次就 ban IP
ignoreip = xxx.xxx.xxx.xxxx
# 不受限制的 IP
保持文件结构,将翻译好的模板文件放置于您安装的 Vaultwarden 对应的文件夹下(这里为 /vaultwarden-data/templates/email
,其中 vaultwarden-data
是部署的时候使用 -v
参数指定的宿主机文件夹 )
重启 Vaultwarden(命令:docker restart vaultwarden
)
保持文件结构,将翻译好的模板文件放置于您的安装的 Vaultwarden 对应的文件夹下(这里为 /vaultwarden-data/templates/admin
,其中 vaultwarden-data
是部署的时候使用 -v
参数指定的宿主机文件夹 )
重启 Vaultwarden(命令:docker restart vaultwarden
)
使用 Outlook 始终无法配置成功,但我部署的官方 Bitwarden 使用 Outlook 配置 SMTP 完全正常。此故障可能和这个有关:
按照步骤中的说明添加新的虚拟主机
按照步骤中的说明修改新主机的 Nginx 配置文件(位置:/usr/local/nginx/conf/vhost/your-new-domain.com.conf
)
这里我们使用 脚本自动打包并备份整个 vaultwarden-data
文件夹到 Dropbox。
登录 Dropbox 后,打开 页面,点击 Create app 按钮创建一个 App
SSH 定位到 VPS 的 root
目录,下载 脚本文件并赋予可执行权限,然后运行脚本:
详细配置参阅 。
设置 后,可以在您设置的 n 次错误登录后自动阻止登录的 IP 地址,防止攻击者暴力破解您的密码库登录,以增强您的 Vaultwarden 的安全性。
如果您的域名使用 解析,为了使 Fail2ban 对 IP 拦截更准确,需要设置其代理状态为 DNS only
(仅限 DNS),而不要设置为 Proxied
(已代理)。
下面的 jail 文件中 的 action =
语句根据 CentOS 7 使用的是 iptables 防火墙,如果使用 ,写法应有所不同。
这里以我的 上的 CentOS 7 with iptables 防火墙为例。
参看章节。
将 电子邮件模板文件(位置:src/static/templates/email
)里的相应文字翻译成您需要的语言,注意确保文件里的 {{variables}}
以及 HTML 标签的完整
将 管理面板模板文件(位置:src/static/templates/admin
)里的相应文字翻译成您需要的语言,注意确保文件里的 {{variables}}
以及 HTML 标签的完整