如何防御Censys的扫描(预防源IP泄露)

前言

像 Censys、Shodan、ZoomEye 等网络空间测绘工具已成为攻击者的重要情报来源。这些平台通过持续扫描全球 IP 地址空间,收集开放端口、服务版本、SSL 证书等信息,并将其公开索引。——一旦真实源 IP 被暴露,即使部署了 CDN 或云防护,也可能被绕过,导致 DDoS 攻击。

你可以使用censys查一下自己的ip是否已经泄露,添加屏蔽措施后通常在其最后记录的观测时间戳后24至48小时内从Censys搜索中移除。

源IP泄露原理

扫描器直接用 IP 地址访问 HTTPS 服务(如 https://1.2.3.4)时,由于没有提供 SNI(即客户端未声明要访问哪个域名),Nginx 默认会使用配置中的第一个 server 块(或 default_server)来响应 TLS 握手。

如果这个默认 server 块绑定了有效证书(比如主站证书),那么:

  • TLS 握手成功;
  • 证书中包含的域名会被泄露;
  • Censys/SSL Labs 等平台会记录 “IP 1.2.3.4 对应域名”;
  • 源站 IP 暴露风险大增(尤其当你用了 CDN,但源 IP 被扫出来就前功尽弃)。

解决办法

网上可以搜索到很多方法来解决,我这里只记录一种有效通用简单的办法(应对类似censys的所有工具)。

建立虚假网站

1.建立一个域名为 ip.com的虚假蜜罐网站

创建站点

2.随便应用一个证书,不需要对应域名,方便后面替换。

3.打开终端生成自签证书

mkdir -p /opt/signcert && cd /opt/signcert
openssl req -x509 -newkey rsa:4096 -keyout OpenLiteSpeed-key.pem -out OpenLiteSpeed-cert.pem -nodes -days 365

一直回车不需要输入任何信息。

4.执行以下指令替换证书。

cat /opt/signcert/OpenLiteSpeed-cert.pem > /www/server/panel/vhost/cert/ip.com/fullchain.pem
cat /opt/signcert/OpenLiteSpeed-key.pem > /www/server/panel/vhost/cert/ip.com/privkey.pem
/etc/init.d/nginx restart

5.回到网站设置确保证书应用成功,设置为默认站点

设置默认站点

6.开启强制https

如果发现无法设置强制https,可以通过修改网站配置文件达到同样的效果(nginx)

server {
    listen 80;
    server_name ip.com;
    return 301 https://ip.com$request_uri;
}
server
{
    listen 443 ssl default_server;
    listen 443 quic default_server;
    http2 on;
    server_name ip.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/ip.com;
    … … …(省略)

总结

反正就是别让你的网站可以直接通过https://ip访问,设置一个虚假的网站,就可以防止censys等网络测绘工具扫描了。

摸鱼小屋」 (atmoyu.com)版权所有,引用、转载时必须标明原文出处!

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息