博主头像
憨憨Yo酱の博客

Ciallo ~

(C90) 悪者がサーバーに侵入しました 【中国訳です】【瑞树汉化组】

翻译:搭建雷池SafeLine保护nginx并用外部攻击测试waf强度

不知道从什么时候开始,对宝塔的好感度逐渐降低到了冰点。可能是宝塔爆出漏洞?可能是一些后门?现在已经不得而知了。
那么……这么久过去了,我现在又在青睐什么呢。以后会不会再…不知道。


起因是买了一台小主机,准备做家庭影院服务器。奈何各种镜像各种软件调试的我 眼花缭乱 精疲力竭 神志不清,这主机就又像树莓派一样吃灰了(树莓派目前在管Epson打印机,后面会出文章的~咕咕咕🍟🕊)
为了折腾方便,顺手装了个1panel,后面又想整个软路由,然后做访客wifi,上网登录验证……(纯幻想)搭了一堆东西,最后一点用不上,电表还越来越快了。
em……废话到此为止。进入话题

  1. 使用1Panel安装OpenResty
  2. 安装雷池
  3. 搭建网站
  4. 绑定雷池
  5. 获取真实ip
  6. 测试效果

使用1Panel安装OpenResty

防止有小白真的有兴趣但是一点都不懂,顺便贴出来1Panel安装方法吧。
首先你要有一台搭载GNU Linux Debian/Ubuntu的主机/服务器
然后连接到服务器(这个自己搜,压根不会的建议玩虚拟主机,真机权限搞不好会出事的)
1Panel官网:https://1panel.cn/
你可以用小皮也可以用宝塔,直接装nginx也行,爱用啥用啥

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

然后用屏幕上写出来的安全入口和你设置(或者系统默认)账号密码连进去,左边有应用商店,一般点开第一个就是OpenResty。安装的时候记得点“端口外部访问”

安装雷池

雷池官网:https://waf-ce.chaitin.cn/
一键安装指令如下,手动安装自己去官网找:

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

搭建网站

打开1Panel左边 网站-网站,创建网站,按照你的需求安装环境.
因为雷池安装在本机,所以主域名直接写127.0.0.1:[端口]
我习惯连号摆放,就把这个网站放在10001端口吧
这里的网站不建议监听80端口,原因在下面一节写了

配好环境创建好网站,快速过掉搭建安装环节,也可以绑定雷池后安装

绑定雷池

打开雷池webui,通常安装在9443端口
打开 防护站点-站点管理-添加站点
站点域名 填写你绑的二级域名,我这里因为路由器防火墙原因无法使用公网ipv6,于是我在这里加了一个域名127.0.0.1
端口写80,如果你不像我一样使用穿透,443保持ssl开启
证书 这里我直接上cloudflare拉了15年的证书,可以不用,不能没有
上游服务器 上面一节你搭建的网站主域名(127.0.0.1:10001)
备注……如果不写就会使用上游服务器的网站首页标题

如果在添加上游服务器的时候,右边是黄色感叹号而不是绿色勾,鼠标悬浮在上面,如果是:

  • HTTP servic……HTTPS respond:指定上游服务器时不能使用https,也不要用域名使用的证书。证书颁发机构不会给127.0.0.1颁发证书,如必须使用,请用openssl生成根证书,签名二级颁发机构,为127.0.0.1/服务器内网ip颁发证书并安装
  • HTTP 50x……:这种可能是你写错端口了,如果端口没写错,就是上游服务器故障,去检查nginx
  • Connection_Reset/Refused:第一个是ip问题,如果用云服务器搭建雷池并跨网段代理。特别是网站在国内,雷池搭建在香港,可能会导致ip异常,这个自己解决。连接拒绝,你输错上游端口了,如果没输错,去防火墙把端口放行一下

获取真实ip

我试过穿透外部请求头,然后在雷池用 X-Real-IP 获取用户ip,但是发现这样会导致用户请求异常直接被雷池拉黑
最后直接用了内置的“取 X-Forwarded-For 中上一级代理的地址”,虽然会被伪造,但是可以通过 防护配置-自定义规则-添加规则 配置所有非公网ip地址一律进行人机验证
如果上层没有服务器,即雷池直接暴露在公网,请选择“从网络连接中获取”

补充一下,内网ip相关内容
子网掩码计算工具

A类地址:10.0.0.0--10.255.255.255
B类地址:172.16.0.0--172.31.255.255
C类地址:192.168.0.0--192.168.255.255

其中ABC类地址就是俗称的内网ip
用CIDR格式表示全部地址就是

192.168.0.0/16
172.16.0.0/12
10.0.0.0/8

第一次和最后一个给定的网络地址. 在网络掩码“位格式”也被称为CIDR格式(CIDR=无类别域间路由选择)
常见的192.168.1.0/24 表示子网掩码255.255.255.255 地址范围192.168.1.1~255
还有192.168.1.0/8 表示子网掩码255.255.0.0 地址范围192.168.1.1~255.1
再往上一层,常见的有10.11.45.14/4 表示子网掩码255.0.0.0 地址范围10.0.0.1~10.255.255.254

上面的192.0.0.0/3 表示子网掩码224.0.0.0 刚好能包含上述的“C类地址段”,正好包含所有ipv4内网ip
ipv6内网ip?这个我贴在这里【fe80::/16】原理什么的……咕咕咕🍟🕊

测试效果

用了一点点办法,弄了个http-killer,对着YoMC官网打了一通,等攻击结束,查看主机流量以及雷池记录
可以看到除了迅雷吸血鬼之外没有任何较大的上行流量……嗯这机子我还挂了qbittorrent
雷池数据如下:请求897 拦截829
数据不错,基本上都拦住了,毕竟我只用了http-killer,而不是专业渗透工具
可惜的是,这些攻击找不到任何防护日志。也许他们都在 防护日志-人机验证(专业版) 里?

(C90) 悪者がサーバーに侵入しました 【中国訳です】【瑞树汉化组】
https://blog.yoyo250.fun/archives/technology/3.html
本文作者 yoyo
发布时间 2024-09-23
许可协议 CC BY-NC-SA 4.0
仅有 1 条评论
  1. 评论头像

    (◦˙▽˙◦)

    medic September 23rd, 2024 at 01:32 pm 回复
发表新评论