ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

HFish 3.3.1 Linux部署实战:蜜罐构建内网安全防线

2026/9/3 1:12:19 拓冰建站 浏览量
HFish 3.3.1 Linux部署实战:蜜罐构建内网安全防线 简介HFish 3.3.1 Linux版本开源蜜罐系统部署资源包面向企业安全团队、蓝队人员与蜜罐技术研究者用于在内网快速部署攻击诱捕与威胁感知平台弥补安全监测盲区。包内共139个文件约111.6MB涵盖前端静态资源js/css/png/svg、配置与数据文件json/toml/sql/csv、部署脚本sh/pem、说明文档docx/md及管理端客户端程序等结构清晰便于部署维护。目前已有567人学习下载提供默认账号admin密码HFish2021登录后可直接使用多类蜜罐服务、攻击告警、蜜饵配置及可视化态势看板。整体适合需要快速落地蜜罐实践、理解攻击诱捕与内网安全运营的读者也可作为安全防御演练与威胁分析的工具参考。 半夜一点接到客户电话说内网一台服务器跟外网一直有长连接CPU还时不时飙到100%。我登上去翻了半天auth.log里全是密码爆破记录SSH端口被扫了一整夜。这种时候防火墙规则再多也没用攻击者换个IP照样进来。真正能让我睡个安稳觉的是内网里布一张“电网”——有人碰一下我这边立马亮灯。这张电网就是蜜罐。今天想聊的是开源蜜罐HFish 3.3.1在Linux上的下载部署、配置调优和一些实打实的踩坑经验。HFish是目前国内团队维护的、社区很活跃的开源蜜罐系统Golang开发解压即用部署成本比大部分同类产品低不少。无论你是做安全运维、等保合规还是纯粹想搞清攻击者进了内网之后会干什么这篇都能给你一个能落地的参考。我用它挡过真实攻击也踩过不少坑下面把这些经历全写出来。1. HFish是什么内网为什么需要一张“电网”1.1 蜜罐和防火墙的本质区别传统安全设备是“看门狗”IPS、防火墙、WAF都是被动防守——流量过来匹配规则拦或者放。这套逻辑存在一个致命问题攻击者只需要不断换IP、换工具、换手法总能找到规则覆盖不到的盲区。而且防守方永远不知道攻击者进来之后做了什么、拿了什么、想干什么。蜜罐的思路完全不同。它是一台“谁碰谁亮灯”的诱捕器故意开放一些看起来像真实服务的端口比如SSH、MySQL、Redis、Web后台实际上全是假的。正常业务不会去连这些端口只要有人连了那基本可以断定是扫描器或者攻击者。HFish的价值在于把这种“探测行为”变成高置信度的告警同时记录下攻击者的完整操作过程——用了什么工具、敲了什么命令、有没有下载恶意文件等等。1.2 为什么选择HFish 3.3.1选HFish有四个理由Go语言编译的单二进制文件部署极其简单不依赖PHP、Python、Java运行环境也不用额外装数据库。自带中低交互蜜罐覆盖SSH、Telnet、MySQL、Redis、HTTP、FTP、VNC等常用协议开箱即用。支持分布式部署一个管理端可以管控多个节点适合多网段、多机房的场景。3.3.x这个系列在功能完整度和稳定性之间比较平衡插件机制也成熟社区里面相关问题都能搜到。3.3.1这个具体版本我实测下来在CentOS 7.9和Ubuntu 20.04上都能稳定跑内存占用控制在200MB以内对于需要多节点部署的场景非常友好。1.3 部署架构先搞清楚HFish分管理端和节点端两个角色。管理端负责展示数据、下发策略、接收告警节点端负责实际监听端口、模拟服务、捕获攻击行为。两者之间通过加密通道通信不需要额外开放大量端口。我个人习惯的架构是一个管理端部署在安全区然后各个业务网段分别部署一个节点节点只单向连管理端这样可以避免攻击者通过管理端横向移动。2. Linux版本下载与部署准备2.1 下载渠道与版本校验HFish 3.3.1的Linux版本官方发布渠道主要是GitHub Releases和官网下载页。GitHub上搜hishackr/hfish就能找到对应版本的发布记录下载文件名一般是hfish-3.3.1-linux-amd64.tgz这类格式。如果你的服务器不能直接访问外部网络可以在有网的机器上下载好再通过内网传输。下载完成后强烈建议做一次hash校验官方发布说明里会附带sha256在Linux终端执行sha256sum hfish-3.3.1-linux-amd64.tgz把输出的hash值和官方公布的值对比一致再解压。这一步能避免下载到被篡改的包别嫌麻烦。2.2 Linux环境选型与准备HFish 3.3.1的Linux版本我实测支持CentOS 7、Ubuntu 18.04、Debian 9x86_64架构。需要注意的是老系统比如CentOS 6的glibc版本太低会直接跑不起来。如果你有旧系统建议先升级系统或者用Docker方式部署。部署前有几个前置操作检查时间同步。蜜罐对时间精度要求很高时间不准会导致告警时间线错乱排查攻击路径时特别痛苦。安装前执行timedatectl set-ntp true timedatectl status关闭SELinux。在CentOS上SELinux默认 enforcing会导致蜜罐进程无法绑定端口setenforce 0 sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config确认防火墙策略。管理端要开放web管理端口默认是8081可以改节点端要根据需要监听的蜜罐端口开放入站规则。2.3 解压安装与启动管理环境准备完毕开始正式部署。把下载好的压缩包上传到服务器放到你规划好的目录比如/data/hfishmkdir -p /data/hfish tar zxvf hfish-3.3.1-linux-amd64.tgz -C /data/hfish cd /data/hfish ls -la解压后目录里会有一个可执行文件和一个目录其中包含config.ini、web等文件。直接用官方脚本启动./run.sh启动成功后浏览器访问http://服务器IP:8081/web第一次访问会引导你设置管理员账号密码。HFish的管理端口默认是8081可以在配置文件里改。生产环境不建议直接前台运行我习惯写一个systemd服务来管理这样开机自启、崩溃自动拉起都有了[Unit] DescriptionHFish Honeypot Afternetwork.target [Service] Typeforking WorkingDirectory/data/hfish ExecStart/data/hfish/run.sh ExecStop/data/hfish/stop.sh Restartalways RestartSec10 [Install] WantedBymulti-user.target把上面内容保存到/etc/systemd/system/hfish.service然后systemctl daemon-reload systemctl enable hfish systemctl start hfish这样管理起来省心很多不用每次ssh上去手动敲启动命令。3. 核心功能配置与使用细节3.1 管理端初始化和界面认知用浏览器打开管理端地址进入web界面。第一次登录会让你创建管理员密码两遍输入一致后就能进主界面。主界面有几个核心板块仪表盘、攻击列表、威胁情报、蜜罐管理、节点管理、告警配置。新手往往一进来就急着开蜜罐我建议先花几分钟把界面走一遍搞清楚每个板块的作用配置起来会顺手很多。仪表盘展示的是总的攻击次数、攻击来源、被攻击的蜜罐类型分布。攻击列表是核心每条记录包含攻击者IP、攻击时间、攻击目标端口、攻击载荷、攻击者指纹信息。威胁情报模块会自动关联外部IP情报库标注这个IP是否已经在威胁库中。蜜罐管理和节点管理分别对应控制启停蜜罐服务和查看节点连接状态。3.2 蜜罐服务怎么选、怎么开HFish 3.3.1内置了二十多种蜜罐服务覆盖常用协议。最常见的中低交互蜜罐SSH蜜罐模拟SSH登录过程能记录攻击者输入的用户名、密码和执行的命令。MySQL蜜罐模拟MySQL服务器能捕获SQL注入尝试和弱口令爆破。Redis蜜罐模拟Redis未授权访问这个在真实攻击中触发频率很高。HTTP/HTTPS蜜罐模拟Web后台记录攻击路径和扫描行为。Telnet蜜罐很多老设备和物联网设备还在用Telnet攻击者也喜欢扫。配置原则不要贪多按你的内网实际情况来选。业务网段里如果根本没有MySQL服务就不需要开MySQL蜜罐否则反而容易被攻击者识别出是蜜罐。我一般建议每台节点最多开3-5个蜜罐服务模拟真实环境的服务暴露面就够了。对于有状态的高交互蜜罐比如模拟一个完整的Linux系统资源消耗比较大而且需要更复杂的维护新手建议先忽略等熟练了再上。3.3 告警通知配置与调优蜜罐不推送告警等于白装。HFish 3.3.1支持邮件、企业微信、钉钉、飞书、Webhook等多种通知方式。我实际配置下来邮件和Webhook最稳定企业微信也还行。告警配置要点告警阈值不要设太低。刚上线时各种扫描器会疯狂试探蜜罐端口一天几百条告警很正常不设置阈值会被刷屏。设成“同一IP在5分钟内触发3次以上”再告警能过滤掉90%的噪音。告警模板要带上关键信息攻击者IP、攻击时间、攻击目标、攻击载荷摘要。这样手机上看一眼就知道要不要立刻处理不用每次都登录web界面看详情。通知对象要明确。不要发给整个安全群不然连续轰炸几天大家就麻木了。我一般是建一个“蜜罐告警”分组拉值班人员和应急响应负责人。3.4 攻击数据怎么看、怎么用蜜罐的价值在数据。HFish的攻击列表里点开一条记录能看到很详细的信息攻击者的操作系统指纹、浏览器指纹、使用的扫描工具比如sqlmap、nmap的特征、完整攻击载荷。这些信息能帮你在攻击发生后快速判断攻击者是盲目扫描还是定向攻击。定向攻击通常手法更细腻目标更明确需要重点应对。攻击工具类型。不同工具的绕过手法和后续行为不一样判断工具类型能预测攻击者的下一步动作。攻击者是否已经攻陷其他真实业务系统。如果蜜罐里发现攻击者在尝试连接内网其他IP那说明他可能已经突破了一层。还有个实用玩法把HFish产生的攻击者IP丢到边界防火墙上封禁。这个操作可以手动做也可以用HFish的Webhook能力对接防火墙API实现自动化封禁。但我建议谨慎开启自动封禁先观察一周防止误封正常业务IP。4. 部署中踩过的坑与排查实录4.1 端口冲突导致蜜罐服务起不来这是最常遇到的问题。比如你这台机器上已经跑了真实的SSH服务监听22端口又想把SSH蜜罐开在22端口那肯定起不来。HFish会有报错提示但有时候报错不明显只是节点状态显示离线。排查方法netstat -tlnp | grep 22确认端口被占用后要么把蜜罐监听端口改成其他端口比如2222要么把真实服务迁移走。我个人建议蜜罐端口尽量不用默认端口攻击者扫不到还好扫到了反而更容易上钩。4.2 节点显示离线部署多节点时经常碰到这个问题。节点端启动正常但管理端显示节点离线可能的原因有节点和管理端之间的网络不通检查防火墙有没有放行管理端口。节点配置文件里指定的管理端地址不对查看conf目录下的配置文件。时间不同步导致通信认证失败按前面说的把NTP打开。排查时在节点服务器上执行ping 管理端IP telnet 管理端IP 管理端口网络通的再看日志HFish运行日志在logs目录下tail -f查看一般能直接看到错误原因。4.3 磁盘被日志塞满蜜罐在线时间长了攻击日志和审计日志会占用不少磁盘空间。我遇到过一台部署了半年多的节点日志文件把根分区塞满导致web界面打不开、数据库写不进去。解决办法du -sh /data/hfish/logs/定期清理日志或者在配置文件里设置日志轮转。同时监控磁盘使用率超过80%就告警。这个坑不踩一次真的想不到日志增长能那么快。4.4 版本升级与数据迁移从3.2升级到3.3.1官方提供了升级脚本流程是先备份数据目录然后解压新版本覆盖执行升级。花不了多长时间但一定要做备份。我总结的升级步骤# 停服务 systemctl stop hfish # 备份数据目录 cp -a /data/hfish /data/hfish_backup_$(date %Y%m%d) # 解压新版本覆盖 tar zxvf hfish-3.3.1-linux-amd64.tgz -C /data/hfish # 启动服务 systemctl start hfish备份目录保留至少两周再清理确认新版本运行稳定了再删。4.5 管理端的安全加固HFish管理端是攻击者重点关注的目标。如果管理端被攻破整个蜜罐网络就暴露了。我的做法是修改默认管理端口改成不常见的端口号。管理端不对公网开放只允许内网特定IP访问通过防火墙做源IP限制。配置强密码启用双因子认证。HFish 3.3.1支持TOTP二次验证强烈建议开启。管理端和节点端分离部署不要全都塞在一台机器上。这些操作在HFish的设置界面里都能完成不用改代码几分钟就能配好但能大幅提升整体安全性。最后分享一点体会用了HFish一年多我最大的感受是蜜罐的价值不只是发现攻击更是让你知道攻击者做了什么、试图做什么。有一次客户内网被入侵对方的攻击痕迹被清理得很干净常规日志查不出什么最后是HFish里记录的一条命令序列还原出了整个攻击链条。这个价值传统安全设备给不了。如果你想快速验证一下HFish的效果可以部署后自己在内网用nmap扫一下蜜罐端口然后在攻击列表里看数据——你会惊讶地发现连你自己的扫描行为都能被清清楚楚地记录下来。就是这么“可怕”。这套系统本身不难难的是坚持看数据、持续调优告警和策略。布好电网之后记得定期去看日志否则电网也会生锈。本文还有配套的精品资源点击获取