前言
如果你的服务器在使用 CDN 后,还出现源站 IP 泄漏,不妨查看一下你的源站,当你未设置默认网站时,通过 IP 可直接访问建立的第一个网站,而当你在 IP 前加上 https 访问时,Nginx 会自动返回该网站的 https 证书,从而暴露相关域名信息。
示例
比如,打开百度,F12 看下它的 IP,比如我这里显示的是:180.101.49.12,在浏览器中用 https://180.101.49.12 打开看下会发生个啥。
那么该 IP 就跟你的域名对应上,并且暴露你的真实 IP。
工具
显然让我们从茫茫大海中寻找一根针是不大可能的,但是我们可以利用一个工具
网址:https://censys.io/ipv4
很多人都知道 Censys 能搜索到域名对应的后端 IP。原理也很简单,它会扫描所有 IP 的 80 8000 8080 443 4433 端口。甚至会扫描 https SSL 域名证书。搜集到的信息再公布到网络上。很多黑客都是使用这玩意找到你的源站 IP。
里面关联了很多的 IP,可能其中一个 IP 就是你的源 IP,如果真是这样的话,你套再多的 cdn 也防不住你的 IP 泄露。
很遗憾,这个工具记录的历史不可以被用户删除。
如果你用工具已经查询到你的 IP 泄露了,碰巧你非常在意,那么你就需要更换一个 IP 了。
虽然历史记录不可删除,但是在官网的帮助页面发现,可以设置禁止 censys 访问,并且说已经禁止的结果将自动修剪掉(是否会修剪这里没有做测试,有兴趣的可以测试一下)。
页面地址:https://support.censys.io/hc/en-us/articles/360043177092-Opt-Out-of-Scanning
Censys原理
通过扫描 0.0.0.0/0 即全网,通过 IP 访问获取证书信息与你的源站 IP 对应上记录下来。
解决办法
这里以宝塔为例:
随便创建一个站点,设置为纯静态
选择这个新建的站点设置为默认站点
并且删除掉改网站目录下的所有文件,如图:
注意保留两个文件 .htaccess
.user.ini
回到网站设置添加证书
我们给这个默认站点添加一个自签的空白证书!!!
KEY:
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDXyF6m81zOeoOPvfk6nGKtyfczRG6/yeSkcc+66vGvq0s8oB7V
cCzLl1YcNsru3ixelPR2z1zvjKqa9/Aqh8+TvP1kGGbLD/mynjnj8l+0vVzZ+vnz
AH0RN9fpqzlpHmFBHQzQ25AtIAH8pXOL1541YN0TNPRA3kHUCL0FH8CkwwIDAQAB
AoGAQ4ejh6AV5VCWJ8AOZXdXsofIYzUBa+glNAmiNx8b8BwteZWq0KVAf56nBkFn
lQXW4OrA7wXKUfW11rXNZaIHJePJXv1swkN9+Em18Hon6BrtcqnKAwzAbhok3SzY
IVjI/zrgOABH6+ii77xCRBzI1itVPNN88DAUHC7PYLYiaaECQQD7PSoij37+kMc/
wPeEkl9r3vzU0OrsCsjU8Ev714OaoL/SIuAh6nsiRh9rcbUrrpGSSzIcmsk9HMDa
hXBNkNl5AkEA298yQvssaUc4tbEWxAVfd9DsHJdCdbXfgf9Dy5/tpCzYncY7T0du
VVHqKu3jXWoMc5XlesiCOerU/DIlMM8dGwJBANQn7GLO5iC1xWvS2bF7oVSIMtzL
pvW4jaszWBbNAPccc59RkA9T4LMqn/GtTZ4bhhYRpbl+BB21IC3nrNPzU5ECQG8T
Ln0QDruQs2F2eR3F6RjKfr1i3LxCiQtPPZycypzp2vS5tDS0zVRk8XuGehoy/N9X
lnqU2NURgU92tbsWpokCQQDdc9tU3B/OM/YfzUNwvOLmUVwrJX6PFSFsOn+XHrCC
q9LcGEAHyzaf5GEWje84ee4rkv5oaZcwll3dg4IioBnC
-----END RSA PRIVATE KEY-----
PEM:
-----BEGIN CERTIFICATE-----
MIIBkjCB/AIJAI3bCYqa39hiMA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNVBAYTAiAg
MCAXDTE4MTEyNDA5MDMzOFoYDzIwOTkxMjMxMDkwMzM4WjANMQswCQYDVQQGEwIg
IDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA18hepvNcznqDj735Opxircn3
M0Ruv8nkpHHPuurxr6tLPKAe1XAsy5dWHDbK7t4sXpT0ds9c74yqmvfwKofPk7z9
ZBhmyw/5sp454/JftL1c2fr58wB9ETfX6as5aR5hQR0M0NuQLSAB/KVzi9eeNWDd
EzT0QN5B1Ai9BR/ApMMCAwEAATANBgkqhkiG9w0BAQUFAAOBgQBiqHZsuVP09ubT
GzBSlAFEoqbM63sU51nwQpzkVObgGm9v9nnxS8Atid4be0THsz8nVjWcDym3Tydp
lznrhoSrHyqAAlK3/WSMwyuPnDCNM5g1RdsV40TjZXk9/md8xWxGJ6n1MoBdlK8T
H6h2ROkf59bb096TttB8lxXiT0uiDQ==
-----END CERTIFICATE-----
设置404
还是以宝塔为例子,在默认站点伪静态添加上:
location / {
return 404;
}
屏蔽 Censys 扫描
1、屏蔽 IP 段
74.120.14.0/24
162.142.125.0/24
167.248.133.0/24
192.35.168.0/23
还是以宝塔为例,安装 Fail2ban 防爆破插件,打开插件 IP 黑名单设置,添加上边的屏蔽 IP 段,保存即可。
2、屏蔽 UA
Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)
宝塔安装 Nginx 防火墙插件,收费免费都可以,打开全局配置中的 User-Agent 过滤规则
添加一条规则,正则表达式填写 ^(?=.*censys)
,说明自己随便填一个,保存即可
OK以上就是防扫屏蔽大法^_^!