(C90) 悪者がサーバーに侵入しました 【中国訳です】【瑞树汉化组】
翻译:搭建雷池SafeLine保护nginx并用外部攻击测试waf强度
不知道从什么时候开始,对宝塔的好感度逐渐降低到了冰点。可能是宝塔爆出漏洞?可能是一些后门?现在已经不得而知了。
那么……这么久过去了,我现在又在青睐什么呢。以后会不会再…不知道。
起因是买了一台小主机,准备做家庭影院服务器。奈何各种镜像各种软件调试的我 眼花缭乱 精疲力竭 神志不清,这主机就又像树莓派一样吃灰了(树莓派目前在管Epson打印机,后面会出文章的~咕咕咕🍟🕊)
为了折腾方便,顺手装了个1panel,后面又想整个软路由,然后做访客wifi,上网登录验证……(纯幻想)搭了一堆东西,最后一点用不上,电表还越来越快了。
em……废话到此为止。进入话题
- 使用1Panel安装OpenResty
- 安装雷池
- 搭建网站
- 绑定雷池
- 获取真实ip
- 测试效果
使用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,而不是专业渗透工具
可惜的是,这些攻击找不到任何防护日志。也许他们都在 防护日志-人机验证(专业版) 里?
(◦˙▽˙◦)