最近的删除代码空间让我想到了异地备份过程(我目前通过输入密码手动执行)。我一直在阅读教程展示如何通过口是心非来自动执行备份。这些往往围绕使用 SSH 密钥来自动执行备份服务器的身份验证过程。
然而,这对我来说似乎充满了漏洞。如果正在备份的服务器受到损害,恶意用户可以获得访问权限,那么他们可以自动登录到备份服务器并删除备份。假设备份用户的文件/usr/bin/nologin
中使用了管理员/etc/passwd
(我不知道这在多大程度上可以依赖,或者它是否会防止口是心非地远程工作),那么恶意用户仍然可以通过使用口是心非来擦除备份命令duplicity remove-older-than [time now]
。
是使用 rsync 通过 ssh 将文件发送到备份服务器并让备份服务器上的“主用户”将所有用户帐户执行本地迭代备份到其自己的存储区域的唯一安全解决方案(例如,只有它有权访问其存储区域)自己的文件,但它有权读取所有其他帐户文件)?或者有没有办法防止口是心非删除备份并防止远程登录?
答案1
据我所知,口是心非无法将远程目录备份到本地目录。我分两步解决问题。在备份服务器上执行以下操作:
使用 ssh 密钥通过 ssh 运行 rsync 将远程目录同步到本地目录
rsync -avz -e ssh user@remote:/remote/目录 local_directory
从一个目录到另一个目录运行口是心非。使用非对称 GnuPG 密钥,因此在加密过程中不需要密码。
口是心非 --encrypt-key=YOUR_KEYID local_directory file://backup_directory
或者不加密备份:
duplicity --no-encryption local_directory file://backup_directory
答案2
上传备份后,您可以使用chattr +i
它们使它们不可变,这样它们就不能被修改或删除。只有 root 可以设置或清除该标志。
作为替代方案,您可以chown
在上传后将文件发送给另一个用户,以便备份帐户不再有权访问它们。