前言
我们在搭建网站时,通常会使用SSL证书搭配cdn使用,以保护源服务器IP不被泄露,但是小心SSL证书泄漏了你的服务器IP
原理
这里使用 B站UP主 epcdiy 的视频介绍原理
防范方法
1.禁止IP直接访问网站
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 444;
}
2.使用错误的测试证书(推荐) 
可以使用Myssl的测试证书生成工具
然后在宝塔面板把证书全部换为这个测试证书,(CDN处的证书 无需 更换)
3.屏蔽Censys的扫描IP
Censys给出了用于扫描的IP段,因此,你只需要屏蔽如下 IP 即可:
162.142.125.0/24
167.94.138.0/24
167.94.145.0/24
167.94.146.0/24
167.248.133.0/24
192.35.168.0/23
2620:96:e000:b0cc:e::
但是,Censys 并不会删除已被记录的数据。如果你已经在 Censys 上发现了有关你服务的信息,请先更换公网 IP 后再这么做。
4.屏蔽 UA
Censys 也给出了用于扫描的 User Agent,请屏蔽它。你可以创建一个 block_censysua.conf
的文件:
if ($http_user_agent ~ "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)")
{
return 418;
}
然后在 nginx.conf 的 server 或者 location 中引用它
include block_censysua.conf;
5.开放端口
请按需开放端口,如果你要建站,那么除了 80 443
端口,剩下的只需要开放你的 SSH 端口就可以了。如果你只用 VNC 登录,那 SSH 端口甚至都可以不开放。
另外,如果你使用了宝塔面板,请一定要修改默认登录端口 8888
——因此受害的人不在少数。
6.DNS解析
如果你前边的措施都还没做,就已经为域名解析好了源站的 IP,请赶快删除解析。不少扫描解析记录的网站也会暴露你的源站地址,甚至都不需要 Censys 出场。
7.少去检测网站
检测网站往往会为你的每一次测试进行排行,而这就正好为攻击者提供了名单。更有甚者,会公布一些除了你没人知道的子域名,比如 myssl.com
资料参考:
好办法