如何防止扫描CDN源站真实IP?

许多站长都有一个困惑 那就是为什么自己的网站套上了CDN但是自己网站的源站真实IP却暴露了呢

CDN它既能加速我们的网站也能当作网站的保护壳 但防止不了一些网站的暴力扫描

今天我教给大家如何防止被扫描

软件环境:Debian 11.7 / Nginx

一、自签名证书

首先我们需要自己创建一个自签名证书 这个自签名证书是用来骗扫描者的

因此 请不要为你的真实域名自签名证书 这属于自己拿石头砸自己脚了!

你可以通过一些在线网站提供的测试证书生成 比如:https://myssl.com/create_test_cert.html

请不要填写你的真实信息

如图所示 有效期建议搞久点 不然到时候太麻烦了!

点击 “生成” 后生成相应的假证书 后 下载证书和密钥

当然 你也可以通过 OPENSSL 等软件进行自签名证书!

二、隐藏源站IP

当你安装完 Nginx 的时候你会发现有一个默认页 这个默认页可以作为 公网IP 访问的页面

首先将我们的证书上传到我们的服务器 路径自定义 但是请不要把真证书和假证书混一起了

编辑我们 Nginx 的默认页的配置文件 路径在/etc/nginx/sites-available/default

文本编辑器 打开后 你会发现默认文件的内容:

# Default server configuration
#
server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;

	server_name _;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}

}

将原来的内容更改为:


# Default server configuration
#
server {
	listen 80 default_server;

	# SSL configuration
	#
	listen 443 ssl http2 default_server;
#证书路径别写错了!
	ssl_certificate    /fake/cert.pem;
        ssl_certificate_key    /private.key;

        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

	root /var/www/html;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name 你的公网IP;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}


}

不要直接照抄!配置文件会随着时间的迭代和改变!三思而后行!

更改 证书路径和公网IP(公网IP访问)保存

重启 Nginx:

nginx -s reload

三、验证成功

使用 https://你的公网IP 访问网站

查看证书 如果是你刚刚生成的假证书 那证明成功了

理论上你的源站IP可以完成隐藏了

如果你的源站IP早就暴露了 建议更换公网IP

本教程仅作为参考 实际使用请自己甄别

四、原理

为什么会知道你的IP地址?其实你的真实IP大家开始都不知道,但是一些公司会整一些机器人通过模仿普通用户请求,扫描(请求)所有可能的 IP,而这些 IP 中可能存在着 Nginx 的默认页面

在 Nginx 中,如果在客户端请求时没有携带 Hostname(你绑定的域名,也就是前面说的访问了你的IP),则会返回第一个从配置文件中读取的 server{} 块(这个可以说是默认页面或者是你设置的default_server)

你会很好奇,明明我的证书都绑定在了 Hostname 上了,对方访问了我的默认页,那为什么会知道我的证书呢?你可能会觉得服务端不会返回东西。然而证书信息还是被返回了。这是 Nginx 的特性,熟悉熟悉吧

当你的证书返回之后对方知道了你的证书 同时对方也知道了你的域名(也就是前面说的“查看证书”

这样 你的真实IP就暴露出来了

这个原理只是单单针对我这一篇文章所介绍的方法 其他还有更多的原理。

如有错误欢迎指出!

评论

  1. HowieHz
    Windows Edge 121.0.0.0
    3 月前
    2024-2-13 22:23:44

    注释太多了,没用可以删掉
    文章再加个原理分析就更好了
    ∠( ᐛ 」∠)_

    • 博主
      HowieHz
      Windows Edge 121.0.0.0
      3 月前
      2024-2-13 22:25:08

      感谢建议 !

发送评论 编辑评论


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