Skip to content

博客建设笔记(2)配置仅 CDN 可访问源站 http(s) 服务

Published: at 12:13

最近发现有直接访问源站的请求,查了一下他们的域名直接指向的就是源站,可能是之前这个 IP 的用户吧。为了保险期间,我们希望只允许 CDN 访问,那么应该怎么做呢?

ToC

获取 IP 列表

我们使用了 Cloudflare 和 百度云加速,从本质上来看其实都是 Cloudflare(

百度云加速的 IP 列表在此;Cloudflare 的 IP 列表在此

生成 firewall-cmd 规则

这里摸了个脚本:

1
function generateRule(ips = [], services = ["http", "https"], ip_version = 4) {
2
return ips
3
.map(ip => {
4
return services
5
.map(
6
service =>
7
`sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv${ip_version}" source address="${ip}" service name="${service}" accept' --permanent`
8
)
9
.join("\n");
10
})
11
.join("\n");
12
}

把对应的 IP 地址分好了塞进去就行了,非常的方便(

关闭开启的 http(s) 服务

接下来就是执行上面输出的结果了。然后我们需要关掉上一篇文章中启用的 httphttps 服务:

Terminal window
1
sudo firewall-cmd --zone=drop --remove-service=http --permanent
2
sudo firewall-cmd --zone=drop --remove-service=https --permanent

最后重载 firewalld 即可:

Terminal window
1
sudo firewall-cmd --reload