iptables - 删除除 CloudFlare 之外的所有 HTTP(S) 流量

iptables - 删除除 CloudFlare 之外的所有 HTTP(S) 流量

我想只允许来自 CloudFlare 的 HTTP(S) 流量。这样攻击者就无法直接攻击服务器。我知道 CloudFlare 的主要作用并不是缓解 DDoS 攻击,但无论如何我都想尝试一下。

我目前只能访问 iptables(仅限 ipv4),但很快就会尝试安装 ip6tables。我只需要尽快修复这个问题。(我们现在正在遭受 (D)DoSed。)

我在想这样的事情:

iptables -I INPUT -s <CloudFlare IP> --dport 80 -j ACCEPT
iptables -I INPUT -s <CloudFlare IP> --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j DROP
iptables -I INPUT -p tcp --dport 443 -j DROP

我知道 CloudFlare 有多个 IP,但仅仅作为示例。

这是正确的方法吗?

答案1

是的,这样可行。您也可以使用 ! 进行否定,如下所示:

iptables -I INPUT ! -s <cloud_flare ip> -p tcp --dport 80 -j DROP
iptables -I INPUT ! -s <cloud_flare ip> -p tcp --dport 443 -j DROP

相关内容