我有一台租用的专用服务器,我在上面托管某些服务。
出于安全原因,我创建了一个规则链,将检查列出的 DDNS 地址并仅连接到匹配的连接。这似乎比按国家/地区阻止或接受要好。
前任。
-A ACCEPT_PERSONAL -s xxx.dns.com -j ACCEPT
-A ACCEPT_PERSONAL -s yyy.dns.com -j ACCEPT
它运行了一段时间,但几天后突然我无法访问我的服务器。在主机的一些支持下,我能够通过 webmin 访问,并发现我在 iptable 中的 DDNS 地址已被替换为实际 IP,并且由于任何原因它们已经更改。
关于发生了什么的任何想法?我检查了 cron 作业,尤其是每周检查一次,但没有发现任何可疑之处。
我也使用 Webmin 来设置值
DNS 解析发生在防火墙规则加载到内核之前,因此您无法使用 iptables 做您想做的事情。
您提到您正在检查列出的 DDNS 地址。很多时候,我看到这些列表不是 100% 可靠的。在某些列表中,我自己的静态 IP 被归类为动态。因此,您尝试访问计算机的公共 IP 也可能进入 DDNS 列表。如果您试图保护您的系统免受 SSH 攻击,我建议您像DenyHosts这样的想法
正如 womble 所说,iptables 在加载规则时会进行名称解析。您可能希望使用 管理访问权限
hosts.allow
,例如您还可以使用
sshd_config
. 任何一种方法都会在连接时查找您的地址。fail2ban在我的虚拟服务器上非常适合我。它可以配置为与多个服务、ssh、ftp 等一起使用。我目前使用它来阻止对 SSH 和 FTPS 的暴力尝试。在 X 尝试登录您的服务器失败后,它将使用 iptables 自动禁止 IP 一段时间。