7天捕获4197次攻击:我的蜜罐部署实战笔记
说实话,最开始部署蜜罐纯粹是好奇——想知道我的服务器每天都在被谁扫。结果一部署才发现,互联网上比我想象的”热闹”多了。
这篇文章记录了我从零搭建蜜罐矩阵的全过程,包括踩过的坑、7天内捕获的真实攻击数据,以及一些安全加固的经验。如果你也想了解自己服务器的安全状况,这篇文章应该能帮到你。
一、为什么我要部署蜜罐
事情是这样的:我有一台阿里云 ECS 跑着个人博客,配置不高(1.8GB 内存),但我想知道这台服务器每天都在经历什么。
之前看过一些安全报告说”暴露在公网的服务器每分钟都会被扫描”,我一开始没当回事。直到我看了 SSH 登录日志——每天都有几十次暴力破解尝试,来自世界各地的 IP。
于是我决定:部署蜜罐,看看这些攻击者到底在干什么。
二、蜜罐选型:我踩过的坑
2.1 最初的选择:HFish
一开始我选了 HFish,一个国产蜜罐,有 Web 管理界面,看起来很方便。但部署后发现一个问题:它吃了 1.1GB 内存。我的服务器总共才 1.8GB,这直接把内存占满了。
教训:选蜜罐一定要看资源占用,别被功能多迷惑了。
2.2 最终方案:Cowrie + 自定义 Web 蜜罐
后来我换了方案:
- Cowrie(Docker 部署)— SSH/Telnet 蜜罐,只吃 56MB 内存
- 自定义 Web 蜜罐(Python)— 模拟 phpMyAdmin、WordPress 等高价值目标,只吃 8.8MB
两个蜜罐加起来不到 70MB,比 HFish 轻了 15 倍。
2.3 为什么选择这个组合
- Cowrie 负责捕获 SSH 暴力破解和命令执行
- Web 蜜罐 负责捕获 Web 攻击(SQL 注入、XSS、文件上传)
两者互补,覆盖了最常见的攻击面。
三、Cowrie 部署:Docker 一把梭
Cowrie 的部署很简单,Docker 一把梭:
`ash
创建工作目录
mkdir -p /opt/honeypots && cd /opt/honeypots
创建 docker-compose.yml
cat > docker-compose.yml << ‘EOF’
services:
cowrie:
image: cowrie/cowrie
volumes: cowrie-data: EOF
启动
docker-compose up -d `
部署完之后,我把 SSH 端口改成了 22222(非标准端口),把 2222 端口让给了蜜罐。这样攻击者扫描 2222 端口时,就会进入蜜罐。
3.1 踩坑记录
坑 1:端口冲突
一开始我没改 SSH 端口,结果蜜罐和 SSH 服务抢 22 端口。解决办法:SSH 改到 22222,蜜罐用 2222。
坑 2:日志太大
Cowrie 的日志增长很快,7 天就积累了 50000+ 行。后来我加了日志轮转,每周归档一次。
四、Web 蜜罐:自定义方案
Web 蜜罐我选择了自己写,原因很简单:现有的 Web 蜜罐要么太重(需要 Docker),要么太简单(只记录请求)。
我的需求很简单:
- 模拟几个高价值目标(phpMyAdmin、WordPress)
- 记录所有攻击请求
- 能识别常见攻击类型
于是用 Python 写了一个简单的 HTTP 服务器,大概 200 行代码:
`python
核心逻辑很简单
1. 根据请求路径返回对应的”假”页面
2. 记录所有请求到 JSON 文件
3. 检测攻击类型(SQLi、XSS、命令注入等)
`
部署成 systemd 服务,开机自启,内存占用 8.8MB。
五、7天攻击数据分析
这才是最有意思的部分。部署蜜罐 7 天后,我导出了所有日志进行分析。
5.1 总体数据
| 指标 | 数值 |
|---|---|
| 日志总行数 | 50,188 行 |
| 总连接数 | 4,197 次 |
| 攻击源 IP | 230 个 |
| 登录尝试 | 1,140 次 |
| 执行命令 | 494 条 |
| 捕获恶意软件 | 1 个 |
5.2 攻击者都在用什么密码
这个数据挺有意思的。攻击者尝试最多的密码:
| 排名 | 密码 | 次数 |
|---|---|---|
| 1 | 123123 | 62 |
| 2 | admin | 57 |
| 3 | 123 | 48 |
| 4 | 111111 | 47 |
| 5 | 123456 | 42 |
看到这个数据,我只想说:如果你的服务器密码还是 123456,那真的该换了。
5.3 攻击者来自哪里
| 地区 | 占比 | 说明 |
|---|---|---|
| 美国(DigitalOcean) | 45% | 云服务器扫描器 |
| 中国(阿里云/腾讯云) | 30% | 被入侵的服务器 |
| 俄罗斯 | 8% | 僵尸网络节点 |
| 欧洲 | 6% | 各种扫描器 |
5.4 最有意思的一个攻击
在第 4 天,我捕获了一个完整的恶意软件投毒攻击:
- 攻击者用 oot/Aa@123456 登录蜜罐
- 执行 uname -a 收集系统信息
- 用 curl 从 60.170.253.77 下载恶意程序
- 设置后门密码
- 执行恶意程序
整个攻击链被完整记录下来了。这个恶意程序是 UPX 加壳的 Linux 二进制文件,疑似 Mirai 僵尸网络变种。
这就是蜜罐的价值:它不仅能告诉你”有人在攻击你”,还能告诉你”他们用的什么工具、什么手法”。
六、安全加固经验
部署蜜罐本身也有安全风险——如果蜜罐被攻破,攻击者可能利用它作为跳板攻击其他系统。所以我做了以下加固:
6.1 资源限制
`yaml
Docker 容器限制
deploy: resources: limits: memory: 512M # 内存上限 cpus: “0.5” # CPU 上限 `
6.2 出站流量控制
`ash
只允许 DNS、HTTP、HTTPS 出站
iptables -A HONEYPOT_OUT -p udp —dport 53 -j ACCEPT iptables -A HONEYPOT_OUT -p tcp —dport 80 -j ACCEPT iptables -A HONEYPOT_OUT -p tcp —dport 443 -j ACCEPT iptables -A HONEYPOT_OUT -j DROP # 其他全部阻止 `
为什么不完全禁止出站?因为攻击者下载恶意软件的 URL 本身就是高价值情报。
6.3 日志管理
- 每周归档一次日志
- 保留 7 天活跃日志
- 超过 30 天的归档压缩存储
七、总结与建议
7.1 部署蜜罐的收获
- 了解攻击态势 — 知道服务器每天都在被谁攻击、用什么手法
- 收集威胁情报 — 攻击者的 IP、工具、恶意软件样本
- 学习红队技术 — 通过分析攻击者的行为,学习他们的手法
7.2 给想部署蜜罐的朋友的建议
- 选轻量级方案 — 服务器资源有限,别选太重的蜜罐
- 做好安全加固 — 蜜罐本身也有安全风险
- 定期分析日志 — 蜜罐的价值在于分析,不在于部署
- 记录一切 — 攻击者的每一个操作都可能是情报
7.3 后续计划
- 扩展蜜罐类型(数据库蜜罐、API 蜜罐)
- 建立自动化告警机制
- 定期发布攻击分析报告
关于作者:Lansame,网络安全爱好者,个人博客 lansame.top
相关资源:
- Cowrie 官方文档:https://docs.cowrie.org/
- 蜜罐部署标准规范:见本博客知识库
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时






