将DDNS条目replace为iptables链上的实际IP

我有一个租用的专用服务器,我承载某些服务。

出于安全原因,我制定了一个规则链,它将检查列出的DDNS地址,并只连接到匹配的连接。 这似乎比阻止或接受国家好。

防爆。

-A ACCEPT_PERSONAL -s xxx.dns.com -j ACCEPT
-A ACCEPT_PERSONAL -s yyy.dns.com -j ACCEPT

它运行良好一段时间,但几天后,突然间我无法访问我的服务器。 从托pipe的一些支持,我可以通过webmin访问,发现我的iptables的DDNS地址已被replace为实际的IP,因为他们已经改变了,无论什么原因。

任何想法发生了什么? 我已经检查了cron作业,特别是每周一次,但是找不到任何可疑的东西。

另外我正在使用Webmin设置值

DNSparsing发生在防火墙规则被加载到内核之前,所以你不能用你想做的事情来使用iptables。

你已经提到你正在检查列出的DDNS地址。 很多次我看到这些列表是不可靠的100%。 某些列表中我自己的静态IP被分类为dynamic。 那么你试图访问你的机器的公共IP也可能进入DDNS列表。 如果你试图保护你的系统免受SSH攻击,我会build议一些人想DenyHosts

正如womble所说,iptables在加载规则时会parsing它的名字。 您可能想要使用hosts.allowpipe理访问,例如

 sshd: xxx.dns.com sshd: yyy.dns.com 

您也可以使用sshd_config “AllowUsers”来pipe理访问。 任何一种方法都会在连接时查找您的地址。

fail2ban在我的虚拟服务器上为我工作的很好。 它可以configuration为使用多种服务,ssh,ftp等。我目前使用它来阻止对SSH和FTPS的暴力破解。 在X失败尝试login到服务器后,它会使用iptables在一段时间内自动禁止IP。