首页 > 网站运行/故障 > 正确将 Cloudflare服务器IP列入白名单

正确将 Cloudflare服务器IP列入白名单

如果您在 Cloudflare 后面托管 Web 服务,则正确隐藏您的服务器源 IP 地址需要阻止所有不是来自 Cloudflare 的 HTTP/HTTPS 流量。白名单对于防止攻击者扫描 Internet 并找到您的源 IP 很重要。

首先,我们通过将 TCP 请求丢弃到端口 80/443 来阻止所有 http/https 请求。

# iptables -A INPUT -p tcp --dport http -j REJECT --reject-with tcp-reset
# iptables -A INPUT -p tcp --dport https -j REJECT --reject-with tcp-reset

我们将使用带有拒绝与 tcp-reset标志的iptables 。没有这个标志,攻击者仍然可以检测到一个程序正在监听端口,而有了这个标志,端口看起来像是关闭的。该差异可在NMAP中可以看出,是一个真正的拒绝显示为“过滤”和TCP重置拒绝显示为“关闭”。

接下来,我们将添加 Cloudflare IP 范围,以便它们可以连接到我们的主机。

# for i in `curl https://www.cloudflare.com/ips-v4`; do iptables -I INPUT -p tcp -s $i --dport http -j ACCEPT; done
# for i in `curl https://www.cloudflare.com/ips-v4`; do iptables -I INPUT -p tcp -s $i --dport https -j ACCEPT; done

现在我们确保只有 Cloudflare 服务器可以访问端口 80/443!对于其他人来说,服务器似乎没有在这些端口上运行任何东西。

如果您的服务器具有 IPv6 接口,您还需要使用 ip6tables 运行相同的命令:

# ip6tables -A INPUT -p tcp --dport http -j REJECT --reject-with tcp-reset
# ip6tables -A INPUT -p tcp --dport https -j REJECT --reject-with tcp-reset
# for i in `curl https://www.cloudflare.com/ips-v6`; do ip6tables -I INPUT -p tcp -s $i --dport http -j ACCEPT; done
# for i in `curl https://www.cloudflare.com/ips-v6`; do ip6tables -I INPUT -p tcp -s $i --dport https -j ACCEPT; done

发表回复