前言
各位小伙伴或多或少都有套cdn的习惯吧?裸奔的当我没说,其实套了cdn也不见得就完全隐藏源ip了,因为找到你源ip目前还是有很多手段实现的,特别是用宝塔搭建站点的服务器,因为nginx有设计缺陷,一般的小伙伴搭建完站点后就不再配置nginx了,有的也不了解nginx的设计缺陷,这里就给大家粗略讲一下。
nginx的配置问题
宝塔默认配置ssl(https)证书后如果不设置默认nginx ip:443 ssl返回,访问IP:443会暴露默认证书的,证书里面包含了很多内容,其中最重要的就是证书被授予的域名
所以为什么很多套了cdn的站点也怎么容易被挖出源ip疯狂被ddos直接打到黑洞,从根本上讲cdn就是摆设了,没有做到实际隐藏你源ip的功能,这个问题日益严重,因为很多人都不懂得这个设计缺陷。
源ip泄露日益严重
国外已经有相应的扫全球的服务了,而且还是免费公开查询的,每天都在跑全球的ip:443端口收集证书匹配ip,所以攻击者甚至都不需要自己去扫全球找特征,别人都已经做好了。为了防止恶意查询攻击扩散,这里就不介绍如何查询了,只讲防护。
解决办法(基于宝塔)
这里多一嘴,宝塔最好开启ssl自签,因为这样可以大大加高网站的安全性和网络通讯稳定性,开启后只能用https://ip:8888/xxxx这样访问宝塔后台面板,如需恢复请看官方介绍
1.新建ip站点
2.搞虚假ssl证书
访问站点:https://myssl.com/csr_create.html
就像上图一样生成假信息的ssl证书
生成好证书和秘钥后填入宝塔ssl
保存开启强制ssl就行,这样别人扫ip:443暴露的ssl证书信息绑定的域名就是假域名了,这样就不会扫到你源服务器ip了
其他不基于宝塔解决办法
一样的,跟上面一样,新建一个站点绑定的域名就是ip,然后配置虚假的证书信息返回出去,如何配置此处不再赘述,可以百度找到配置方法。实在不会在咨询本博客站长QQ:1845440070
解决host碰撞
host碰撞顾名思义就是通过host文件手动绑定全国ip指向你的域名,如果你服务器没做白名单,如果返回http状态码200,那么就可以判断你这个ip就是源ip,期间可以把cdn的ip通过多个地点ping全部过滤掉,剩下的就是你源ip了,这种当然不可能是手动都可以写脚本批量检测的,而且相比扫全球扫全国更快,如果你网站有备案那肯定是国内服务器...所以你懂得。
怎么解决我上面其实有提到,那就是开启ip白名单,除了cdn的ip外其他ip解析过来全部返回http状态码444(空返回),nginx可以配置也可以用系统防火墙(iptables/firewall/ufw)去放行相关cdn ip。
nginx:
这里以宝塔为例,打开网站的nginx配置文件里面箭头指向就是nginx的白名单写法,allow后续跟的就是指定ip端的ip可以解析访问源站数据,deny all就是拦截所有ip来匹配allow的规则。这里不懂得请将222..替换你cdn ip的就行,其中.0/24就是表示222.222.222.0-222.222.222.256的所有d段的ip可以进来
allow 222.*.*.0/24;
allow 217.*.*.0/24;
allow 61.*.*.0/24;
allow 43.*.*.0/24;
allow 183.*.*.0/24;
allow 221.*.*.0/24;
allow 222.*.*.0/24;
allow 217.*.*.0/24;
deny all;
iptables/firewall/ufw
还是以宝塔为例,如图下载免费宝塔防火墙插件配置就行,其他的防火墙请自行百度,不会的联系站长
后续
其实绕过cdn挖到你源ip的方法还有一些,那就是web渗透测试或找历史解析,通过某些缓存查询平台查询记录你没套cdn时的ip解析,通过漏洞将你的网站上传木马,拿到服务器信息,还有数据库漏洞进行sql注入等等...这些都可以把你源ip挖出来。
攻防无绝对,提高自己技术见解和原理才是立足之根本。
文章中如有不足可以在评论中补充
感谢您阅读本文章 by wmsafe博客