帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【开发相关】源站安全深度加固:EO 与 LH 联防体系彻底隔绝威胁

发表时间:2025-01-16 01:32:56 小编:主机乐-Yutio

前情提要

Lighthouse轻量云服务器本身的产品定位是个人开发、便捷使用,本身不像CVM一样有安全组的功能,而是每台实例有一个“防火墙”,防火墙实现了“大致”同安全组的功能,但是不能管理出站规则以及规则最多100条,而我们在设置EO的源站防护的时候,来源IP有300多条,Lighthouse本身的防火墙功能并不能帮我们实现仅允许EO节点回源源站的这一个目标。所以,才有了这篇文章,让我们使用系统防火墙(IPSET+UFW)的方式来变相实现防护!

实验环境

Lighthouse实例一台(安装Ubuntu24系统、机器内安装了宝塔WAF)

EO付费版套餐一个(已开启源站防护功能并设置回源为Lighthouse实例、HTTPS回源)

如果实验环境与本文基本一致,可以直接使用本文中的命令,如果不一致,请根据自己需求进行修改。

轻量云后台防火墙规则参考

尽量使用轻量云后台的免密登录功能,这样可以直接不开启22端口,也防止后面修改的时候失联,把自己挡在外面。

开始操作吧!

先安装自己需要的程序,比如我这里安装了宝塔WAF。

先安装需要的软件包

代码语言:Bash
自动换行
自动换行
AI代码解释
sudo apt-get update sudo apt-get install -y ufw ipset netfilter-persistent

安装好后,先看一下自己现在的防火墙规则。

代码语言:Bash
自动换行
自动换行
AI代码解释
sudo ufw status

输入后会弹出现在系统内设置的防火墙规则

建议只保留自己的面板后台需要的端口,其他的全部删除

代码语言:Bash
自动换行
自动换行
AI代码解释
sudo ufw delete 序号

删除后如图

现在就可以开始设置IPSET和UFW了

设置IPSET

先创建两个文件,一个名为ips.txt(存储IPv4的IP池),一个名为ips_v6.txt(存储IPv6的IP池),IP列表自己去EO后台获取

代码语言:Bash
自动换行
自动换行
AI代码解释
# 编辑IPv4的IP列表 sudo nano ips.txt # 编辑IPv6的IP列表 sudo nano ips_v6.txt

将IP段都填入文件后,继续下一步的操作。

代码语言:Bash
自动换行
自动换行
AI代码解释
# 创建名为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配置文件设置

编辑UFW配置文件来应用IPSET的IP池

通过 sudo nano /etc/ufw/before.rules 进入配置文件

在图中的位置输入以下内容

代码语言:Bash
自动换行
自动换行
AI代码解释
# 允许 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

代码语言:Bash
自动换行
自动换行
AI代码解释
sudo ufw reload

这里有可能会出现找不到命令ufw,我也不知道为什么,莫名其妙改完ufw就消失了,重新安装ufw然后重启就好。

然后阻断所有没有允许的IP访问

展开
代码语言:Bash
自动换行
自动换行
AI代码解释
# 默认拒绝所有进入的连接 sudo ufw default deny incoming # 默认允许所有发出的连接 (标准配置) sudo ufw default allow outgoing #重启UFW sudo ufw reload
展开更多

现在去itdog tcping你的443端口,应该如图只有一个福建是绿的,其他都是红(我查了,itdog的那个福建的测速点的IP与EO的IP段重叠了)

上面的命令已经完成了IPv4的配置,如果你没有开启IPv6,那就已经完成了,但是如果你也要设置IPv6,请看下方的步骤!

IPv6配置

这部分备注就不写全了,同上方的IPv4配置,下方直接贴出了所有命令,不要一次性执行,自己手动执行,在UFW配置文件内添加的内容不一样,但是位置一样。

展开
代码语言:Bash
自动换行
自动换行
AI代码解释
# 创建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
展开更多

联系我们
返回顶部