是否可以让 iptables DROP 任何具有用户“root”的数据包,以便 SSH 守护进程甚至不必浪费周期来拒绝登录尝试?
我已经在 ssh_config 中拒绝了 root 登录尝试。但这仍然会占用资源来拒绝和记录该尝试。我想在数据包被发送到守护进程之前,在防火墙(又名 iptables)处丢弃该数据包。
那么是否可以根据用户丢弃数据包?
我想避免使用像 fail2ban 这样的禁止 IP 地址的解决方案。我不想禁止 IP 地址。
答案1
根据 SSH 协议 RFC 的记录,这是不可能的,因为登录数据只有在建立并加密连接后才会发送。因此,防火墙永远不会看到登录名。因此,防火墙无法根据它看不到的内容丢弃数据包。
拒绝服务是 SSH 协议的一个已知漏洞,必须通过其他方式来缓解。