如何在 Amazon Lightsail 上将 IP 地址列入白名单

How to whitelist IP addresses on Amazon Lightsail

我使用 Amazon Lightsail 部署了一个 wordpress 网站,它运行得非常棒。现在我需要将可以在端口 80 上访问的 IP 地址限制为与来自 SiteLock 的防火墙关联的 IP 地址,我正在寻找最好和最干净的解决方案。

好像在Lightsail简化版世界里,我只能打开一个端口供public访问,或者关闭。

我现在唯一的想法是通过 SSH 登录并使用 iptables,但我想了解这是否是我可以做到这一点的唯一方法,或者有一些东西 "smarter"。

这就是我得出的结果,它确实有效,但使用 iptables 我不确定它是否是最佳选择,因此问题仍然悬而未决以获得更好的解决方案。

因为 SiteLock 网站说这些 IP 范围是允许的:

SiteLock Firewall IP Ranges

199.83.128.0/21

198.143.32.0/19

149.126.72.0/21

103.28.248.0/22

45.64.64.0/22

185.11.124.0/22

192.230.64.0/18

107.154.0.0/16

2a02:e980::/29

我创建了一个脚本来允许所有这些,然后用明确的 DROP 规则关闭所有其余部分

sudo iptables -A INPUT -p tcp -s 199.83.128.0/21 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 198.143.32.0/19 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 149.126.72.0/21 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 103.28.248.0/22 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 45.64.64.0/22 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 185.11.124.0/22 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 192.230.64.0/18 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 107.154.0.0/16 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 2a02:e980::/29 --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 80 -j DROP

现在,可以从 AWS 控制台本身将 IP 列入白名单。在控制台中转到您的 Lightsail 实例,然后转到网络。在那里您可以选择要打开的端口,并将 IP 列入白名单,选中限制为 IP。然后输入白名单 IP 或范围并保存。

参考:https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-editing-firewall-rules