zeek介绍

Zeek是一个被动的开源网络流量分析器。它主要是一种安全监视器,可深入检查链接上的所有流量以查找可疑活动的迹象。使用Zeek最直接的好处是生成大量日志文件。这些日志不仅包括对网络上每个连接的全面记录,还包括应用程序层记录,例如所有HTTP会话及其请求的URI,密钥标头,MIME类型和服务器响应;带回复的DNS请求;SSL证书;SMTP会话的关键内容;以及更多。默认情况下,Zeek将所有这些信息写入结构合理的制表符分隔的日志文件中,这些文件适用于使用外部软件进行后处理。

另外,在名称上,3.0版本之前是叫bro,之后改为zeek,相关的命令也都有变动

官方文档:About Zeek — Book of Zeek (v4.1.1)

安装部署

安装zeek

安装zeek有两种方法:1是下载一个二进制程序包(类似windows的exe安装程序),运行安装;2是下载zeek的源码,编译源码进行安装。

都需要先安装好依赖。

  1. 安装依赖项

sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev

二进制包安装:

下载

wget https://download.opensuse.org/repositories/security:zeek/CentOS_7/security:zeek.repo

安装

yum install zeek

编译源码安装:

解压后执行

./configure; make; sudo make install

如果cmake版本过低,需要先卸载cmake,然后升级安装最新版本cmake

升级cmake步骤

卸载旧版本cmake

yum remove cmake -y

下载cmake

wget https://cmake.org/files/v3.5/cmake-3.5.0.tar.gz

解压

tar -xvf cmake-3.5.0.tar.gz

cd cmake-3.5.0

编译

./configure --prefix=/usr/local/cmake

安装

make && make install

设置软连接

ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake

查询版本

cmake -version

安装后保存位置

/opt/zeek

修改配置文件

将bin目录添加在环境变量中:

export PATH=$PATH:/opt/zeek/bin

重置生效

source /etc/profile

1.首先设置检测设备网卡

编辑文件

vi /opt/zeek/etc/node.cfg

设置要监视的正确网卡

我得这里时ens192 所以改为interface=ens192

2.添加监测环境的本地网络

编辑文件networks.cfg

vi /opt/zeek/etc/networks.cfg

原来得注释掉,然后新增ip/24,注意一定要使用子网掩码得方式。

3.在 $PREFIX/etc/zeekctl.cfg 文件中,修改 MailTo 邮件地址成期望的收件人以及修改 LogRotationInterval 成期望的日志归档频率(这一条的修改是可选的)(目前没有需求,使用默认方式)

启动

命令,进入zeek终端

zeekctl

由于是第一次使用,执行ZeekControl配置的初始化安装

[ZeekControl] > install

然后启动Zeek实例:

[ZeekControl] > start

暂停Zeek实例:

[ZeekControl] > stop

重启Zeek实例:

zeekctl deploy

输出

输出位置在/opt/zeek/logs/current下

日志文件

下面列出了 Zeek 生成的日志文件,包括日志文件的简要说明和每个日志类型字段说明的链接。

网络协议

日志文件

描述

字段说明

conn.log

TCP/UDP/ICMP 连接

Conn::Info

dce_rpc.log

分布式计算环境/RPC

DCE_RPC::Info

dhcp.log

DHCP 租用

DHCP::Info

dnp3.log

DNP3 请求和回复

DNP3::Info

dns.log

DNS 活动

DNS::Info

ftp.log

FTP活动

FTP::Info

http.log

HTTP 请求和回复

HTTP::Info

irc.log

IRC 命令和响应

IRC::Info

kerberos.log

Kerberos

KRB::Info

modbus.log

Modbus 命令和响应

Modbus::Info

modbus_register_change.log

跟踪对 Modbus 保持寄存器的更改

Modbus::MemmapInfo

mysql.log

MySQL

MySQL::Info

ntlm.log

NT 局域网管理器 (NTLM)

NTLM::Info

ntp.log

网络时间协议

NTP::Info

radius.log

RADIUS 身份验证尝试

RADIUS::Info

rdp.log

研发计划

RDP::Info

rfb.log

远程帧缓冲区 (RFB)

RFB::Info

sip.log

SIP::Info

smb_cmd.log

SMB 命令

SMB::CmdInfo

smb_files.log

SMB 文件

SMB::FileInfo

smb_mapping.log

SMB 树

SMB::TreeInfo

smtp.log

SMTP 事务

SMTP::Info

snmp.log

SNMP 消息

SNMP::Info

socks.log

SOCKS 代理请求

SOCKS::Info

ssh.log

SSH 连接

SSH::Info

ssl.log

SSL/TLS 握手信息

SSL::Info

syslog.log

系统日志消息

Syslog::Info

tunnel.log

隧道协议事件

Tunnel::Info

更多详见Log Files — Book of Zeek (v4.1.1)

设置json格式日志

设置zeek日志格式为json

目录/opt/zeek/share/zeek/site下local.zeek文件中,追加下面一句话

#Output to JSON

@load policy/tuning/json-logs.zeek

然后启动zeek:zeekctl start 或者重启zeekctl deploy

然后在查询日志

成功转换为json格式

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐