Lighthouse轻量云服务器本身的产品定位是个人开发、便捷使用,本身不像CVM一样有安全组的功能,而是每台实例有一个“防火墙”,防火墙实现了“大致”同安全组的功能,但是不能管理出站规则以及规则最多100条,而我们在设置EO的源站防护的时候,来源IP有300多条,Lighthouse本身的防火墙功能并不能帮我们实现仅允许EO节点回源源站的这一个目标。所以,才有了这篇文章,让我们使用系统防火墙(IPSET+UFW)的方式来变相实现防护!
Lighthouse实例一台(安装Ubuntu24系统、机器内安装了宝塔WAF)
EO付费版套餐一个(已开启源站防护功能并设置回源为Lighthouse实例、HTTPS回源)
如果实验环境与本文基本一致,可以直接使用本文中的命令,如果不一致,请根据自己需求进行修改。
轻量云后台防火墙规则参考

尽量使用轻量云后台的免密登录功能,这样可以直接不开启22端口,也防止后面修改的时候失联,把自己挡在外面。
先安装自己需要的程序,比如我这里安装了宝塔WAF。
先安装需要的软件包
sudo apt-get update
sudo apt-get install -y ufw ipset netfilter-persistent安装好后,先看一下自己现在的防火墙规则。
sudo ufw status输入后会弹出现在系统内设置的防火墙规则

建议只保留自己的面板后台需要的端口,其他的全部删除
sudo ufw delete 序号删除后如图

现在就可以开始设置IPSET和UFW了
先创建两个文件,一个名为ips.txt(存储IPv4的IP池),一个名为ips_v6.txt(存储IPv6的IP池),IP列表自己去EO后台获取
# 编辑IPv4的IP列表
sudo nano ips.txt
# 编辑IPv6的IP列表
sudo nano ips_v6.txt将IP段都填入文件后,继续下一步的操作。
# 创建名为EOIP的IP池,用来存储IPv4的IP段
sudo ipset create EOIP hash:net
# 便捷通过文件来输入IP段到IPSET
awk '{print "add EOIP " $1}' ips.txt | sudo ipset restore
# 永久保存设置
sudo netfilter-persistent save编辑UFW配置文件来应用IPSET的IP池
通过 sudo nano /etc/ufw/before.rules 进入配置文件
在图中的位置输入以下内容
# 允许 EOIP 组访问 TCP 443
-A ufw-before-input -m set --match-set EOIP src -p tcp --dport 443 -j ACCEPT
# 允许 EOIP 组访问 UDP 443
-A ufw-before-input -m set --match-set EOIP src -p udp --dport 443 -j ACCEPT
更改后

注意事项!!! 不要插错位置,否则不能生效,甚至导致UFW错误
重启UFW
sudo ufw reload这里有可能会出现找不到命令ufw,我也不知道为什么,莫名其妙改完ufw就消失了,重新安装ufw然后重启就好。
然后阻断所有没有允许的IP访问
# 默认拒绝所有进入的连接
sudo ufw default deny incoming
# 默认允许所有发出的连接 (标准配置)
sudo ufw default allow outgoing
#重启UFW
sudo ufw reload现在去itdog tcping你的443端口,应该如图只有一个福建是绿的,其他都是红(我查了,itdog的那个福建的测速点的IP与EO的IP段重叠了)

上面的命令已经完成了IPv4的配置,如果你没有开启IPv6,那就已经完成了,但是如果你也要设置IPv6,请看下方的步骤!
这部分备注就不写全了,同上方的IPv4配置,下方直接贴出了所有命令,不要一次性执行,自己手动执行,在UFW配置文件内添加的内容不一样,但是位置一样。
# 创建IPv6的IPSET IP组
sudo ipset create EOIP_v6 hash:net family inet6
awk '{print "add EOIP_v6 " $1}' ips_v6.txt | sudo ipset restore
sudo netfilter-persistent save
# 编辑UFW配置文件
sudo nano /etc/ufw/before6.rules
# 添加内容
# 允许 EOIP_v6 组访问 TCP 443
-A ufw6-before-input -m set --match-set EOIP_v6 src -p tcp --dport 443 -j ACCEPT
# 允许 EOIP_v6 组访问 UDP 443
-A ufw6-before-input -m set --match-set EOIP_v6 src -p udp --dport 443 -j ACCEPT
# 重启UFW
sudo ufw reload