宝塔面板屏蔽 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

复制以下命令到ssh终端运行:

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生效,重启nginx

sudo ufw reload     #重载ufwufw 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 新特性(推荐)

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证书使其生效

设置假站点为默认站点

在这里插入图片描述

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401414.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis缓存——缓存更新策略和常见的缓存问题

一.什么是缓存? 前言:什么是缓存? 缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码 前言:为什么要使用缓存? 一句话:因为速度快,好用 缓存数据存储于代码中,而代码运行在内存…

Unity新输入系统 之 InputAction(输入配置文件最基本的单位)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​ 首先你应该了解新输入系统的构成结构:Unity新输入系统结构概览-CSDN博客 Input System - Unity 手册 1.In…

【SpringCloud】RabbitMQ——五种方式实现发送和接收消息

SpringAMQP SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配。 SpringAmqp的官方地址:https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能: 自动声明队列、交换机及其绑定关系基于注解的…

【CONDA】库冲突解决办法

如今,使用PYTHON作为开发语言时,或多或少都会使用到conda。安装Annaconda时一般都会选择在启动终端时进入conda的base环境。该操作,实际上是在~/.bashrc中添加如下脚本: # >>> conda initialize >>> # !! Cont…

Java基础之循环嵌套

循环嵌套 在一个循环内部可以嵌套另一个或多个循环。 外部循环每执行1次,内层循环会执行1轮(全部)。 案例1: 连续3天,每天都要表白5次。 package com.briup.chap03;public class Test03_Nest {public static void main(String[] args) {…

XMGoat:一款针对Azure的环境安全检测工具

关于XMGoat XMGoat是一款针对Azure的环境安全检测工具,XM Goat 由 XM Cyber Terraform 模板组成,可帮助您了解常见的 Azure 安全问题。每个模板都是一个用于安全技术学习的靶机环境,包含了一些严重的配置错误。 在该工具的帮助下&#xff0c…

File的概述和构造方法

一.路径: 相对路径开头不带盘符。 二.File: 1.File对象: File对象就表示一个路径,可以是文件的路径,也可以是文件夹的路径, 这个路径可以是存在的,也可以是不存在的。 2.File对象常见的构造…

SpringCloud完整教程

一下内容为本人在听黑马程序员的课程时整理的 微服务技术栈 ⎛⎝≥⏝⏝≤⎛⎝ ⎛⎝≥⏝⏝≤⎛⎝ ⎛⎝≥⏝⏝≤⎛⎝ ⎛⎝≥⏝⏝≤⎛⎝ 1、微服务框架 1.1、认识微服务 1.1.1、服务架构演变 **单体架构:**将业务的所有功能集中在一个项目中开发,打包成…

华为云Api调用怎么生成Authorization鉴权信息,StringToSign拼接流程

请求示例 Authorization 为了安全,华为云的 Api 调用都是需要在请求的 Header 中携带 Authorization 鉴权的,这个鉴权15分钟内有效,超过15分钟就不能用了,而且是需要调用方自己手动拼接的。 Authorization的格式为 OBS 用户AK:…

Linux系统移植——开发板烧写

目录: 目录: 一、什么是EMMC分区? 1.1 eMMC分区 1.2 分区的管理 二、相关命令介绍: 2.1 mmc 2.1.1 主要功能 2.1.2 示例用法 2.2 fdisk 2.2.1 基本功能 2.2.2 交互模式常用命令 2.2.3 注意事项 三、U-BOOT烧写 3.1 mmc命令 3.2 f…

【Linux入门】Linux环境搭建

目录 前言 一、发行版本 二、搭建Linux环境 1.Linux环境搭建方式 2.虚拟机安装Ubuntu 22.02.4 1)安装VMWare 2)下载镜像源 3)添加虚拟机 4)换源 5)安装VM Tools 6)添加快照 总结 前言 Linux是一款自由和开放…

JAVA集中学习第五周学习记录(二)

系列文章目录 第一章 JAVA集中学习第一周学习记录(一) 第二章 JAVA集中学习第一周项目实践 第三章 JAVA集中学习第一周学习记录(二) 第四章 JAVA集中学习第一周课后习题 第五章 JAVA集中学习第二周学习记录(一) 第六章 JAVA集中学习第二周项目实践 第七章 JAVA集中学习第二周学…

RCE远程命令执行

命令执行的常用函数 system():能将字符串作为系统命令执行,且返回命令执行结果。 #system(string $command, int &$result_code null): string|false system(whoami); exec():能将字符串作为系统命令执行,但是只返回执行结果…

MySQL 的 InnoDB 缓冲池里有什么?--InnoDB存储梳理(二)

文章目录 缓冲池的配置介绍一张表 INNODB_BUFFER_POOL_PAGES字段解释 缓冲池的配置 以下配置的意思,缓冲池在内存中的大小为20M;只有1个缓冲池实例;每一块的大小,插入缓冲占的百分比 # InnoDB 缓存池配置 innodb_buffer_pool_si…

Python之循环语句

这是《Python入门经典以解决计算问题为导向的Python编程实践》中58-65的内容,主要将了while循环语句和for循环语句。 循环 一、while循环语句语法:工作原理:案例解读要点 二、for循环语句语法工作原理、案例:寻找完全数 三、whil…

学习记录——day30 网络编程 端口号port 套接字socket TCP实现网络通信

目录 一、端口号 port 二、套接字 socket 1、原理 2、socket函数介绍 三、TCP实现网络通信 1、原理 2、TCP通信原理图 3、TCP相关函数 1)bind 绑定 2)listen 监听 3)accept 接收连接请求 4)recv 接收 5)sen…

Ubuntu系统中安装ffmpeg工具(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《暗光增强》 &a…

RAG:系统评估,以RAGAS为例

面试的时候经常会问到,模型和系统是怎么评估的,尤其是RAG,这么多组件,还有端到端,每部分有哪些指标评估,怎么实现的。今天整理下 目前最通用的是RAGAS框架,已经在langchain集成了。在看它之前&…

Java面试--设计模式

设计模式 目录 设计模式1.单例模式?2.代理模式?3.策略模式?4.工厂模式? 1.单例模式? 单例模式是Java的一种设计思想,用此模式下,某个对象在jvm只允许有一个实例,防止这个对象多次引…

文本分类任务算法演变(一)

文本分类任务算法演变 1.简介和应用场景1.1使用场景-打标签1.2使用场景-电商评论分析1.3使用场景-违规检测1.4使用场景-放开想象空间 2贝叶斯算法2.1预备知识-全概率公式2.2贝叶斯公式2.3文本分类中的应用2.3.1任务如下 2.4贝叶斯的优缺点 3.支持向量机3.1支持向量机-决策函数3…