使用 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…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...
