最近发现有直接访问源站的请求,查了一下他们的域名直接指向的就是源站,可能是之前这个 IP 的用户吧。为了保险期间,我们希望只允许 CDN 访问,那么应该怎么做呢?
ToC
获取 IP 列表
我们使用了 Cloudflare 和 百度云加速,从本质上来看其实都是 Cloudflare(
百度云加速的 IP 列表在此;Cloudflare 的 IP 列表在此。
生成 firewall-cmd
规则
这里摸了个脚本:
function generateRule(ips = [], services = ["http", "https"], ip_version = 4) { return ips .map(ip => { return services .map( service => `sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv${ip_version}" source address="${ip}" service name="${service}" accept' --permanent` ) .join("\n"); }) .join("\n");}
把对应的 IP 地址分好了塞进去就行了,非常的方便(
关闭开启的 http(s)
服务
接下来就是执行上面输出的结果了。然后我们需要关掉上一篇文章中启用的 http
和 https
服务:
sudo firewall-cmd --zone=drop --remove-service=http --permanentsudo firewall-cmd --zone=drop --remove-service=https --permanent
最后重载 firewalld
即可:
sudo firewall-cmd --reload