嘟嘟社区

小鸡iptables只允许cloudflareip


本帖最后由 好鸭 于 2022-4-25 14:58 编辑

参考这个https://developers.cloudflare.com/fundamentals/get-started/setup/allow-cloudflare-ip-addresses/

首先,要确定有iptables和ip6tables,自己搞定喔

然后,iptables创建一个链

  1. iptables -N CLOUDFLARE
  2. ip6tables -N CLOUDFLARE

复制代码

让INPUT引用

  1. iptables -A INPUT -j CLOUDFLARE
  2. ip6tables -A INPUT -j CLOUDFLARE

复制代码

然后把CF的IP加进链里

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

复制代码

不允许其他

  1. iptables -A INPUT -p tcp –dport http,https -j DROP
  2. ip6tables -A INPUT -p tcp –dport http,https -j DROP

复制代码

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

  1. iptables -F CLOUDFLARE
  2. ip6tables -F CLOUDFLARE
  3. for ip in `curl -s https://www.cloudflare.com/ips-v4`;do
  4. iptables -A CLOUDFLARE -s $i -j ACCEPT
  5. done
  6. for ip in `curl -s https://www.cloudflare.com/ips-v6`;do
  7. ip6tables -A CLOUDFLARE -s $i -j ACCEPT
  8. done
  9. iptables -A INPUT -p tcp –dport http,https -j DROP
  10. ip6tables -A INPUT -p tcp –dport http,https -j DROP

复制代码

管杀管埋
不玩了,清空上面设置过的规则

  1. iptables -F CLOUDFLARE
  2. ip6tables -F CLOUDFLARE
  3. iptables -D INPUT -j CLOUDFLARE
  4. ip6tables -D INPUT -j CLOUDFLARE
  5. iptables -X CLOUDFLARE
  6. ip6tables -X CLOUDFLARE
  7. iptables -D INPUT -p tcp –dport http,https -j DROP
  8. ip6tables -D INPUT -p tcp –dport http,https -j DROP

复制代码

以上没测试,但是应该差不多就是这样

感谢分享 zsbd