如何安全地设置 Ubuntu 的 rsync 备份?

如何安全地设置 Ubuntu 的 rsync 备份?

我一直在关注各种其他教程和博客文章,了解如何将 Ubuntu 机器设置为备份“服务器”(我将其称为服务器,但它只是运行 Ubuntu 桌面),我使用 rsync 将新文件推送到该服务器。现在,我能够使用 rsync 和 ssh 从我的笔记本电脑连接到服务器,使用我创建的 RSA 密钥,并且当我的笔记本电脑连接到服务器也连接到的家用路由器时,不会提示输入密码。我希望能够在外出时从我的笔记本电脑发送文件。我看过的一些教程有一些关于安全性的简短建议,但它们并没有重点关注这些建议。

我需要做什么才能让我的笔记本电脑将文件发送到服务器,而不会让其他人轻易侵入服务器?

以下是我目前所做的工作:

  • 运行 ssh-keygen 和 ssh-copy-id 为我的笔记本电脑和服务器创建密钥对。

  • 在服务器上创建了一个脚本,将其公共 IP 地址写入文件,加密文件,然后上传到我可以访问的 ftp 服务器(我知道我可以为这部分注册一个免费的动态 DNS 帐户,但由于我有 ftp 帐户并且并不真正需要让 IP 公开访问,所以我认为这可能会更好)。

以下是我看到的建议:

  • 端口转发:我知道我需要在路由器上为服务器分配一个固定的 IP 地址,然后告诉路由器将一个或多个端口转发给它。我应该只使用端口 22 还是选择一个随机端口并使用它?

  • 打开防火墙 (ufw)。这会有什么作用吗?还是我的路由器已经阻止了我想要的端口之外的所有内容?

  • 运行fail2ban。

所有这些事情都值得做吗?我还应该做点别的吗?我是否可以将服务器设置为仅允许使用 RSA 密钥(而不是使用密码)进行连接,或者 fail2ban 是否会提供足够的保护来防止恶意连接尝试?是否可以限制服务器允许的连接类型(例如仅 ssh)?

我希望这个问题不会太多。我对 Ubuntu 还很陌生(但在 OSX 上使用 shell 和 bash 脚本)。我不需要绝对最安全的设置。我想要一个相当安全的东西,但不要太复杂,以免它很容易以一种我难以修复的方式被破坏。

答案1

好的,我认为您尝试过度设计了。SSH 是最安全的文件传输协议之一,如果您已经通过 ssh 进行 rsyncing,那么您已经完成了 90%。您的路由器充当基本防火墙,因此您不需要为个人备份服务器打开 iptables。

坚持使用端口 22。它将使生活变得更加轻松。

fail2ban 是一款适用于公共服务器的优秀脚本,尤其是在启用了基于密码的登录的情况下。在您的服务器上,它会产生比修复更多的问题。我不建议运行它。以下是我的建议:

  • 继续获取动态 IP,这样会更容易,当你出去旅行时,你的 ftp 脚本会因为一些非常奇怪的原因失败。基本上就是 KISS。
  • 禁用 ssh 的密码登录。在 /etc/sshd_config 中更改PasswordAuthentication yesPasswordAuthentication no,并确保challengeresponse设置为 no。这将阻止任何没有您的私钥的人登录。

除此之外,默认情况下基本都涵盖了。ssh 加密流量并验证主机/客户端。之后就没什么可说的了。

相关内容