使用 iptables 丢弃数据包,以便 root 用户进行 ssh 登录

使用 iptables 丢弃数据包,以便 root 用户进行 ssh 登录

是否可以让 iptables DROP 任何具有用户“root”的数据包,以便 SSH 守护进程甚至不必浪费周期来拒绝登录尝试?

我已经在 ssh_config 中拒绝了 root 登录尝试。但这仍然会占用资源来拒绝和记录该尝试。我想在数据包被发送到守护进程之前,在防火墙(又名 iptables)处丢弃该数据包。

那么是否可以根据用户丢弃数据包?

我想避免使用像 fail2ban 这样的禁止 IP 地址的解决方案。我不想禁止 IP 地址。

答案1

根据 SSH 协议 RFC 的记录,这是不可能的,因为登录数据只有在建立并加密连接后才会发送。因此,防火墙永远不会看到登录名。因此,防火墙无法根据它看不到的内容丢弃数据包。

拒绝服务是 SSH 协议的一个已知漏洞,必须通过其他方式来缓解。

相关内容