我最近注意到来自我们的 Apache 服务器 79.134.108.134 的一些奇怪的内部连接。
服务器没有公共 tcp6 地址。
为什么 Apache 服务器使用 tcp6 从端口 80 连接到随机高数量本地/内部端口?
tcp6 0 0 79.134.108.134:80 79.134.108.134:42189 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42094 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42131 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42202 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42127 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42096 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42225 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42192 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42213 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42110 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42111 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42150 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42061 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 62.78.173.45:52132 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42132 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42179 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 78.27.124.85:50972 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42079 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 78.27.124.85:53132 FIN_WAIT2 -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42196 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42072 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42209 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42193 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42187 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42221 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42190 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42118 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42066 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 46.229.168.73:50922 TIME_WAIT -
tcp6 0 0 79.134.108.134:80 79.134.108.134:42210 TIME_WAIT -
答案1
现在Linuxtcp6
几乎默认使用;内核从 IPv6 和 IPv4 堆栈开始,除非您采取措施/配置服务仅绑定到 IPv4,否则通常会保留端口两个都对于 IPv6 或 IPv4。
因此,您没有配置 IPv6 公共地址并不是因为没有看到那里的结果tcp6
。在这种情况下,使用 netstat 时,IPv4 和 IPv6 连接都将被表征为 tcp6。
至于连接列表,您将看到它们都使用 IPv4 地址,因此它们不可能是 IPv6 连接。
此外,从随机非特权高地址(称为临时端口)到服务端口(在本例中为 80/TCP - HTTP)的连接几乎就是 TCP 协议的工作方式以及客户端使用您的站点的方式,所以其实这也不奇怪。
不过,我更担心来自 IP 地址 79.134.108.134 的连接数量。然而,在不了解您的站点、服务和实现的情况下,我无法明确地说这是否应该是正常的、进程失控、应用程序实现或某些配置错误。
还可能值得查看您的 Apache access.log 日志文件,以了解正在访问哪些页面/服务以及是否有任何页面/服务。这可能会给您有关连接性质的线索。
尽管如此,我还是建议,对于未来,值得研究如何限制 Apache 中的客户端,并提出有关该主题的疑问。
参见相关使用负载均衡器而不是 Apache 来限制来自特定 IP 的事务
如何通过 iptables 阻止所有请求为 ServerIP:Port
如何使用 Fail2Ban 保护 ProxyPass(ed) 应用程序
跑题了,也推荐一下学习TCP/IP的最佳参考书https://www.amazon.com/TCP-Illustration-Protocols-Addison-Wesley-Professional/dp/0321336313
PS:我会考虑聘请一位经验丰富的顾问/系统管理员。