一、zeek简要介绍
Zeek官方网站为https://zeek.org/,官网将其定义为一款开源的网络安全流量分析工具,其前身为Bro,在其官方网站可以找到详细的文档说明,zeek可以以单节点部署,也可以以集群的方式部署。Zeek的架构如下:
其中有两个关键的组件,Event Engine以及Policy Script Interpreter:
Event Engine主要负责将网络流量包简化为一系列的事件,事件描述了在网络中捕获的行为;
Policy Script Interprter则主要负责将各个事件按照一定的语义解析为属性及统计信息。
Zeek经过两个关键组件的处理后,将流量转换为日志信息。
二、环境准备
1、 网络环境
既然zeek用来分析网络流量,以被动的方式部署于网络中,那么其所部署的位置就要能够充分的捕获网络的流量,可以以旁路的方式部署在骨干网络中,同时需要考虑流量避免受到NAT地址转换的影响,选择好部署位置后,需要通过在交换机上配置流量镜像的方式捕获流量。
2、 服务器版本信息:
使用的版本为CentOS7.9
3、 Zeek软件信息
目前的最新版本为6.0版本。
三、安装部署
Zeek有二进制文件也有源码文件,推荐使用二进制文件进行安装。
1、 在官网选择最新的版本:
2、 选择操作系统CentOS,添加YUM源:
说明:关于zeek软件包的介绍,可以查看zeek在github上的wiki:https://github.com/zeek/zeek/wiki/Binary-Packages :
在安装的时候配置好yum源,然后只需要安装zeek-6.0软件即可,如果要手工下载安装,(下载地址:https://build.opensuse.org/projects/security:zeek/packages/zeek-6.0/repositories/CentOS_7/binaries )不能只下载zeek-6.0这一个包,否则要报错。
3、 执行命令进行安装:
Yum install -y zeek-6.0
Rpm包安装后,默认的安装目录在/opt/zeek,如下:
几个重要的目录说明:
/opt/zeek/bin/:zeek安装时的二进制文件
/opt/zeek/etc/:主要用于存放重要的配置文件,如node.cfg等
/opt/zeek/logs/:zeek默认的用于存放日志的目录
/opt/zeek/share/:这里存放zeek的脚本,可以用于进行流量分析。
/opt/zeek/share/zeek/base/:这里存放的是一些基础脚本,用于收集基本的网络状态信息;
/opt/zeek/share/zeek/policy/:这是随zeek一起分发的另外的脚本,用户可以自主选择需要启用的策略,缺省情况下,zeek只加载一些很少的策略脚本,这些脚本也不建议进行修改。
/opt/zeek/share/zeek/site/:这是可以由用户随意修改的策略,其中local.zeek为主要的策略入口,可以在这里加载额外的自定义的策略。
4、 把/opt/zeek添加到环境变量
[root@localhost ~]# echo "PATH=$PATH:/opt/zeek/bin" >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/zeek/bin
5、 配置网卡工作在混杂模式
6、 修改/opt/zeek/etc/node.cfg配置文件
这里采用单节点部署,修改网卡名称为真实的网卡名称
Vi /opt/zeek/etc/node.cfg
7、 首次安装时,先要进行安装并且启动服务:
也可以使用deploy命令同时执行上面两步。
8、 查看zeek捕获到流量后生成的日志信息
启动后查看/opt/zeek/logs目录,可以看到生成了几个目录,其中current为当前的日志目录,下面已经有几种类型的日志。
四、zeek测试
1、 现在我们使用curl 访问一个网站,同时使用tail –f current/dns.log,tail –f current/conn.log查看一下打印的日志信息:
[root@localhost etc]# curl http://www.baidu.com
查看dns.log,可以看到这是一个dns请求报文,并且返回了地址解析信息:
[root@localhost logs]# tail -f current/dns.log
查看conn.log,可以看到这是一个HTTP的连接信息:
[root@localhost ~]# tail -f /opt/zeek/logs/current/conn.log
2、 下面把日志格式调整为json格式,方便后面使用
Json-logs.zeek文件定义了日志格式为json格式,如下:
/opt/zeek/share/zeek/policy/tuning/json-logs.zeek
现在到/opt/zeek/share/zeek/site/local.zeek启用该策略:
进入zeekctl控制台重新部署服务:
再查看日志格式,已经为json格式了:
五、下一步计划
经过上面的安装配置,现在zeek已经可以捕获到流量并且生成日志信息了,下一步将收集到的信息以可视化的方式进行展示,便于分析。
标签:opt,Zeek,安装,网络流量,开源,zeek,日志,root,localhost From: https://blog.51cto.com/u_9652359/8185185