IPTables允许通过主动连接进行阻塞

我有一个备份服务器,我想知道如果我设置一个cron作业,以允许从IPTables中的服务器连接,然后一旦它连接到rsync,我可以使用IPTables然后closures端口,以防止连接?

这个想法是阻止备份如果主服务器被攻破的机会(是的,它是安全的,但我没有机会)。

编辑:经过尝试的东西,因为如何工作。 我决定最好的想法是设置第二台服务器,它将从第一台服务器上启动。

假设它通过ssh连接而不是rsyncd,你可以用这样的规则来处理

iptables -A INPUT -s <server> -p tcp --dport ssh -m connlimit --connlimit-saddr --connlimit-upto 1 -j ACCEPT

提供没有其他规则允许它和INPUT政策是拒绝或DROP,这将工作。

如果你还想限制这个特定的时间,另外使用-m time --timestart 01:00:00 --timestop 01:02:00 – 这将提供一个两分钟的窗口,每天从凌晨1点开始

首先,直接回答你的问题:是的,这当然是可能的,而且很简单。

您只需要一个cron作业就可以允许来自该服务器的stream量:

 -A Firewall-1-INPUT -p tcp -m state --state NEW -s 1.2.3.4 -j ACCEPT 

然后另一个cron作业去除该规则:

 -D Firewall-1-INPUT -p tcp -m state --state NEW -s 1.2.3.4 -j ACCEPT 

但…

你使用本地rsync协议连接吗? 如果是这样,你真的不应该这样做,因为它是弱鉴定和未encryption的。 相反,通过SSH使用rsync,密钥validation和密码authclosures(你应该已经在你的服务器上这样做了)。 通过使用rsync + ssh,所有stream量将被encryption,并且使用密钥身份validation,也不需要执行iptables歌曲和跳舞,因为有人蛮横强制您的用户名和密钥对的机率远远无法达到。

另外,正如下面Skaperen所提到的那样,你的备份服务器应该是启动到备份系统的连接,而不是相反。

为了达到你的目标,我会考虑将备份服务器隔离在防火墙后面的私有IP子网上,并通过私有IP和基于ssh密钥(不是密码)的连接发起互联网连接服务器的备份。 这种方式可以做强大的事情,更多的互联网隔离。