Hugo博客公告弹窗

屏蔽 Censys,防止源站 IP 泄露

Censys 搜索引擎很强大。Censys 每天都会扫描 IPv4 地址空间,以搜索所有联网设备并收集相关的信息,并返回一份有关资源(如设备、网站和证书)配置和部署信息的总体报告。

在 IP 前加上 https 访问时,Nginx 会自动返回该网站的 https 证书,从而暴露相关域名信息。哪怕是套了 CDN 也还是会被扫到。Censys 还会扫描端口,例如 80、8000、8080、443、4433。

所以为了防止,自己的网站被攻击我们需要屏蔽掉 Censys 的扫描。据我所知有四种办法,分部是屏蔽 Censys 的 UA、屏蔽 Censys 的 IP 段、建立虚假网站以及使用 Nginx 的特性。四种方法,选其一即可。当然如果你觉得不够安全,可以都使用。

系统: ubuntu22.04

nginx: 1.25.5

1.屏蔽 Censys 的 IP 段

Censys 的 IP 段在其官网有。我的机子使用的是 Ubuntu 系统,带有 UFW 防火墙,按照下面的命令建立规则即可。

Censys IP段 :https://support.censys.io/hc/en-us/articles/360043177092-Opt-Out-of-Data-Collection

sudo ufw deny from 162.142.125.0/24
sudo ufw deny from 167.94.138.0/24
sudo ufw deny from 167.94.145.0/24
sudo ufw deny from 167.94.146.0/24
sudo ufw deny from 167.248.133.0/24
sudo ufw deny from 199.45.154.0/24
sudo ufw deny from 199.45.155.0/24
sudo ufw deny from 206.168.34.0/24
sudo ufw deny from 2602:80d:1000:b0cc:e::/80
sudo ufw deny from 2620:96:e000:b0cc:e::/80
sudo ufw deny from 2602:80d:1003::/112
sudo ufw deny from 2602:80d:1004::/112

开启ufw和重载ufw,重启nginx

sudo ufw reload     #重载ufw

ufw status          # 查看状态

sudo systemctl reload nginx # 重启nginx

2.屏蔽 Censys 的 UA

如果你使用了 CDN ,那么就要在 CDN 中屏蔽掉 Censys 扫描使用的 UA。

Censys 扫描使用的 UA 如下:

Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)

例如cloudflare cdn

安全性–WAF–自定义规则

字段:用户代理

运算符: 等于

值:Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)

3.使用 Nginx 1.19.4 的新特性(推荐)

Nginx 1.19.4 新增了一个特性,ssl_reject_handshake 。在 IP 访问时会终止 TLS 握手,也就不会暴露域名了。

例如宝塔面板

在/www/server/panel/vhost/nginx目录找到0.default.conf,删除原有代码,添加如下代码:

server {
    listen 443 ssl default_server;
    # 如果有 IPv6 地址的需要,则加入下面这行。
    # listen [::]:443 ssl default_server;
    ssl_reject_handshake on;
}

重启nginx生效::

/etc/init.d/nginx restart

4.建立虚假网站

  • 网站是一个纯静态网站,网站的文件,除了 .htaccess 和 .user.ini 这两个文件,其他的全删除。
  • 添加自签的空白 SSL 证书,强制 HTTPS,设置为默认网站

1.生成自签名证书(一路回车键)

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

2.替换证书

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

3.下一步到假站点保存一下ssl证书使其生效

设置假站点为默认站点

CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-12-03 08:00
clarity统计