![断开连接而不发送数据包](https://linux22.com/image/778706/%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E8%80%8C%E4%B8%8D%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E5%8C%85.png)
我想通过断开连接来防止默认虚拟主机行为,以便通过未包含在我的虚拟主机中的 IP 或 fqdn 导航到我的服务器的访问者不会收到任何 Web 服务器存在的迹象(除了看到开放的端口 443)。
目前我正在使用 mod_security 在第 1 阶段删除请求,但这仍然会导致向客户端发送 403 响应,表明 Apache 存在。
我也考虑过切换到 nginx,这样我就可以利用错误代码 444,虽然这不会向客户端发送任何有意义的响应,但它仍然会将没有内容的数据包发送回客户端,指示 ERR_EMPTY_RESPONSE,并且有一个服务正在监听该端口(并且可能暗示 nginx 的存在)。
是否有可能完全放弃请求,这样我们就永远不会向与默认虚拟主机匹配的客户端发送任何回复?最好永远不建立连接,这样客户端最终会因 ERR_CONNECTION_TIMED_OUT 或 ERR_CONNECTION_REFUSED 错误而超时?
我尝试过重定向、消失、404、403、mod_security drop(产生 403)。我的下一个实验可能是路由到不存在的,或指向 dev>null,但我正在寻找优雅而简单的解决方案,最好是在 DOS 攻击情况下能够抵抗资源耗尽的解决方案。
我知道很多人都在寻找修复连接被拒绝错误的方法,我试图在不影响其他虚拟主机的情况下针对特定虚拟主机引发此错误。任何见解都值得赞赏。