/etc/hosts.allow 中拒绝的 IP 地址是否出现在 /etc/csf/csf.deny 中?

/etc/hosts.allow 中拒绝的 IP 地址是否出现在 /etc/csf/csf.deny 中?

我修改我的/etc/hosts.allow文件为

sshd : 192.168.0.0/255.255.255.0 : allow
sshd : xxx.xxx.xxx.* : allow
sshd : ALL : deny

(其中 xxx 代表我的实际 IP 地址数字,通配符 * 代表 0-255 的完整范围)然后重新启动 sshd 和 Apache Web 服务器。我在接下来的一周内观察来自国外的 IP 地址是否继续出现在/etc/csf/csf.deny

116.31.116.15 # lfd: (sshd) Failed SSH login from 116.31.116.15 (CN/China/-): 5 in the last 300 secs ...

我的预期是否正确,即hosts.allow文件中被拒绝的 IP 地址甚至不应该显示登录屏幕来尝试登录,因此 csf.deny 日志中的条目证明我的 hosts.allow 文件没有按照我想要的方式运行?

或者,我是否被通用错误消息(5 in the last 300 secs)误导了,因为实际上这些 IP 地址并没有真正尝试输入用户和密码 5 次?

我的目标是阻止未经批准的 IP 地址输入用户名和密码。我如何知道我是否实现了这个目标?

当他们的 IP 确实被拒绝时,我应该期望 csf.deny 文件显示什么?

答案1

csf.deny被 ConfigServer 防火墙使用,并且那里列出的 IP 将根本不允许连接到服务器。

如果 IP 在csf.deny文件中,则意味着它在服务器防火墙的所有端口上都被阻止,并且不会在任何服务上显示任何登录屏幕,因为它永远不会与服务器建立连接。

过去 300 秒内超过 5 次,意味着他们未能通过身份验证过程,因此被列入 CSF 黑名单。如果仅允许使用 SSH 密钥,则可能是他们输入了错误的凭据,或者根本没有收到登录提示。

输入 IPhosts.allow将允许它连接到您在那里指定的服务,但他们仍然需要输入正确的凭据才能连接到服务器。

未列出的允许 IP 应显示以下消息:

ssh_exchange_identification: Connection closed by remote host

我相信,如果他们尝试连接到 SSH,这将被视为登录失败,如果他们达到登录失败限制,他们将最终进入 csf.deny。他们将建立与 SSH 端口的连接,但由于拒绝规则,他们将无法验证自己的身份,CSF 会将其视为登录失败。

阻止未列出的 IP 的 SSH 的更好选择是在 CSF 中完全阻止它,如本文末尾所述。

除了csf.deny之外,重要的文件还有csf.allow,和csf.ignore

csf.allow将允许从任何源端口上的列出的 IP 到任何目标端口的连接。

csf.ignore将忽略列出的 IP 的任何失败操作,它将不会受到登录失败或连接的限制。

csf.deny你可以从中删除 IPcsf -dr IP并将其列入白csf.allow名单csf -a IP

如果您想要完全阻止非预先批准的 IP 的 SSH,并且想要避免csf.deny由于 SSH 登录失败而导致的增长,您可以完全阻止 SSH 端口 22(如果您没有更改它),通过将其从 中的 TCP_IN 行中删除csf.config

在更改任何内容后csf.config,您需要重新启动 CSF 以csf -r重新加载配置文件。

这将阻止所有 IP 的端口 22,除了 csf.allow 中列出的 IP。

通过从 中的 TCP_IN 中删除端口 22 csf.config,并将您的 IP 放入 中csf.allow,您将只允许这些 IP 连接到端口 22,任何其他 IP 都不会显示任何 SSH 登录,但在尝试连接到 SSH 时会收到超时消息。

如果您只输入 IP csf.allow,则将允许所有端口,但您可以使用高级端口+IP 过滤仅指定单个端口。

输入此项csf.allow将允许从 IP 连接到端口 22,即使 中不允许端口 22 csf.config

tcp:in:d=22:s=x.x.x.x

相关内容