Hugo博客公告弹窗

指定ip仅cloudflare能访问

解释:只有把域名托管到cloudflare,并且开启了cdn(小云朵)的网站才能访问,可以有效防止真实服务器 IP 被探测到

在运营网站的过程中,安全始终是一个永恒的话题。即便我们使用了 Cloudflare 这样的 CDN 服务,但如果配置不当,真实 IP 依然有可能泄露。

想象一下这个场景:你的网站正在使用 Cloudflare CDN,看似很安全。但是有一天,你突然发现服务器负载异常,网站响应缓慢。经过排查,你惊讶地发现有大量的直接 IP 访问请求,绕过了 CDN 的防护。这意味着你的服务器真实 IP 已经泄露了。

这种情况并不罕见,IP 可能通过多种途径泄露:

  • DNS 历史记录
  • 邮件服务器配置
  • 解析记录变更前的访问
  • 网站本身的某些功能特性

IP 地址范围

https://www.cloudflare.com/zh-cn/ips/

下载脚本

cd /root && curl -O https://raw.githubusercontent.com/woniu336/open_shell/main/cloudflare-only.sh

赋予权限

chmod +x /root/cloudflare-only.sh

执行

./cloudflare-only.sh

恢复规则

如果你怕出幺蛾子,可以恢复原有规则

# 恢复 IPv4 规则
cp /etc/iptables/rules.v4.bak /etc/iptables/rules.v4
iptables-restore < /etc/iptables/rules.v4

# 恢复 IPv6 规则
cp /etc/iptables/rules.v6.bak /etc/iptables/rules.v6
ip6tables-restore < /etc/iptables/rules.v6

查看规则

iptables -L INPUT -n --line-numbers

仅查看80和443

iptables -L INPUT -n --line-numbers | grep -E "80|443"

查看ipv6

ip6tables -L INPUT -n --line-numbers | grep -E "80|443"

检查是否存在这些冲突规则

iptables -L INPUT -n --line-numbers | grep "dpt:80\|dpt:443"

白名单

添加本地ip,可以做到,在不开cdn的情况下,只有你自己可以访问

iptables -I INPUT 1 -s 你的ip/32 -p tcp -m multiport --dports 80,443 -j ACCEPT

保存规则

iptables-save > /etc/iptables/rules.v4

删除测试 IP:

iptables -D INPUT 1

删除规则

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/clear-cloudflare.sh && chmod +x clear-cloudflare.sh && ./clear-cloudflare.sh
CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-11-23 15:12
clarity统计