通过两台服务器自动安全地传输文件

通过两台服务器自动安全地传输文件

问题是如何以安全性方面最好的方式自动将备份从服务器 A 传输到服务器 B?

这是我的想法:

  • 授权服务器 A 公钥访问服务器 B
  • 在服务器B上创建用户仅用于备份
  • 在服务器A上运行ssh-agent,重启后手动输入密码
  • 使用 scp 自动将文件从服务器 A 复制到服务器 B

但是如果坏人可以访问服务器 A,他基本上也可以访问服务器 B。那么我必须限制服务器B用户吗?我该如何做到这一点,这是通过网络进行整个备份的最佳方式吗?

问候

答案1

  • 不允许服务器 A 隐式ssh访问服务器 B,也不允许服务器 B 隐式ssh访问服务器 A。密码不同。没有基于证书的登录。不可信。
  • 在服务器 A 上设置rsync为守护进程,以便它提供对备份的只读访问,并且只能从服务器 B 进行。不是通过ssh,而是直接。
  • rsync让服务器 B 定期从服务器 A复制备份。(不是rsync通过ssh,而是使用rsync传输协议)
  • 使用 VPN 或类似的东西stunnel来保护rsync服务器 A 和服务器 B 之间的流量。

答案2

你几乎已经拥有了。服务器 B 上的用户必须/bin/false以 shell 形式给出,这将禁止从服务器 A 进行交互式登录(但仍然可以获取或删除服务器 B 上的文件)。

编辑:

  • 用作/bin/falseshell禁止复制
  • 还使用/usr/sbin/nologin(他的帐户目前不可用。)

更复杂的解决方案将涉及vsftp(not ftps),但这需要 ssl 证书。

答案3

我建议cronjob使用scp复制文件。

编写一个 shellscript backupToServer.sh,它将要备份的文件打包,然后将它们放在服务器上scp /path/to/backup/tar user@server:/path/where/backup/is/stored。利用ssh 密钥

您可以使用date或类似的工具来正确命名您的备份。

crontab -e您一起添加新的cronjob.看一下 的时间设置crontab,虽然很琐碎,但乍一看却很奇怪。

相关内容