站长手册(二)服务器安全之ssh蜜罐
青果君 Lv1

在前面一篇文章中,介绍了通过改变监听端口,限制登陆尝试次数来保护服务器登陆密码不被暴力破解,对于大部分的站长来说,已经足够保障服务器ssh安全。今天介绍ssh蜜罐,它并不是必要的,对安全能力提升有限。但是,它可以帮助站长了解攻击者,对其进行分析,也是很有意思的工具。 ChatGPT对它的一句话介绍:

ssh蜜罐是一种模拟SSH服务的安全设备,用于诱捕潜在的攻击者,以收集攻击者信息、分析攻击趋势、防范实际攻击并提高网络安全水平。

Cowrie 目前广受欢迎的一个蜜罐项目,配置也很简单,且支持docker部署。可惜目前网上的文档大多已经过时。所以,下面就介绍如何在服务器上使用docker-compose + mysql部署Cowrie。

Cowrie SSH 蜜罐

1. 下载cowrie源代码
1
2
3
mkdir cowrie
cd cowrie
git clone https://github.com/cowrie/cowrie.git
2. 创建mysql数据库

Cowrie支持使用数据库来记录攻击者的攻击行为,方便使用sql进行查询。在host的mariadb或者mysql中执行下列命令,为cowrie创建一个专门的数据库和用户:

1
2
3
CREATE DATABASE cowrie;
GRANT ALL ON cowrie.* TO 'cowrie'@'%' IDENTIFIED BY 'cowrie';
flush privileges;
3. 初始化mysql数据库

需要我们在数据库管理界面手动执行sql脚本

1
2
3
cd docs/sql
mysql -u cowrie -p
source mysql.sql
4. 编辑docker-compose.yml

github的代码里面有一份docker-compose.yml,但是没法直接使用,需要自己再配置一下。想来作者是认为能用cowrie的人对docker都很熟悉吧…我修改后可以直接使用的文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
---
version: '3'

volumes:
cowrie-var:

services:
cowrie:
restart: unless-stopped
build:
context: ./
dockerfile: Dockerfile
ports:
- "22:2222"
#- "2223:2223"
#network_mode: host
volumes:
- ./etc:/cowrie/cowrie-git/etc
- cowrie-var:/cowrie/cowrie-git/var
extra_hosts:
- "host.docker.internal:host-gateway"

我这里直接监听了22端口,也可以改为其他的,先自己尝试一下。在连接mysql的过程中遇到了docker网络和host网络不通的问题,用到了network_mode: host进行debug。不过最后还是用host.docker.internal:host-gateway,把网络隔离一下还是更安全。最后除了编译docker-compose.yml,还需要把Dockerfile复制:cp docker/Dockerfile ./

5. 编辑配置

配置文件位于etc目录下,基本上默认的配置就足够使用。首先复制文件

1
2
cp etc/cowrie.cfg.dist etc/cowrie.cfg
cp etc/userdb.example etc/userdb.txt

修改数据库连接配置vim etc/cowrie.cfg ,找到output_mysql模块,修改如下:

1
2
3
4
5
6
7
8
9
[output_mysql]
enabled = true
host = host.docker.internal
#host = 127.0.0.1
database = cowrie
username = cowrie
password = cowrie
port = 3306
debug = true

修改用户名配置,vim etc/userdb.txt,文件中的描述已经足够清晰,这里不再赘述。需要注意默认的配置允许root以任意密码登陆,建议修改为强密码。

6. 启动容器

执行docker compose up -d制作容器并启动,启动前注意没有进程在监听22端口。

到这一步配置结束,如果一切正常,你可以自己登陆蜜罐试试ssh root@localhost。同时查看mysql表,如select * from cowrie.auth 就可以看到你尝试登陆的ip和用户名以及密码啦。

写在后面

我的蜜罐开了3天,已经记录了1万多次登陆尝试,累计发现6024个不同的密码,可惜目前还没有攻击者成功登陆🤣

参考文档

cowire github 官网

官网安装方法

巧用 Cowrie 部署 SSH 蜜罐,让黑客攻击无处遁形

 评论
评论插件加载失败
正在加载评论插件