近来工作繁杂,但对于技术的探索欲丝毫未减。在维护现有平台稳定运行的间隙,总想尝试一些新的东西,既是学习,也算是一种调剂。最近对网络安全领域的一些实践很感兴趣,特别是蜜罐技术。作为一种主动防御手段,它通过模拟易受攻击的服务来诱捕攻击者,记录其行为,从而达到威胁感知和溯源的目的。在众多开源蜜罐系统中,HFish因其跨平台、部署简单和社区活跃等特点,成为了本次实践的首选。
这篇笔记主要记录一次完整的HFish蜜罐部署、配置和接入远程节点的过程,算是一次学习体验的沉淀。
一、 环境准备与部署
为了不污染现有服务器环境,同时便于管理,照例基于Portainer去进行Docker部署HFish容器。
HFish由管理端(Server)和节点端(Client)组成。管理端负责接收和分析攻击数据,并对节点进行管理;节点端则负责模拟各种服务,是直接面对攻击的“诱饵”。
部署步骤大致如下:
拉取镜像:在Portainer的镜像管理页面,直接从公共仓库拉取HFish的官方镜像。选择一个稳定的版本标签即可。
创建容器:
version: '3.8'
services:
hfish:
image: hfish:ubuntu335
container_name: hfish
ports:
- "4433:4433"
- "4434:4434"
- "22:22"
- "135:135"
- "139:139"
- "1433:1433"
- "3306:3306"
- "3389:3389"
#- "6379:6379"
- "9379:6379"
- "7879:7879"
#- "8080:8080"
- "9080:8080"
- "8081:8081"
- "9000:9000"
- "9200:9200"
environment:
- TZ=Asia/Shanghai
volumes:
- /zdream/datas/hfish:/usr/share/hfish
restart: always
networks:
- monitor-net
networks:
monitor-net:
external: true
二、 创建蜜罐
部署完成后,通过浏览器访问 http://<服务器IP>:4433 即可进入HFish的管理后台。首次登录修改密码。
HFish内置了丰富的蜜罐服务类型,涵盖了常见的Web服务、数据库服务(如MySQL、Redis)、基础服务(如SSH、Telnet)等,几乎可以“以假乱真”。
创建一个蜜罐服务的操作很简单:
在“环境管理” -> “服务管理”页面,可以看到所有支持的服务列表。
选择一个想要模拟的服务,例如MySQL服务,点击右侧的“操作”按钮进行配置。
配置的核心在于端口。默认情况下,HFish会使用服务的标准端口(如MySQL的3306)。如果宿主机的该端口已被占用,可以在部署时映射到其他端口。
点击“新建服务”按钮,一个MySQL蜜罐就启动了。此时,任何扫描或尝试连接该端口的行为都将被HFish精准记录下来。
为了让蜜罐更具迷惑性,还可以自定义一些服务的Banner信息或返回内容,让它看起来更像一个真实的业务系统。
三、 接入远程蜜罐
HFish的强大之处不仅在于单机部署的便捷,更在于其支持分布式部署。这意味着可以在不同的网络区域、不同的服务器上部署多个节点端,并将它们统一接入到一个管理端,形成一个分布式的蜜罐网络。
接入远程蜜罐的步骤同样清晰:
在管理端生成节点:
进入“环境管理” -> “节点管理”页面,点击“添加节点”。
系统会自动生成一段安装命令。这段命令包含了连接到当前管理端所需的所有信息。
在远程节点服务器上执行命令:
准备一台新的、干净的服务器作为远程节点。这台服务器可以是内网的任意一台机器,也可以是位于不同云服务商的VPS。
以root权限登录这台服务器,直接粘贴并执行刚才生成的命令。脚本会自动下载并安装节点端程序,并完成与管理端的连接配置。需要注意的是,要确保节点服务器的防火墙允许与管理端4434端口的通信。
验证与管理:
安装成功后,稍等片刻,就可以在管理端的“节点管理”页面看到新加入的节点。
之后,便可以像管理本地节点一样,为这个远程节点开启或关闭各类蜜罐服务,所有攻击数据都会被实时回传到管理端进行统一分析和展示。
通过这种方式,可以轻松地将蜜罐的触角延伸到网络的各个角落,极大地扩展了威胁感知的范围。
结语
这次HFish的部署体验,从Portainer的容器化安装到分布式节点的接入,整个过程比预想的要平滑得多。它将复杂的蜜罐技术以一种非常易用的方式呈现出来,即便是非专业的安全人员也能快速上手。
当然,蜜罐并非万能的“银弹”,它更像是一个网络中的“哨兵”和“摄像头”。通过它,可以更早地发现潜在的威胁,了解攻击者的意图和手段,为后续的安全加固和应急响应提供宝贵的情报。
评论区