深入解析T-Pot蜜罐平台的Docker-Compose架构
2025-07-07 02:32:20作者:卓炯娓
项目概述
T-Pot是一个基于Docker容器技术的多蜜罐平台,集成了多种流行的蜜罐系统、网络监测工具和数据分析组件。通过docker-compose.yml文件,T-Pot实现了模块化部署和管理,使安全研究人员能够轻松搭建一个功能完善的网络诱捕环境。
核心架构设计
1. 网络隔离设计
T-Pot采用Docker网络隔离策略,为每个蜜罐服务创建独立的网络:
networks:
adbhoney_local:
ciscoasa_local:
conpot_local_IEC104:
# ...其他网络定义
这种设计实现了:
- 各蜜罐服务间的网络隔离
- 防止攻击者在入侵一个蜜罐后横向移动
- 便于流量监测和分析
2. 初始化服务(tpotinit)
作为整个系统的核心管理组件,tpotinit服务具有以下特点:
tpotinit:
container_name: tpotinit
network_mode: "host"
cap_add:
- NET_ADMIN
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
关键功能:
- 使用host网络模式获取主机网络权限
- 挂载Docker socket实现容器管理
- 具备NET_ADMIN能力进行网络配置
- 作为健康检查节点控制其他服务启动顺序
蜜罐服务详解
1. 常见服务类型
T-Pot集成了多种类型的蜜罐:
-
SSH蜜罐:
- Cowrie:模拟SSH和Telnet服务
cowrie: ports: - "22:22" - "23:23"
-
工业控制系统蜜罐:
- Conpot:支持IEC104、IPMI等工业协议
conpot_IEC104: environment: - CONPOT_TEMPLATE=IEC104 ports: - "2404:2404"
-
医疗设备蜜罐:
- Medpot:模拟医疗设备通信
medpot: ports: - "2575:2575"
2. 数据收集设计
各蜜罐采用一致的日志收集策略:
volumes:
- ${TPOT_DATA_PATH}/adbhoney/log:/opt/adbhoney/log
- ${TPOT_DATA_PATH}/adbhoney/downloads:/opt/adbhoney/dl
特点:
- 日志统一挂载到${TPOT_DATA_PATH}指定目录
- 下载的文件单独存储便于分析
- 使用tmpfs提高敏感操作的安全性
网络监测组件
T-Pot集成了专业的网络监测工具:
-
Suricata入侵检测系统:
suricata: network_mode: "host" cap_add: - NET_ADMIN - SYS_NICE - NET_RAW
-
P0f被动指纹识别工具:
p0f: network_mode: "host"
-
Fatt流量分析工具
这些组件都采用host网络模式,直接监测主机网络流量。
ELK数据分析栈
T-Pot使用ELK(Elasticsearch, Logstash, Kibana)进行日志分析:
elasticsearch:
environment:
- ES_JAVA_OPTS=-Xms2048m -Xmx2048m
mem_limit: 4g
kibana:
mem_limit: 1g
logstash:
environment:
- LS_JAVA_OPTS=-Xms1024m -Xmx1024m
mem_limit: 2g
配置特点:
- 为各组件分配合理的内存资源
- 仅本地访问保证安全性
- 使用volume持久化数据
安全最佳实践
-
容器安全配置:
- 普遍启用read_only限制文件系统写入
read_only: true
-
资源隔离:
- 使用tmpfs处理临时文件
tmpfs: - /tmp/conpot:uid=2000,gid=2000
-
最小权限原则:
- 精确控制capabilities
cap_add: - NET_ADMIN
部署建议
-
硬件要求:
- 建议8核CPU/16GB内存以上配置
- 预留100GB以上存储空间
-
网络配置:
- 建议部署在DMZ区域
- 配置防火墙规则限制管理访问
-
监测策略:
- 定期检查各蜜罐日志
- 设置ELK告警规则
总结
T-Pot的docker-compose架构展示了如何将复杂的蜜罐系统容器化部署。通过合理的网络设计、资源分配和安全配置,它实现了:
- 多蜜罐的集成管理
- 攻击数据的集中收集
- 流量的实时监测
- 日志的关联分析
这种架构为网络安全研究人员提供了一个功能强大且易于维护的威胁情报收集平台。