网站只允许cloudflare的IP访问

iptables只允许cloudflare的IP访问,参考这个https://developers.cloudflare.com/fundamentals/get-started/setup/allow-cloudflare-ip-addresses/

首先,要确定有iptables和ip6tables,然后,iptables创建一个链:

iptables -N CLOUDFLARE
ip6tables -N CLOUDFLARE

让INPUT引用

iptables -A INPUT -j CLOUDFLARE
ip6tables -A INPUT -j CLOUDFLARE

然后把CF的IP加进链里

for ip in `curl -s https://www.cloudflare.com/ips-v4`;do
iptables  -A CLOUDFLARE -p tcp -m multiport --dports http,https -s $ip -j ACCEPT
done
for ip in `curl -s https://www.cloudflare.com/ips-v6`;do
ip6tables  -A CLOUDFLARE -p tcp -m multiport --dports http,https -s $ip -j ACCEPT
done

不允许其他

iptables -A INPUT -p tcp -m multiport --dport http,https -j DROP
ip6tables -A INPUT -p tcp -m multiport --dport http,https -j DROP

搞过一次之后,也就是定时执行的脚本如下
清空链,然后重新加一遍IP
以下保存为脚本,定时执行即可

#先删掉"不允许所有",避免在下面命令执行期间GG
iptables -D INPUT -p tcp -m multiport --dport http,https -j DROP
ip6tables -D INPUT -p tcp -m multiport --dport http,https -j DROP
#清除规则(旧的CF IP)
iptables -F CLOUDFLARE
ip6tables -F CLOUDFLARE
#添加CF IP,下面可以对curl的结果做一次判断,可以避免网络问题可能出现的问题,自己写
for ip in `curl -s https://www.cloudflare.com/ips-v4`;do
iptables -A CLOUDFLARE -s $i -j ACCEPT
done
for ip in `curl -s https://www.cloudflare.com/ips-v6`;do
ip6tables -A CLOUDFLARE -s $i -j ACCEPT
done
mkdir -p /etc/iptables/
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
#禁用其他IP
iptables -A INPUT -p tcp -m multiport --dport http,https -j DROP
ip6tables -A INPUT -p tcp -m multiport --dport http,https -j DROP

如果想清空上面设置过的规则

iptables -F CLOUDFLARE
ip6tables -F CLOUDFLARE
iptables -D INPUT -j CLOUDFLARE
ip6tables -D INPUT -j CLOUDFLARE
iptables -X CLOUDFLARE
ip6tables -X CLOUDFLARE
iptables -D INPUT -p tcp --dport http,https -j DROP
ip6tables -D INPUT -p tcp --dport http,https -j DROP
> /etc/iptables/rules.v4
> /etc/iptables/rules.v6

补上iptables规则持久化的设置,以免重启后就无了!

#保存规则
mkdir -p /etc/iptables/
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
#引用规则
iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6

以上保存规则设置到关机执行的命令(也可以不用),引用规则设置到开机执行的命令。或者网卡关闭和启动。
还有,上面整完新的CF IP后要保存一下规则(我已经写上去了)!

本文来自Hostloc MJJ 好鸭!

© 版权声明
THE END
如果喜欢,可以【点赞】【分享】【收藏】
点赞13赞赏 分享
评论 抢沙发
头像
非注册用户需审核通过后才能查看。友好交流,勿发纯表情,勿恶意灌水!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像运维学习笔记博客0