【翻译】t-pot 16.10-多蜜罐平台

t-pot 16.10-多蜜罐平台

2016年10月31日,德国电信公司Honeypot项目

在2016年3月,我们发布了T-Pot 16.03,积极的反馈鼓励我们继续发展,并与社区分享所有的改进,并自豪地向您介绍...

T-pot 16.10使用Ubuntu Server 16.04 LTS系统,基于docker(https://www.docker.com/),包括以下蜜罐版本。

  • conpot,(http://conpot.org/)
  • cowrie,(http://www.micheloosterhof.com/cowrie/)
  • dionaea,(https://github.com/DinoTools/dionaea)
  • elasticpot,(https://github.com/schmalle/ElasticPot)
  • emobility,(https://github.com/dtag-dev-sec/emobility)
  • glastopf,(http://mushmush.org/)
  • honeytrap(https://github.com/armedpot/honeytrap/)

此外,我们还使用以下工具:

ELK stack(https://www.elastic.co/videos):将所有由t-pot捕获的事件都进行了漂亮的可视化。

  • Elasticsearch Head(https://mobz.github.io/elasticsearch-head/):负责浏览网页并与Elastic Search集群进行交互。
  • Netdata(http://my-netdata.io/):进行实时性能监控。
  • Portainer(https://portainer.io/):docker的Web的用户界面。
  • Suricata(https://suricata-ids.org/):网络安全监控引擎。
  • Wetty(https://github.com/krishnasrinivas/wetty):基于web界面的SSH客户端

TL; DR

  1. 系统要求:T-pot安装需要至少4 GB的内存和64 GB的可用磁盘空间以及可用的Internet连接。
  2. 从GitHub下载t-pot镜像,或者自己创建它。
  3. 将系统安装在虚拟机或物理机上,通过Internet访问。
  4. 观察和分析。

更新日志:

  • t – pot以Ubuntu 16.04 LTS操作系统为基础
  • 大小很重要
  1. tpot.iso是基于Ubuntu的网络安装程序,将镜像下载大小从650MB降低到只有50MB。
  2. 所有的docker镜像都被重建,至少减少镜像大小50MB,在某些情况下甚至是400 – 600MB。
  3. “全部”安装大约需要2GB的下载大小(从最初的镜像下载计算)。
  • 引入新工具使新用户的工作变得更容易
  1. Elasticsearch Head(https://mobz.github.io/elasticsearch-head/):负责浏览网页并与Elastic Search集群进行交互
  2. Netdata(http://my-netdata.io/):进行实时性能监控。
  3. Portainer(https://portainer.io/):docker的Web的用户界面。Wetty(https://github.com/krishnasrinivas/wetty):基于web界面的SSH客户端
  • Nginx反向代理实现HTTPS
  1. 通过浏览器访问Kibana,ES Head plugin,UI-for-Docker,WebSSH和Netdata。
  2. 不再需要基于两个因素的SSH隧道。
  • 安装过程
  1. 为tsec用户设置你自己的密码
  2. 选择您的安装类型,而无需创建自己的镜像
  3. 设置远程用户名/密码以进行安全的Web访问,包括签名证书
  4. 容易记住的主机名
  • 首次登录
  1. 从控制台,SSH或web访问
  2. 使用私有网络地址登录时,ssh不需要两种身份验证
  3. 对除私有网络之外的ssh连接使用公钥验证
  • Systemd现在取代了init系统。所有的upstart脚本都被移植到systemd中,并进行了以下改进:
  1. 改进容器的启动/停止操作
  2. 为每个容器的启动脚本单独设置能够永久保存(/etc/systemd/system)
  3. 全局设置永久保存(/usr/bin/clean.sh)
  • 蜜罐更新和改进
  1. Conpot现在支持JSON日志记录,非常感谢这一特性请求的实现:Andrea Pasquale,Danilo Massa 以及Johnny Vestergaard
  2. Cowrie现在支持telnet,非常感谢你,谢谢Michel Oosterhof
  3. Dionaea现在支持JSON日志记录,非常感谢这一特性请求的实现:PhiBo
  4. Elasticpot现在支持记录所有的查询和请求,非常感谢这一特性请求的实现:Markus Schmall
  5. Honeytrap现在支持JSON日志记录,非常感谢这一特性请求的实现:Andrea Pasquale
  • 更新
  1. Docker被更新到最新的1.12.2版本
  2. ELK更新到最新的Kibana 4.6.2,Elasticsearch 2.4.1, Logstash 2.4.0版本。
  3. Suricata更新到最新的3.1.2版本,包括最新的Emerging Threats社区规则集。
  • 我们现在有150个可视化的预配置,并将其编译为14个单独的Kibana仪表盘。在您的T-pot安装中监视本地所有的蜜罐事件。 除了蜜罐事件,您还可以查看Suricata NSM,Syslog和NGINX事件,以快速了解本地主机事件。
  • 现在包含更多的智能链接。

技术概念

t - pot基于Ubuntu server16.04 LTS的网络安装程序。在使用docker时,使用的蜜罐守护程序和其他支持组件都是半虚拟化的。这使我们可以在相同的网络接口上运行多个蜜罐守护进程,从而使整个系统的维护非常低。

在docker中封装蜜罐守护进程,可以很好地隔离运行时环境和简单的更新机制。

在T-pot中,我们将被docker化的蜜罐conpot,cowrie,dionaea,elasticpot,emobility,glastopf和honeytrap与网络安全监控引擎和ELK stack、 suricata结合在一起,可以很好地显示T-Pot捕获的所有事件。这些事件可以通过我们自己的数据分析工具ewsposter进行关联,该工具也支持蜜网项目hpfeeds数据共享。

docker中的所有数据都是不稳定的。 一旦Docker容器崩溃,其环境中生成的所有数据都将消失,重新启动新的实例。因此,对于一些需要永久保存的数据,即配置文件,我们在主机上有一个永久的存储目录/data/,以便使其在容器或系统重启时可永久保存。重要的日志数据现在也存储在容器外的/data/<container-name>中,从而可以轻松访问主机内部的日志。systemd脚本已经过调整,以支持在主机上存储数据,包括volatile(默认)或persistent(在/etc/systemd/system中调整单个systemd脚本或在/usr/bin/clear.sh中使用全局设置)。

总的说来,系统启动时会发生以下情况:

  • 启动主机系统
  • 启动所有必要的服务(如docker-engine、反向代理等)。
  • 启动所有docker容器(蜜罐,nms,elk)

在T-Pot项目中,我们提供了构建您自己的蜜罐系统所需的所有工具和文档,并为我们的社区数据视图做出贡献,这是我们的一个单独的由T-pot社区数据支持的”Sicherheitstacho”频道。

源代码和配置文件存储在单独的GitHub项目中,这些项目链接在下面。Docker镜像适合在这个环境中运行。如果您想要单独运行docker镜像,请确保您学习了upstart脚本,因为它们提供了有关如何配置它们的信息。

我们使用的个人docker配置等可以在这里找到:

  • Conpot(https://github.com/dtag-dev-sec/conpot)
  • Cowrie(https://github.com/dtag-dev-sec/cowrie)
  • Dionaea(https://github.com/dtag-dev-sec/dionaea)
  • Elasticpot(https://github.com/dtag-dev-sec/elasticpot)
  • elk-stack(https://github.com/dtag-dev-sec/elk)
  • emobility(https://github.com/dtag-dev-sec/emobility)
  • glastopf(https://github.com/dtag-dev-sec/glastopf)
  • honeytrap(https://github.com/dtag-dev-sec/honeytrap)
  • netdata(https://github.com/dtag-dev-sec/netdata)
  • portainer(https://github.com/dtag-dev-sec/ui-for-docker)
  • suricata(https://github.com/dtag-dev-sec/suricata)

系统要求

根据您的安装类型,无论您安装在物理机还是虚拟机中,请确保您指定的t-pot系统满足以下要求:

T-Pot安装(Cowrie,Dionaea,ElasticPot,Glastopf,Honeytrap,ELK,Suricata + P0f&Tools)

在安装t-pot ISO镜像时,确保目标系统(物理/虚拟)满足以下最低要求:

  • 4GB内存(建议6-8GB)
  • 64GB磁盘空间(建议128GB SSD)
  • 通过DHCP连接网络
  • 有效的网络连接

传感器安装(Cowrie,Dionaea,ElasticPot,Glastopf,Honeytrap)

在安装t-pot ISO镜像时,确保目标系统(物理/虚拟)满足以下最低要求:

  • 3GB内存(建议6-8GB)
  • 64GB磁盘空间(建议64GB SSD)
  • 通过DHCP连接网络
  • 有效的网络连接

工业安装(ConPot,eMobility,ELK,Suricata + P0f&Tools)

在安装t-pot ISO镜像时,确保目标系统(物理/虚拟)满足以下最低要求:

  • 4GB内存(建议8GB)
  • 64GB磁盘空间(建议128GB SSD)
  • 通过DHCP连接网络
  • 有效的网络连接

完整安装(一切,上述所有)

在安装t-pot ISO镜像时,确保目标系统(物理/虚拟)满足以下最低要求:

  • 8GB内存(建议8GB)
  • 大于等于128GB磁盘空间(128GB SSD或者更大)
  • 通过DHCP连接网络
  • 有效的网络连接

安装

t-pot是直接安装的。请注意,您应该连接网络起安装,因为需要从docker hub中提取所选安装类型的所有docker镜像。

首先,决定是否要从GitHub下载我们的预先安装的ISO映像或自己创建。

其次,决定你想让系统运行的地方:物理机还是虚拟机?

预先构建的ISO映像

我们提供了一个可下载的安装ISO映像(50MB),它是使用您自己使用的工具创建的,以创建您自己的镜像。它会节省您一些下载组件和创建ISO映像的时间。您可以从GitHub下载预构建的安装镜像并跳转到安装部分。

创建您自己的ISO镜像

为了提高透明度,为了让您能够自定义安装,您可以使用ISO Creator(https://github.com/dtag-dev-sec/tpotce)创建自己的ISO安装镜像。

创建ISO镜像的要求:

  • Ubuntu 16.04 LTS或更新作为主机系统(其他人系统或许,但仍未测试)
  • 4GB的空闲内存
  • 32GB的存储空间
  • 有效的互联网连接

如何创建ISO映像:

  1. 克隆存储库并进入目录。 git clone https://github.com/dtag-dev-sec/tpotce.git cd tpotce
  2. 调用构建ISO镜像的脚本。该脚本将下载并安装构建镜像所需的依赖关系。它将进一步下载T-pot所基于的ubuntu网络安装镜像(50MB)。 sudo ./makeiso.sh

成功构建后,您将在您的目录中找到ISO镜像tpot.iso以及SHA256校验和tpot.sha256两个文件。

运行在虚拟机

您可能想要在虚拟环境中运行T-Pot。虚拟系统配置取决于您的虚拟化提供商。

我们使用VirtualBox和VMWare成功测试了T-Pot,只需对默认机器配置进行一些修改即可。

确保满足系统要求,并分配虚拟硬盘>=64GB,>=4GB内存,并将网络连接到t-pot。

您需要为suricata的网络接口启用混杂模式以正常工作。确保在配置过程中启用它。

如果您想使用无线网卡作为T-pot的主要网卡,请注意不是所有的网络接口驱动程序都支持所有的无线网卡。例如,在VirtualBox中,你必须选择NIC的“MT SERVER”型号。

最后,将tpot.iso ISO安装到VM并继续安装。

运行在物理机

如果您决定在物理机上运行t-pot,请按照以下步骤:

  1. 从ISO镜像中刻录一张CD,或者使用镜像制作一个可启动的U盘。

虽然大多数CD刻录工具允许您从ISO镜像刻录,但是ISO映像创建可引导USB盘的过程取决于您的系统。 有各种可用的Windows GUI工具,例如这个提示可能会帮助你。

在Linux或MacOS上,您可以使用dd工具或者使用T-Pot的ISO Creator创建U盘。

2. 从u盘启动并安装。

首次运行

安装需要很少的交互,只有一些locale和键盘设置必须被应答。其他一切都将自动配置。系统将重新启动两次。确保它能访问互联网,因为它需要下载更新和docker化的蜜罐组件。根据您的网络连接和选择的安装类型,安装可能需要一些时间。在我们的测试中(10M-50M),安装通常在30分钟内完成。

一旦安装完成,系统将自动重启,您将会看到一个t-pot登录界面。首次登录的用户凭证是:

  • user: tsec
  • pass: 安装期间设置的密码

所有的蜜罐服务都是预先配置的,并自动启动。

您还可以从浏览器登录:https://<ip地址>:64297

user:您在安装过程中设置的用户

pass:您在安装过程中设置的密码

系统布局

确保你的系统可以联网,否则,它将不会捕获除了来自内部网络的攻击之外的攻击!我们建议您将其放入未过滤的区域,所有TCP和UDP传输都被转发到t-pot的网络接口。

如果你在NAT网关(例如家庭路由器)之后,这里有一个需要做端口转发的t-pot端口列表。

基本上,您可以根据需要转发更多的TCP端口,因为honeytrap动态绑定了其他蜜罐守护进程未覆盖的TCP端口。

如果您需要外部SSH访问,请将TCP端口64295转发到T-Pot,请参阅下文。 如果您需要外部Web访问,请将TCP端口64297转发到T-Pot,请参阅下文。

T-Pot需要传出http和https连接来更新(ubuntu,docker)和攻击提交(ewsposter,hpfeeds)。

选项

该系统的设计目的是在没有任何交互或维护的情况下运行,并自动为社区做出贡献。

我们知道,对于一些人来说,这可能还不够。这里有一些进一步检查系统和更改配置参数的方法。

ssh和Web访问

默认情况下,SSH守护进程只允许使用私有网络中的用户/密码访问64295端口。但是,如果您希望能够通过SSH远程登录,则需要将SSH密钥放在主机上,如下所述。

将您的SSH密钥文件复制到/home/tsec/.ssh/authorized_keys并设置适当的权限(chmod 600 authorized_keys)以及正确的所有权(chown tsec:tsec authorized_keys)。

如果您没有ssh客户端,并且仍然希望通过SSH访问该机器,您可以通过使用浏览器访问https://<ip地址>:64297

user:您在安装过程中设置的用户

pass:您在安装过程中设置的密码

从导航栏中选择WebSSH。系统将提示您为用户tesc输入密码访问此连接。

Kibana仪表盘

只需打开浏览器,访问并连接到https://<ip地址>:64297

user:您在安装过程中设置的用户

pass:您在安装过程中设置的密码

Kibana仪表盘将自动加载。Kibana的仪表盘可根据您的需求进行定制。默认情况下,我们没有添加任何过滤,因为过滤器依赖于您的设置。例如,您可能希望过滤传入的SSH连接和服务器的连接。

工具

我们提供了一些基于Web的管理工具来改善和减轻您的日常工作。

ES Head插件

Docker web管理界面

网络数据

维护

如前边所述,系统被设计为低维护。基本上,除了让它运行之外,你没有什么可做的。如果一个docker守护进程失败,它将重新启动。如果失败了,那么重新启动一个实例。

如果遇到任何问题,重新启动可以修复它。

如果出现了新版本的组件,我们将测试它们并构建新的docker镜像。这些新的docker镜像将被推送到docker hub并下载到t-pot并激活。

数据提交

我们提供t-pot,以便让所有对蜜罐部署感兴趣的人都可以访问。默认情况下,捕获的数据会提交到一个社区后端。这个社区后端使用这些数据来构建数据视图,这是我们自己的门户网站“Sicherheitstacho”的一个单独的通道,由我们自己的一套蜜罐提供支持。您可以通过在配置文件/data/ews/conf/ews.cfg.的[EWS]部分禁用提交给我们的社区服务器。

此外,我们支持hpfeeds,默认情况下,它是禁用的,因为您需要提供一个您想要发布的通道并输入您的用户凭证,要启用hpfeeds,请编辑配置文件/data/ews/conf/ews.cfg的[HPFEED]部分并将其设置为true。

数据以结构化的ews格式(XML结构)提交。 因此,您可以解析与您相关的信息。

/data/ews/conf/ews.cfg文件包含系统运行所需的许多配置参数。如果你想添加一个电子邮件地址,包括你的意见,以便能够确定你的请求。此外,您可以添加一个代理。请不要改变这些设置以外的任何东西,除非很必要。否则,系统可能无法按预期工作。

原文发布于微信公众号 - 安恒网络空间安全讲武堂(gh_fa1e45032807)

原文发表时间:2017-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏艾斯博客www.vpsss.net

BT-Panel Linux 自动磁盘挂载工具 自动将分区挂载到/www 目录

1.4K30
来自专栏运维小白

Linux基础(day39)

11.1 LAMP架构介绍 LAMP架构介绍 LAMP架构包含了 Linux+Apache(httpd)+MySQL+PHP ,简称LAMP Linux是操...

22680
来自专栏蓝天

cron 的配置和说明

作者:北南南北 来自:LinuxSir.Org 摘要:Linux操作系统中,计划任务通常由cron来承担,了解或掌握cron,能为我们管理服务器带来更多的便利,...

12220
来自专栏小尘哥的专栏

搭建自己的个性博客平台

每次百度问题看到别人的个性博客,都纳闷是怎么来的,本教程教你搭建一个自己的个性博客平台。采用当前流行的博客开源框架hexo+oschina,别问为啥不用gith...

13330
来自专栏黑泽君的专栏

ubuntu 16.04安装软件常见错误 Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavaila

  因为刚装好的Ubantu系统,内部缺少很多软件源,这时,系统会自动启动软件源更新进程“apt-get”,并且它会一直存活。由于它在运行时,会占用软件源更新时...

41420
来自专栏编程坑太多

『高级篇』docker之kubernetes基础集群部署(下)(34)

kube-scheduler负责分配调度Pod到集群内的节点上,它监听kube-apiserver,查询还未分配Node的Pod,然后根据调度策略为这些Pod分...

14940

Jelastic专用存储容器指南

在我们以前的文章中,我们已经开始揭示数据存储容器主要的可能性,这有助于改善你的项目文件系统的结构。我们还介绍了Jelastic中存储的5种类型的数据,现在我们将...

20460
来自专栏小樱的经验随笔

使用VMWareWorkstation10搭建学习环境笔记

第一节:介绍虚拟化技术 虚拟化技术 1.在一台计算机运行多个操作系统 2.教学环境 测试环境 3.和硬件无关 4.P to V   物理机->虚拟机(Physi...

69550
来自专栏Java后端技术

Python学习的路上,Anaconda送你一双遮天神翼

​  最近在学习python,发现在本地搭建python环境的时候,要是想要同时搭建不同python版本的环境,就比较麻烦,很容易就出现冲突了,很是头疼。然后光...

10520
来自专栏陈本布衣

布衣之路(二):虚拟机的文件共享和网络模式

除夕之夜,当别的大神都在和家人一起辞旧岁,迎新年的时候,博主这样的小喽啰不敢懈怠,想着一年之计,当早做谋划,趁着别人嗨的时间,笔耕不辍的写篇日志,以此颇觉有意...

33970

扫码关注云+社区

领取腾讯云代金券