我有一个备份服务器,我想知道我是否设置了一个 cron 作业以允许从 IPTables 中的服务器连接,然后一旦它与 rsync 连接,我可以使用 IPTables 然后关闭端口以防止连接吗?
这个想法是为了阻止主服务器被破坏时备份被擦除的机会(是的,它是安全的,但我不冒险。)
编辑:在尝试了东西之后并且因为事情是如何工作的。我决定最好的主意是设置第二台服务器,它只会从第一台服务器中提取数据。
我有一个备份服务器,我想知道我是否设置了一个 cron 作业以允许从 IPTables 中的服务器连接,然后一旦它与 rsync 连接,我可以使用 IPTables 然后关闭端口以防止连接吗?
这个想法是为了阻止主服务器被破坏时备份被擦除的机会(是的,它是安全的,但我不冒险。)
编辑:在尝试了东西之后并且因为事情是如何工作的。我决定最好的主意是设置第二台服务器,它只会从第一台服务器中提取数据。
假设它通过 ssh 而不是 rsyncd 连接,您可以使用这样的规则来处理这个问题
iptables -A INPUT -s <server> -p tcp --dport ssh -m connlimit --connlimit-saddr --connlimit-upto 1 -j ACCEPT
如果没有其他规则允许它并且 INPUT 的策略是 REJECT 或 DROP,这将起作用。
如果您还想将此限制为特定时间,请另外使用
-m time --timestart 01:00:00 --timestop 01:02:00
- 每天从凌晨 1 点开始提供两分钟的窗口首先,直接回答你的问题:是的,这当然是可能的,而且非常简单。
您只需要一个 cron 作业允许来自该服务器的流量:
然后另一个 cron 作业删除该规则:
但...
您是否使用本机 rsync 协议进行连接?如果是这样,你真的不应该这样做,因为它是弱认证和未加密的。相反,通过 SSH 使用 rsync,关闭密钥身份验证和密码身份验证(无论如何你应该已经在你的服务器上这样做了)。通过使用 rsync+ssh,所有流量都将被加密,并且使用密钥身份验证,也没有必要进行 iptables 歌舞,因为有人暴力破解您的用户名和密钥对的可能性微乎其微。
此外,正如 Skaperen 在下面提到的,您的备份服务器应该是启动与其备份系统的连接的服务器,而不是相反。
为了实现您的目标,我会考虑将备份服务器隔离在防火墙后面的私有 IP 子网上的替代想法,它通过私有 IP 和基于 ssh 密钥(而非密码)的连接发起互联网连接服务器的备份。这样,可以执行强大操作的密钥与互联网更加隔离。