Hfish蜜罐部署
HFish 是一款蜜罐工具,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。
HFish 具有超过 40 种蜜罐环境、提供云蜜网、可高度自定义的蜜饵能力、一键部署、跨平台多架构、国产操作系统和 CPU 支持、极低的性能要求、邮件/syslog/webhook/企业微信/钉钉/飞书告警等多项特性,帮助用户降低运维成本,提升运营效率。
HFish 软件架构
HFish 采用经典 C/S 架构组成。管理端(Server)用于管理节点端,接收存储和分析节点端回传攻击日志和流量数据,最终形成实时威胁列表页面、威胁画像,协助客户了解当前网络威胁态势和捕捉攻击者信息。节点端(Client)用于接收管理端配置指令,实时构建多个虚拟环境,支持高低交互蜜罐,支持基础远程管理服务模拟、数据库服务模拟、网络传输服务模拟、邮件 Web 登录页面模拟、网络及 IoT 设备模拟、常见 Web 服务模拟、常见安全漏洞模拟等多种模拟服务,并内置多种行业环境模板。
HFish 能力介绍
HFish 作为蜜罐软件,提供被攻击时候的正常防卫需求。当攻击者扫描、攻击或者恶意连接 HFish 的蜜罐时,HFish 提供包括但不限于: 通过现有攻击工具漏洞,在合理范围内对攻击者进行信息提取、溯源等必要的攻击防御信息收集手段。
HFish 部署配置
为保证蜜罐业务稳定性,HFish 管理端应部署在以下操作系统环境内:
- CentOS 7.x 及以上版本 64 位
- Redhat 7.x 及以上版本 64 位
HFish 节点端支持 Linux、Windows、ARM 等各类架构和操作系统部署环境具体包括:
- Windows 7 及以上版本的 32 和 64 位
- Windows 10 及以上版本的 32 和 64 位
- Windows Server 2008 及以上版本的 32 和 64 位
- CentOS 7.x 及以上版本的 32 和 64 位
- Redhat 7.x 及以上版本的 32 和 64 位
- Ubuntu 12.x 及以上版本的 32 和 64 位(*)
- 基于 ARM 32 和 64 位架构的树莓派操作系统
HFish 部署环境
- 互联网区域部署图
管理端需要如下部署环境
/ | 最低配置 | 建议配置 |
---|---|---|
CPU | 2 核 | 4 核 |
内存 | 4G | 8G |
硬盘 | 50G | 200G |
内网节点端需要如下部署环境
/ | 最低配置 | 建议配置 |
---|---|---|
CPU | 1核 | 1核 |
内存 | 1G | 2G |
硬盘 | 20G | 50G |
- 内网区域部署图
管理端需要如下部署环境
/ | 最低配置 | 建议配置 |
---|---|---|
CPU | 2 核 | 4 核 |
内存 | 4G | 8G |
硬盘 | 50G | 100G |
外网节点端需要如下部署环境
/ | 最低配置 | 建议配置 |
---|---|---|
CPU | 1核 | 1核 |
内存 | 1G | 2G |
硬盘 | 20G | 50G |
HFish 部署方式
Hfish支持Linux、Windows、Docker部署
CentOS系统部署
CentOS 是HFish团队主力开发和测试系统,推荐选用CentOS系统部署管理端。
如果部署的环境为Linux,且可以访问互联网,强烈建议使用一键部署脚本进行安装和配置,在使用一键脚本前,请先配置防火墙。
如果蜜罐节点暴露在互联网,可能会出现TCP连接超过最大1024个连接数限制,导致其他连接被拒绝的情况,可手动放开机器TCP最大连接数。参考解决链接:https://www.cnblogs.com/lemon-flm/p/7975812.html
1.以root权限运行以下命令,确保配置防火墙开启TCP/4433、TCP/4434
firewall-cmd --add-port=4433/tcp --permanent #(用于web界面启动)
firewall-cmd --add-port=4434/tcp --permanent #(用于节点与管理端通信)
firewall-cmd --reload
2.以root权限运行以下一键部署命令
bash <(curl -sS -L https://hfish.net/webinstall.sh)
3.完成安装后,通过以下网址、账号密码登录
- 登陆链接:https://[ip]:4433/web/
- 账号:admin
- 密码:HFish2021
Windows系统部署
Windows环境不支持一键部署管理端,用户需要手动部署。
1.下载安装包HFish-Windows-amd64
2.在防火墙上放行TCP/4433、TCP/4434端口出入双向流量
- 如需其他蜜罐服务,也需要打开对应端口。
3.安装包解压缩后,运行HFish-Windows-amd64目录下的install.bat
- install.bat脚本会在当前目录安装HFish,因此运行脚本前请确保当前目录路径恰当。
4.登陆web界面
- 登陆链接:https://[ip]:4433/web/
- 账号:admin
- 密码:HFish2021
Docker环境部署
Docker是官方推荐的部署方式之一,当前的版本拥有以下特性:
自动升级:每小时请求最新镜像进行升级,升级不会丢失数据。
数据持久化:在宿主机/usr/share/hfish目录下建立data目录用于存放攻击数据,建立logs目录用于存放日志。
注意:当前Docker版本使用host模式启动,如果您不希望Docker的管理端开放除TCP/4433和TCP/4434以外的端口,可暂停管理端内置默认节点。
Docker默认安装说明
确认主机中已安装并启动Docker
docker version
运行HFish(框内全部复制,粘贴,执行即可)
docker run -itd --name hfish \
-v /usr/share/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest
配置为后续自动升级(框内全部复制,粘贴,执行即可)
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
--label=com.centurylinklabs.watchtower.enable=false \
--privileged=true \
containrrr/watchtower \
--cleanup \
hfish \
--interval 3600
登陆HFish
- 登陆地址:https://[server]:4433/web/
- 初始用户名:admin
- 初始密码:HFish2021
Docker升级失败情况
如果已经配置了Docker镜像代理,有可能会导致watchower无法生效,手动执行:
docker pull threatbook/hfish-server:3.3.5
docker tag threatbook/hfish-server:3.3.5 threatbook/hfish-server:latest
docker rm -f hfish
docker run -itd --name hfish \
-v /usr/share/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest
未配置自动升级,Docker单次手动升级
配置watchover(框内全部复制,粘贴,执行即可)
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
--label=com.centurylinklabs.watchtower.enable=false \
--privileged=true \
containrrr/watchtower \
--cleanup \
hfish \
--interval 10
等待升级成功后,登录Web管理页面,确认升级完成
取消watchover自动升级
docker stop watchtower
完成watchover配置后,后续如果还需手动升级,只需要执行 docker start watchtower 和 docker stop watchtower 即可,不需要反复配置watchover。
Docker修改持久化配置并重启
在/usr/share/hfish/config.toml下面修改配置
重启docker容器
docker restart hfish
来源
在线Demo
预览地址:https://demo.hfish.net:4433/web/
用户:hfishguest
密码:HFish2021
官方文档:
https://hfish.net/