我正在使用Dirvishconfiguration备份服务器,它将通过Internet备份多个Ubuntu服务器。
作为我们安全策略的一部分,我们不允许在服务器上以root身份loginsshlogin。
如何使用Dirvish来备份我的服务器,而不以root身份login,并且在sudoers中不提供使用NOPASSWORD的dirvish用户?
理想的解决scheme应该包括备份的目标机器上的最小configuration。
对于任何人看这里是我的解决scheme。
关键点:
Dirvish不支持通过sudo运行rsync(为什么,我不知道)
在AUTHORIZED_KEYS中,您可以限制授权密钥的条件,包括指定单个允许的命令和单个源IP地址。
在sshd_config中,您可以指定仅当指定了-command标志且命令与AUTHORIZED_KEYS中的指令匹配时才允许ssh rootlogin
PermitRootLogin forced-commands-only
完整的程序在这里: http : //apt-get.dk/howto/backup/
你在正确的轨道上,不允许通过SSH根login。 但是,关于sudo的先决条件是不合理的。
但是,sudo允许对给定用户能够执行的和不能执行的内容进行非常精细的控制。 你可以允许这个唯一的用户只使用一个二进制而不需要密码。
将此与该用户的基于密钥的身份validation相结合,并且您有自己的备份解决scheme。
针对问题的更多细节,我正在用不同的解决schemejoin第二个答案。 显然, dirvish在后端使用rsync,而@Rich指出允许sudo访问,即使只有一个命令也能完全控制根文件系统。
鉴于此,我build议与用户组进行一些工作,以便用户可以运行,因为已经通过正确的用户组读取了需要备份的文件。 这样可以避免发生任何根级漏洞。
将使用sshd标志“PermitRootLogin without-password”是一个选项吗? 那么你只能用相应的公钥login。 为了更安全,您可以在另一个端口上启用第二个ssh服务器,并只允许在那里使用keyauth。