hpfeeds协议是一种发布者/订阅者协议,发布者/订阅者拥有着自己的发布/订阅频道,发布者可以通过发布频道发送消息,订阅者可以通过订阅频道接收消息,这很适合用于分布式的蜜罐网络传输数据。
建立一个用户,该用户既是订阅者也是发布者(即拥有频道1的发布与订阅权限)。在服务器端运行订阅服务,订阅频道1,每个蜜罐通过向频道1发布消息,将数据传回到服务器上。
1. hpfeeds协议的安装
git clone https://github.com/rep/hpfeeds.git
cd hpfeeds
python setup.py build
python setup.py install
由于hpfeeds协议的实现较为古老,长时间没有更新,所以使用上有一些坑需要注意:
- 不要使用broker/add_user.py来添加用户与频道,该程序会想mongodb添加用户,而broker服务运行起来的时候,是从sqlite中读取用户与频道等信息的
- 对hpfeeds的详细说明可以参照(使用上请不要按照连接中的方式):http://das.scusec.org/2016/02/19/hpfeeds/
2. 建立订阅者/发布者/channel
打开 hpfeeds/broker/database.py,可以看到添加用户的方法:
所以,按照该文件中的说明,执行下列操作:
sqlite3 db.sqlite3
# 进入数据库后
# 根据需要修改values中的值
> insert into authkeys (owner, ident, secret, pubchans, subchans) values ('owner', 'ident', 'secret', '["chan1"]', '["chan1"]');
3. 配置t-pot打开hpfeeds功能
# 进入目录/data/ews/conf/中
cd /data/ews/conf
# 修改ews.cfg
vim ews.cfg
接下来就可以收到来自t-pot的数据了
相关内容:
- t-pot: https://github.com/dtag-dev-sec/tpotce
- T-Pot多蜜罐平台:让蜜罐实现更简单: http://www.freebuf.com/sectool/134504.html