如何将 iptables 中的 Cloudflare IP 地址加入白名单?

您可以根据以下步骤把 Cloudflare 的 IP 范围 添加到 iptables。这样作可以帮助确保链接不会中断,否则可能导致超时和其他连接问题

IPv4:您需要在终端输入以下命令,将 $ip 替换为列表中的每一个 IP:https://www.cloudflare.com/ips-v4,链接列出的每个范围都必须作同一个动作:
iptables -I INPUT -p tcp -m multiport --dports http,https -s "$ip" -j ACCEPT

IPv6: 您需要在终端输入以下命令,将 $ip 替换为列表中的每一个 IP:https://www.cloudflare.com/ips-v6,链接列出的每个范围都必须作同一个动作:
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s "$ip" -j ACCEPT

您还可以使用名为 ipset 的实用程序,为每个网络范围提供一长串 iptables 规则。如果您的源服务器上没有安装此程序,则可以使用软件包管理器进行安装。

Debian:sudo apt-get install ipset

创建 ipset set:
ipset create cf hash:net

然后集合 Cloudflare IP 范围:
for x in $(curl https://www.cloudflare.com/ips-v4); do ipset add cf $x; done

注意: 您创建的 ipset 存储在内存中,默认情况下会在重启后消失。请确保把其保存和/或在重新启动后恢复。

您现在可以在 iptables 规则中使用 'cf' 集合,如下所示:
iptables -A INPUT -m set --match-set cf src -p tcp -m multiport --dports http,https -j ACCEPT

运行 iptables 命令后,您需要保存 iptables 规则。前两个命令用于 IPv4,后两个命令用于 IPv6。

Debian/Ubuntu: iptables-save > /etc/iptables/rules.v4
RHEL/CentOS: iptables-save > /etc/sysconfig/iptables
Debian/Ubuntu: ip6tables-save > /etc/iptables/rules.v6
RHEL/CentOS: ip6tables-save > /etc/sysconfig/ip6tables

注意: 这些规则仅适用于您的 iptables,不适用于任何其他防火墙。

Not finding what you need?

95% of questions can be answered using the search tool. This is the quickest way to get a response.

由 Zendesk 提供技术支持