我们正在尝试为两台服务器之间的备份实现安全的 rsync。我们正在尽一切努力避免在两个系统之间没有密码的情况下进行 root 访问,如果有的话,只需为特定用户执行此操作。
我了解这与备份文件的权限有关。我在 serverfault和这个网站上读过关于使用 fakeroot 和 SSH 服务器的“PermitRootLogin 强制命令”选项,但仍然无法从安全角度确定什么是最合乎逻辑和合理的选项看法。我们不希望 root 用户在没有密码的情况下自动在另一台机器上拥有 root 访问权限。不确定我们是否只是对它偏执,但我认为这是很常见的事情,任何反馈都会受到赞赏。
- PermitRootLogin 强制命令仅带有一对没有密码的密钥是否足够好?这是否需要目标服务器(即 rsync)上允许的命令的特定列表?
- fakeroot 选项会起作用吗(在我们的例子中主要是数据备份),如果是这样......它如何与 rsync 命令结合使用?
- 我们能否在两个系统上都有一个具有足够权限的 rsync 用户,以便无密码 rsync 可以正常工作?
非常感谢。
您是对的,在您的实时计算机或备份计算机上进行无密码 root 登录是一个坏主意 - 如果有人获得对一侧的访问权限,他们会立即访问另一侧,因此可能会损坏您的实时数据和在线数据同时备份。
如果您的待备份服务器正在向存储备份的服务器推送更新,并且您只需要添加
--fake-super
到 rsync 命令行并确保接收端的文件系统支持扩展属性,那么 fakeroot 选项应该可以正常工作。另一种选择是引入一个中间机器,活动服务器和备份服务器都具有基于密钥的 root 登录。那是现场机器可以使用 rsync 将备份推送到中间机器,然后备份机器可以将它们拉下来,而现场机器或备份机器根本无法相互登录,更不用说以 root 身份登录。中间机器也不需要能够通过实时或备份服务器进行身份验证。中间服务器只需要足够的空间来保存所有东西的 ltest 版本(即存储在备份服务器上的数据,包括不同时间的快照,可能比中间服务器可以存储的数据大几倍。
当然,不言而喻,除了在服务器之间禁止基于密钥的 root 登录外,您还要确保 root(和其他)密码也因机器而异。