找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 1782|回复: 0

安全建设:如何给家庭NAS搭建一套免费社区型蜜罐HFish(二)

[复制链接]
发表于 2025-1-13 20:25 | 显示全部楼层 |阅读模式
本系列蜜罐建设的第一篇讲述了家庭网络的安全需求及展示了成品效果,本篇重点讲述如何落地实现,目标是完成内网失陷检测和外网威胁感知两个场景的版图拼凑。

快速部署
HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。
配置要求。由于会涉及到蜜罐部署到外网,会遭受到更多的攻击,因此管理端需要更大的性能需求。

资源配置
底层系统
管理端(Server+Mysql)
>=2核4G100G
Debian12
节点端(Client)
>=1核1G50G
Debian12


主体网络架构示意图




为了便利,还是采用docker compose编排,快速拉起我们的项目。
老规矩,在DMZ区选取一台机器,我这里有且只有一台可用的,没得选。




创建好项目路径,我这里是 /data/tools/hfish-server,在该目录下配置docker-compose.yaml文件内容如下

  1. services:
  2.   app:
  3.     image: threatbook/hfish-server:latest
  4.     restart: always
  5.     environment:
  6.       TZ: 'Asia/Shanghai'
  7.     privileged: true
  8.     network_mode: host
  9.     volumes:
  10.       - /data/storage/hfish/data:/usr/share/hfish

  11.   mysql:
  12.     image: mysql:8.1.0
  13.     restart: always
  14.     command:
  15.       - --default-authentication-plugin=caching_sha2_password #mysql_native_password
  16.       - --character-set-server=utf8mb4
  17.       - --collation-server=utf8mb4_general_ci
  18.       - --explicit_defaults_for_timestamp=true
  19.       - --expire_logs_days=7
  20.     volumes:
  21.       - /data/storage/hfish/mysql:/var/lib/mysql
  22.     ports:
  23.       - "127.0.0.1:3306:3306"
  24.     healthcheck:
  25.       test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
  26.       interval: 3s
  27.       retries: 5
  28.       start_period: 30s
  29.     environment:
  30.       # 请修改此密码,并对应修改HFish后台的数据库密码
  31.       - MYSQL_ROOT_PASSWORD=your_db_password
  32.       - MYSQL_DATABASE=hfish
复制代码


采用如下命令快速拉起管理端的这两个容器
  1. docker compose up -d
复制代码


其实目前为止,已经部署好了DMZ区的一个管理端和节点端,因为管理端默认内置了一个节点端,如上已经配置好了host网络,可直接投入使用。
紧接着就是针对管理端的一系列常规操作,接入WAF,接入网关Traefik,具体过程可参考我之前写过的智能家居相关文章,这里不再赘述。
登录管理端的Web后台 https://hfish.evling.tech/web/ ,使用默认账号密码admin/HFish2021登录





完成登录后,在系统配置下完成对数据库的切换配置,改成上边的mysql生产数据库。




紧接着对内置节点配置基础信息,并按需新增一部分蜜罐




我这里这里选取了几个Web蜜罐对外网进行了暴露,按照我的业务链路方式接入了Cloudflare、Traefik、WAF,如上示意图所示,为了能够使蜜罐管理端取到真实客户端IP,还需设置XFF取值策略。




当然,它这里的取值方式是有瑕疵的,可以轻松伪造客户端IP,不过没关系,只是会影响HFish管理端的呈现,Cloudflare和Traefik已经做了客户端真实IP固定,不影响溯源。

接下来就是布置内网可信区的节点端,按照本系列第一篇的规划设定,这个节点放置在内网的Traefik网关处。




创建好项目目录 /data/tools/hfish ,该目录下 docker-compose.yaml文件内容如下
  1. services:
  2.   app:
  3.     command: crond -l 2 -f
  4.     build: ./app
  5.     restart: always
  6.     environment:
  7.       TZ: 'Asia/Shanghai'
  8.     network_mode: host
复制代码


Dockerfile文件 app/Dockerfile 内容如下
  1. FROM alpine:latest

  2. RUN apk add --update tzdata bash curl && \
  3.     cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
  4.     echo "Asia/Shanghai" > /etc/timezone && \
  5.     apk del tzdata && \
  6.     rm -rf /tmp/* /var/tmp/* /var/cache/apk/* /var/cache/distfiles/*

  7. RUN sh -c "$(curl -k https://10.8.15.2:4434/tmp/FiZTZtofKYwB.sh)"
  8. CMD ['crond', '-l 2', '-f']
复制代码



请注意Dockerfile中的接入管理端的链接需要替换掉,在管理端后台的节点管理处获取。




即可生成对应的地址。





替换好后接入链接后,即可开始构建并拉起容器
  1. docker compose build
  2. docker compose up -d
复制代码



至此已完成对可信区域的节点端接入管理端。同样按照如上内置节点配置蜜罐的方式对该节点配置蜜罐,由于是在内网,路由可达便利,无需在考虑对蜜罐服务接入waf之类的。

总结
本篇完成了蜜罐系统部署,对于后期内容的安排,各位如果有想法的话可以在评论区畅所欲言。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-12-5 12:30

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表