升级版本至Veeam Backup & Replication 12 时报"Insecure hardened repository configuration."
升级版本至Veeam Backup & Replication 12 时报"Insecure hardened repository configuration."
现象
当我们升级版本至Veeam Backup & Replication 12时,配置检查时会出现以下兼容性错误
"Insecure hardened repository configuration."

解决方法
在Veeam Backup & Replication 11中,配置Hardened Repository是Veam推荐使用single-use credentials账户,但不是强制要求。从12开始时必须使用非root的single-use credentials账户。
更改账户
在Veeam11中,编辑对应的 Linux 服务器
在 SSH Connection 页面, 添加非root的账号,若此账号无sudo权限的,需要提权。

修改Veeam连接的Linux用户后,Veeam Data Movers 访问以前备份在Linu上的备份数据。下面提供的脚本,会重新修改备份数据的属主给新的非root账户,确保veeam能够正常访问linux的备份数据。
以下脚本需要使用root权限运行
#!/bin/bash
auxiliaryfile="/tmp/veeamstoragefilenames_"$(date '+%Y-%m-%d-%H-%M')
find $1 -name "*.vbk" -o -name "*.vib" -type f > $auxiliaryfile
while read -r line;
do
is_immutable=false
STR=$(eval lsattr -Rl ${line// /\\ })
SUB=' Immutable'
SUB2=',Immutable'
if [[ "$STR" == *"$SUB"* ]]; then
is_immutable=true
elif [[ "$STR" == *"$SUB2"* ]]; then
is_immutable=true
fi
if [[ $is_immutable == 'true' ]]; then
eval chattr -i "${line// /\\ }" ;
fi
eval chown $2:$3 "${line// /\\ }" ;
if [[ $is_immutable == 'true' ]]; then
eval chattr +i "${line// /\\ }" ;
fi
done < $auxiliaryfile
find $1 -name "*.vbm" -type f > $auxiliaryfile
while read -r line;
do
eval chown $2:$3 "${line// /\\ }" ;
done < $auxiliaryfile
chown -R $2:$3 $1 2>/dev/null
rm -rf $auxiliaryfile
示例
- Linux Veeam 备份数据路径为: /veeamrepo/
- 备份文件目录归属: root:root
- 已创建非root用户及组:backupsvc:backupsvc

使用root用户运行
- 赋予脚本执行权限
chmod +x change_backup_owner.sh
- 运行脚本
./change_backup_owner.sh /veeamrepo/ backupsvc backupsvc
运行结束后查看目录归属

确认无误后,即可继续Veeam12的升级。