使用CentOS 7即时通讯。
在使用Cloudflare在Web上获取真实的访问者IP时,还有什么可能? 后端服务器,然后通过iptables限制真实用户的IP连接?
因为现在这是不可能的,因为它只会限制Cloudflares IP,而不是用户IP。
已经使用 mod_cloudflare 进行了尝试,但未成功。
示例:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
将打印所有Cloudflare IP,而不是实际的访问者IP。
我需要它,因为僵尸网络只是向网站请求“合法” URL,但是僵尸网络的速度如此之快 Web服务器只是无法处理它。
希望获得帮助,希望您理解我的问题。
答案 0 :(得分:0)
mod_cloudflare 是为apache网络服务器设计的模块。它实际上会为您的网站访问者显示真实的IP地址,但是使用netstat
命令,这完全发生在apache访问日志中,而不是在Linux系统上。如果使用netstat
,它将显示CloudFlare的IP地址。
mod_cloudflare 使用一些特定的HTTP标头(CF-Connecting-IP)来为访问者显示真实IP地址。
有关HTTP标头的更多信息,请参见: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
您应该尝试从Web服务器日志中提取所需的信息,而不要使用netstat
更新:
您可以使用带有使用Cloudflare API的功能的CSF防火墙,并将IP块直接添加到Cloudflare中,而不是阻止服务器上的IP。如前所述, mod_cloudflare 将在Web服务器日志中显示真实IP,而在服务器上,您将始终看到Cloudflare的IP地址。但是CSF所做的是使用 mod_cloduflare ,从Web服务器日志中提取真实IP地址并使用 Cloudflare API ,它直接在Cloudflare防火墙中的这些IP地址或范围上添加了块
您可以在此处阅读有关CSF的更多信息(第27章): https://download.configserver.com/csf/readme.txt
请记住,Cloudflare的防火墙中的标准限制为1000个IP地址或范围(至少对于免费帐户而言)。当达到1000时,您必须删除较旧的条目,以便可以添加更多条目。