屏蔽 Censys,防止源站 IP 泄露

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

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

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

1 屏蔽 Censys 的 IP 段

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

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 2602:80d:1000:b0cc:e::/80

sudo ufw deny from 2620:96:e000:b0cc:e::/80

当然,ipset 也能够实现屏蔽 IP 段,使用这个也是可以的。如果你安装有宝塔面板,那么可以在安全选项里,添加屏蔽 IP 段,不过,这个功能可能不太好用。我建议是安装一个 Nginx 防火墙插件,在插件里面设置屏蔽 IP。如果你使用了 CDN 那么就要在 CDN 中屏蔽掉这些 IP 段。

2 屏蔽 Censys 的 UA

在 Nginx 的配置文件的 server 段,加上如下内容,就可以屏蔽掉 Censys 的访问。Censys 扫描使用的 UA 在其官网有。

if ($http_user_agent ~* "^(?=.*censys)") {
            return 444;
        }

如果你安装有宝塔,那么在 Nginx 防火墙中添加 User-Agent 过滤也是可以的。在已有的关键词过滤中,添加 Censys ,或者新建一条如下的规则。

^(?=.*censys)

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

Censys 扫描使用的 UA 如下:

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

3 建立虚假网站

这个方法比较取巧。大致是使用 Nginx 建立一个域名是你源站的 IP 的网站,并且添加自签的空白 SSL 证书,强制 HTTPS,设置为默认网站。

网站是一个纯静态网站,网站的文件,除了 .htaccess.user.ini 这两个文件,其他的全删除。在这个站点的伪静态中加入如下内容:

location / {
    return 404;
}

这个方法会出现一个问题,使用别的机子无法反代自己的网站真实 IP。

4 使用 Nginx 1.19.4 的新特性

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

具体是使用方法是,在你的网站配置文件里添加一个新的 server 块:

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

如果攻击者攻击某个域名,他带着该域名的握手信息遍历所有 IP,握手成功就找到源 IP。这种情况不多见,毕竟遍历所有 IP 是非常麻烦的。唯一解决方法就是白名单只允许 CDN 服务器访问。

5 更新日志

2023 年 5 月 28 日:修正和 CDN 有关的内容。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇