docker安装cowrie
时间: 2025-08-06 11:18:51 浏览: 3
<think>嗯,用户想要在Docker环境中安装和配置Cowrie蜜罐的教程。从提供的引用来看,用户应该已经看到过x-cmd工具和常规Docker部署两种方案,但更关注可操作的详细步骤。用户可能是个安全领域的新手,因为特意提到“零基础也能部署”,说明需要规避复杂的底层操作。ta真正的痛点是:既希望快速搭建环境,又担心配置文件修改出错(引用[2]提到过挂载配置和权限问题)。深层需求可能是想获得可验证的标准化操作流程。需要特别注意两个技术细节:第一,引用[2]提到的容器配置映射问题——必须强调修改挂载文件的操作路径;第二,SSH端口冲突解决需单独说明,因为默认22端口通常已被占用。考虑提供两套方案:x-cmd方案侧重简易性,适合测试场景;原生Docker方案侧重配置灵活性。在配置部分重点突出三个关键文件(cowrie.cfg、userdb.txt、docker-compose.yml)的操作,这是用户最容易出错的地方。对于日志查看和端口测试的说明也能帮助用户验证部署结果。安全提示必不可少,特别是针对生产环境。比如用户可能没意识到蜜罐的SSH服务应使用非标准端口,否则会干扰正常服务。测试建议部分考虑加入nc/telnet验证命令,这种即时反馈能提升用户信心。</think>
以下是基于 Docker 部署 Cowrie 蜜罐的完整指南,结合引用内容优化操作流程并避开常见陷阱:
---
### **Docker 部署 Cowrie 蜜罐教程**
#### 🔧 方法一:使用 x-cmd 工具(推荐零基础用户)
```bash
# 安装 x-cmd (Linux/macOS)
curl -s https://x-cmd.com/install.sh | bash
# 启动 Cowrie 容器(默认配置)
x cowrie run
# 启动自定义名称的容器
x cowrie run --name my_cowrie
# 连接蜜罐 SSH(默认端口 2223)
x cowrie test # 或 ssh root@localhost -p 2223 (密码默认为空)
```
**常用命令**:
```bash
x cowrie log # 查看攻击日志
x cowrie status # 检查容器状态
x cowrie stop # 停止容器
x cowrie restart # 重启容器
```
> 📌 优势:自动处理容器配置,避免手动映射错误[^1]。
---
#### ⚙️ 方法二:原生 Docker 部署(灵活定制)
**步骤**:
1. **准备配置文件**(解决挂载问题)
```bash
git clone https://github.com/cowrie/cowrie-docker.git
cd cowrie-docker
cp cowrie.cfg.dist cowrie.cfg # 生成主配置
cp userdb.example userdb.txt # 生成用户数据库
```
2. **修改关键配置**(避免权限问题)
```bash
# 修改监听端口(避免冲突)
echo "SSH_PORT = 2223" >> cowrie.cfg
# 添加攻击用户账号(在 userdb.txt 中新增行)
echo "attacker:xxj31Z:1005:1005::/home/attacker:/bin/bash" >> userdb.txt
```
3. **启动容器**(正确挂载配置)
```bash
docker run -d --name cowrie \
-p 2223:2223/tcp \ # SSH 服务端口
-v $(pwd)/cowrie.cfg:/cowrie/cowrie-git/etc/cowrie.cfg \
-v $(pwd)/userdb.txt:/cowrie/cowrie-git/etc/userdb.txt \
cowrie/cowrie:latest
```
---
#### 🚨 **关键配置说明**
1. **端口映射**
- 容器内 SSH 默认在 `2223` 端口运行(映射到宿主机同端口)
- Telnet 默认使用 `2223/tcp`,如需启用需在 `cowrie.cfg` 设置 `telnet_enable = true`
2. **配置文件优先级**
**必须**复制 `cowrie.cfg.dist` 为 `cowrie.cfg` 后再修改,直接编辑 `.dist` 文件无效[^2]。
3. **权限问题解决**
修改配置文件后运行:
```bash
chmod 644 cowrie.cfg userdb.txt # 确保容器可读
```
---
#### 🔍 验证与测试
```bash
# 查看实时攻击日志
docker logs -f cowrie
# 模拟攻击测试(新终端执行)
ssh root@localhost -p 2223 # 输入任意密码
```
> ✅ 成功标志:在日志中看到 `login attempt [root/<任意密码>] succeeded`
---
#### ⚠️ **注意事项**
1. 避免直接修改 Docker 镜像内的文件,重启容器后修改会丢失
2. 生产环境需:
- 修改默认空密码(在 `userdb.txt` 设置密码哈希)
- 使用非标准端口(如 `23456`)降低误触风险
3. 日志存储:添加 `-v ./logs:/cowrie/cowrie-git/var/log/cowrie` 持久化攻击记录
> 📖 扩展阅读:[官方配置文档](https://cowrie.readthedocs.io/en/latest/configuration.html)
---
###
阅读全文
相关推荐



















