使用 SSH 蜜罐提升安全性和记录攻击活动
文章目录
- 使用 SSH 蜜罐提升安全性和记录攻击活动
- 前言
- 整体逻辑讲解
- 安全最佳实践
- 蜜罐的类型与选择
- 数据分析与响应
- 进一步学习资源
- 修改 SSH 服务端口
- 部署 FakeSSH
- FakeSSH 简介
- 部署步骤
- 记录攻击
- 部署 SSHSame
- SSHSame 简介
- 部署步骤
- 观察攻击行为
- 总结
使用 SSH 蜜罐提升安全性和记录攻击活动
前言
在当今的网络环境中,服务器的安全性越来越受到重视。近期,我在旧服务器上发现 SSL 证书过期的问题,决定采用 SWAG 方案进行部署。但在加固安全时,我意识到 SSH 部分存在疏忽。因此,我决定部署 SSH 蜜罐,不仅增强安全性,还可以记录攻击者的行为,探索网络安全的乐趣。
整体逻辑讲解
在信息安全领域,攻击者通常会利用常见的安全漏洞进行攻击。SSH 服务作为远程访问服务器的主要方式之一,常常成为攻击者的目标。通过部署 SSH 蜜罐,我们可以实现以下几个目标:
-
增强安全性:通过修改默认端口和部署蜜罐,可以有效降低被攻击的概率。即使攻击者尝试访问,也只能与蜜罐互动,而不是进入真实的系统。
-
记录攻击活动:蜜罐可以记录攻击者的所有尝试,包括用户名、密码和连接行为。这些数据可以帮助我们了解攻击者的策略和工具,从而为后续的安全防护提供依据。
-
进行安全研究:通过分析蜜罐记录的数据,我们可以识别常见的攻击模式和手法,为系统的加固和安全策略的制定提供参考。
通过这些步骤,我们不仅能保护我们的服务器,还能通过对攻击活动的观察和分析,提升整体的安全意识。
安全最佳实践
在部署蜜罐的同时,我们还应该遵循一些基础的安全最佳实践,以确保服务器的整体安全性:
-
定期更新系统和软件:保持系统和软件的最新状态,及时修复已知的安全漏洞。
-
使用强密码和双因素认证:确保所有账户使用强密码,并启用双因素认证,以增加安全性。
-
启用防火墙:配置防火墙以限制不必要的端口和服务,仅允许可信的 IP 地址访问 SSH 服务。
-
监控和审计:定期监控系统日志,审计用户活动,确保及时发现异常行为。
蜜罐的类型与选择
蜜罐通常分为两种类型:
-
低交互蜜罐:这类蜜罐允许攻击者进行一些基本的交互,但不提供完整的系统访问。适合快速收集数据,例如 FakeSSH。
-
高交互蜜罐:这类蜜罐提供与真实系统相似的交互体验,可以更深入地研究攻击者的行为,但配置和维护成本较高。
选择合适的蜜罐类型应根据自身需求、可用资源和预期目标来决定。
数据分析与响应
在部署蜜罐后,收集到的攻击数据需要进行分析和响应。以下是一些建议:
-
数据分析:定期检查蜜罐日志,识别攻击模式和常用的攻击手法,记录下常见的用户名和密码组合。
-
响应措施:当发现可疑活动时,及时采取响应措施,例如阻止攻击者的 IP 地址、加强安全配置,并通知相关人员。
-
反馈改进:根据分析结果,优化服务器配置和安全策略,持续提升防护能力。
进一步学习资源
想要深入了解蜜罐和网络安全的相关知识,以下资源可能会对你有帮助:
- 《The Art of Deception》 by Kevin Mitnick:深入探讨社会工程学和安全策略。
- OWASP (Open Web Application Security Project):提供大量安全资源和工具,适合开发者和安全研究人员。
- 网络安全课程:如 Coursera、edX 等平台上提供的网络安全课程,涵盖从基础到高级的各种主题。
修改 SSH 服务端口
首先,默认的 SSH 端口是 22,为了确保安全,我们需要将其修改为其他端口,并将 22 留给蜜罐使用。以下是步骤:
-
编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
-
找到以下行:
#Port 22
去掉注释并修改为新的端口号,例如 2222:
Port 2222
-
重启 SSH 服务:
sudo systemctl restart ssh
注意:在修改端口之前,请确保你有其他方式连接到服务器,以防新配置出现问题。
部署 FakeSSH
FakeSSH 简介
FakeSSH 是一个基于 Docker 的 SSH 蜜罐,使用 Go 语言编写。它的主要功能是记录登录尝试,所有密码认证都会失败,确保不会给攻击者提供终端访问权限。通过收集的密码字典,可以进一步分析攻击者的行为。
部署步骤
-
创建 Docker Compose 文件
docker-compose.yml
:version: '3' services:fakessh:container_name: fakesshimage: fffaraz/fakesshrestart: alwaysports:- 22:22command: /logvolumes:- ./volumes/fakessh:/log
-
启动服务:
docker-compose up -d
记录攻击
部署后,如果有人尝试暴力破解,所有的尝试都会被记录,生成的日志将为后续的安全分析提供数据支持。
部署 SSHSame
SSHSame 简介
SSHSame 是一个简单易用的 SSH 蜜罐,允许任何人连接,同时记录他们的活动。该蜜罐不执行任何操作,确保系统的安全。通过记录连接和活动,SSHSame 为安全研究人员提供了很好的工具,帮助他们理解 SSH 攻击的行为。
部署步骤
-
创建 Docker Compose 文件
docker-compose.yml
:version: '3' services:sshesame:image: ghcr.io/jaksi/sshesamerestart: alwaysports:- "2022:2022"volumes:- ./sshesame-data:/data
-
启动服务:
docker-compose up -d
观察攻击行为
使用 SSHSame 后,你可以尝试任意用户名和密码进行登录,但系统不会执行任何命令,所有操作都会记录在日志中。这些记录可以帮助你了解攻击者的常用策略,从而优化安全措施。
总结
部署 SSH 蜜罐是提升服务器安全性的一种有效方法,不仅能防止攻击,还能帮助我们更深入地了解攻击者的行为。通过 FakeSSH 和 SSHSame 的结合使用,我们可以收集大量有价值的数据,为未来的安全防护提供参考。整体上,通过监控和记录攻击活动,我们不仅在保护自己,也为整个安全生态系统贡献了一份力量。
相关文章:
使用 SSH 蜜罐提升安全性和记录攻击活动
文章目录 使用 SSH 蜜罐提升安全性和记录攻击活动前言整体逻辑讲解安全最佳实践蜜罐的类型与选择数据分析与响应进一步学习资源修改 SSH 服务端口部署 FakeSSHFakeSSH 简介部署步骤记录攻击 部署 SSHSameSSHSame 简介部署步骤观察攻击行为 总结 使用 SSH 蜜罐提升安全性和记录攻…...

无人机拦截捕获/直接摧毁算法详解!
一、无人机拦截捕获算法 网捕技术 原理:抛撒特殊设计的网具,捕获并固定无人机。 特点: 适用于小型无人机。 对无人机的损害较小,基本不影响其后续使用。 捕获成功率较高,且成本相对较低。 应用实例:…...

后端eclipse——文字样式:UEditor富文本编辑器引入
目录 1.富文本编辑器的优点 2.文件的准备 3.文件的导入 导入到项目: 导入到html文件: 编辑 4.富文本编辑器的使用 1.富文本编辑器的优点 我们从前端写入数据库时,文字的样式具有局限性,不能存在换行,更改字体…...
thinkphp6 redis 哈希存储方式以及操作函数(笔记)
逻辑:如果redis里没有指定表数据就进行存储再输出,如果有就直接输出,代码优化后几万条数据从数据库入redis也是三四秒的时间,数据以json方式存储:key用于数据ID 跟数据库数据ID同步,value用于存储整个字段包…...

「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
本篇将带你实现一个滑动选择器应用,用户可以通过滑动条选择不同的数值,并实时查看选定的值和提示。这是一个学习如何使用 Slider 组件、状态管理和动态文本更新的良好实践。 关键词 UI互动应用Slider 组件状态管理动态数值更新用户交互 一、功能说明 在…...

【嵌入式】STM32中的SPI通信
SPI是由摩托罗拉公司开发的一种通用数据总线,其中由四根通信线,支持总线挂载多设备(一主多从),是一种同步全双工的协议。主要是实现主控芯片和外挂芯片之间的交流。这样可以使得STM32可以访问并控制各种外部芯片。本文…...
后端:Spring、Spring Boot-配置、定义bean
文章目录 1. 什么是Bean,如何配置2. 如何配置bean2.1 使用注解Bean2.2 使用注解Import 1. 什么是Bean,如何配置 被spring容器所管理的对象被称为bean,管理方式可以有纯xml文件方式、注解方式进行管理(比如注解Component)。 在Spring Boot中&…...
【Git】Git 远程仓库命令详解
目录 引言1. Git Fetch、Git Pull 和 Git Push 简介1.1 概念总结1.2 图示概念 2. 分支的概念2.1 分支定义2.2 分支的特点2.3 分支示例2.4 基本操作命令2.5 分支的使用场景 3. Git Fetch 用法3.1 基本命令3.2 获取特定分支3.3 查看更新内容3.4 使用示例3.5 适用场景 4. Git Pull…...

html简易流程图
效果图 使用htmlcssjs,无图片,没用Canvas demo: <!DOCTYPE html> <html> <head><link href"draw.css" rel"stylesheet" /><script src"draw.js" type"text/javascript"></…...

Java 入门
目录 Java简介 Java JDK开发环境配置 第一个Java程序 Java标识符与关键字 Java注释 Java常量 Java变量的定义和使用 Java简介 Java简介: Java是由Sun Microsystems公司于1995年推出的一门面向对象的高级程序设计语言,可以运行于多个平台,其…...
JVM基本结构和垃圾回收机制
一、JVM基本结构 Java虚拟机(JVM, Java Virtual Machine)是Java程序执行的环境,其基本结构可以分为以下几个主要部分: 类加载器子系统(Class Loader Subsystem): 负责加载Java类文件到内存中。…...

CentOS 7 安装 ntp,自动校准系统时间
1、安装 ntp yum install ntp 安装好后,ntp 会自动注册成为服务,服务名称为 ntpd 2、查看当前 ntpd 服务的状态 systemctl status ntpd 3、启动 ntpd 服务、查看 ntpd 服务的状态 systemctl start ntpdsystemctl status ntpd 4、设置 ntpd 服务开机启…...

Spring Boot 配置文件启动加载顺序
前言 Spring Boot的启动加载顺序是一个涉及多个步骤和组件的过程。Spring Boot通过一系列默认设置简化了应用程序的配置,使得开发者能够快速地搭建和部署应用。为了实现这一目标,Spring Boot采用了一种分层和优先级机制来加载配置文件。 一、Spring Bo…...
webrtc agc2实现原理
WebRTC的AGC2(自适应增益控制器)是一种用于音频处理的算法,可以根据输入信号的强度自动调整增益,使输出信号的音量保持稳定。其详细原理如下: 噪声估计 首先,AGC2需要对输入信号中的噪声进行估计ÿ…...
2024.11.03 周报
一 实时超分音频同步问题: 处理方向: 按照胡学长的办法尝试: 前面处理视频, 将视频中音频提取出来, 将音频每隔 1-2 秒保存为一段 (这样将音频缓存在内存中) , 然后依次播放, 但是音频是44.1KHz采样率,每秒44100次的频率. 每次间隔中程序处理的极短时间…...
Oceanbase学习之一迁移mysql数据到oceanbase
一、数据库环境 #mysql环境 root192.168.150.162 20:28: [(none)]> select version(); ---------- | version() | ---------- | 8.0.26 | ---------- 1 row in set (0.00 sec) root192.168.150.162 20:28: [(none)]> show variables like ‘%char%’; ---…...
Milvus - GPU 索引类型及其应用场景
1. 背景概述 Milvus 是一款高效的矢量数据库管理系统,支持在高并发和高调用场景下加速相似度搜索。Milvus 的 GPU 支持由 NvidiaRAPIDS 团队提供,可以借助各种 GPU 索引类型来优化性能。本篇将重点解析 Milvus 支持的 GPU 索引类型、适用场景及各自的性…...

Webserver(2.8)守护进程
目录 守护进程案例 守护进程案例 每隔2s获取系统时间,将这个时间写入到磁盘文件中 #include<stdio.h> #include<sys/stat.h> #include<sys/types.h> #include<unistd.h> #include<fcntl.h> #include<sys/time.h> #include<…...

HarmonyOS :
HarmonyOS 移动应用开发 什么是HarmonyOS?: 官方解释:HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。 鸿蒙操作系统在传统的单设备系统能力的基础上,提出了基于同一套系统能力、适配多种终端形态的分布式理念&#…...
C# EF 使用
WPF EF MySQL - - -版本.NET Framework4.7.2EntityFramework6.5.1MySql.Data.EntityFramework9.1.0 创建数据库 ccApp.config <connectionStrings><add name"MyDbContext" providerName"MySql.Data.MySqlClient" connectionString"server…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...