家庭网络防御系统搭建-家庭网络防御系统搭建-NDR之zeek安装配置过程详解

news2025/1/22 13:15:22

前面的文章,说明了raspiberry系统和硬件相关内容,参考家庭网络防御系统搭建-树莓派raspberry PI硬件和系统准备。本文将介绍NDR系统中的zeek安装过程。

corelight vs zeek

使用zeek获取网络的transaction log有两种方式,一种是使用corelight提供的安装包,一种是使用zeek源码安装包,如下是两种方式的区别。

corelight 是基于zeek商业化的版本,针对家庭的环境提供了部署在raspiberry的版本,下载链接见这里。使用该版本的优点是corelight打通了日志采集,日志传输,日志解析和日志展示,即针对日志展示平台做了初步的集成,相当于开箱即用型,更多的内容介绍,请参考corelight的官方视频Raspberry Pi Sensors for Home Networks。如果是仅仅学习zeek的相关内容,建议使用coreligt的raspiberry版本,非常方便。但是问题在于需要到corelight以及humio的网站申请账号,比较麻烦。

由于本专栏的内容是将zeek日志发送到securityonion等siem平台,因此采用zeek源码直接在raspiberry上编译和安装。zeek是开源的版本,能够运行在绝大多数的系统上,因此也是包括raspiberry,但是源码安装的最大问题就是编译时间非常长。zeek开源版本的下载地址,这里。

安装配置

zeek安装

由于raspberry的功能一般都是比较简洁,因此在安装zeek这种应用之前需要安装大量的依赖。由于安装的系统可能并不是最新,因此建议先更新raspberry,命令如下:

sudo apt update && upgrade -y

安装zeek所需要的依赖,命令如下:

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

可选的安装依赖也建议安装,命令如下:

  sudo apt-get install python3-git python3-semantic-version libkrb5-dev libjemalloc-dev google-perftools -y
  sudo apt-get install libgoogle-perftools4 perl curl libtcmalloc-minimal4 libgoogle-perftools-dev -y
  sudo apt-get install libtcmalloc-minimal4 -y
  sudo apt-get install libmaxminddb-dev -y 
  sudo apt-get install sendmail sendmail-cf m4 -y

可选的安装依赖有的会在zeek的运行过程中被调用,例如zeek会使用sendmail给管理员的邮箱发送一些日志的统计信息。

编译大概需要5个小时的时间,将zeek安装到/opt/zeek目录,编译安装命令如下:

git clone --recursive https://github.com/zeek/zeek
cd zeek
./configure --prefix=/opt/zeek --build-type=release && make && sudo make install

网卡设置

由于zeek需要解析镜像到指定网卡的流量,因此需要把接收流量的网卡设置成为混杂模式,使其能够接受镜像的流量,如下:

ifconfig eth0 promisc

ifconfig 查看是否处于混杂状态,如下:
在这里插入图片描述
可以看到网卡处在混杂状态,能够接收交换机镜像过来的非本机的流量。

启动zeek

进入到安装目录/opt/zeek/bin,一般建议使用zeekctl来管理zeek实例,参考这里,进入zeekctl,执行help命令,可以看到每个参数的含义,如下:
在这里插入图片描述
进入控制台,可以执行start,restart, deploy等命令即可,启动,重启zeek实例,建议使用deploy命令。

zeek日志介绍

执行deploy命令之后,就会在/opt/zeek/logs/current目录产生日志,每隔一段时间,zeek会将当前的日志按日期进行存储,如下图:
zeek的日志类型如下
上图中出现了几种日志类型,zeek主要的日志类型解释如下:

  • conn.log:TCP和UDP流相关信息,主要是五元组,时间戳,协议,发送和接收数据包数量等信息。
  • ssh.log:除了ssh协议,zeek支持记录的其他协议log日志还包括http,ftp,dns,smtp,dhcp,smb,ntp,rdp等多种常见协议信息。每种协议所记录的信息因各个协议的不同而不同,对于ssh.log中和安全相关的重要信息包括,ssh客户端和服务端的名称以及hassh以及hasshServer等信息。
  • files.log:具备文件传输功能的协议包括http,ftp,smtp,smb等,zeek会记录传输文件的名称,类型以及大小等信息,至于会不会将对应的文件还原到硬盘上,需要进行配置。
  • software.log:该文件是根据流量识别对应的上层应用,是DPI的范畴,对于zeek来说,这块识别的层次目前主要集中在应用层协议和对应的默认应用。
  • capture_loss.log :主要是TCP连接丢包的统计。
  • notice.log :这块主要是zeek脚本插件产生的日志和告警的集合。
  • wired.log:协议解析器出错的日志记录。
  • dpd.log:DPD日志是wired的一种场景,主要记录Dynamic protocol detection解析的一些问题。

这几种日志中和安全关系比较密切的包括conn.log,ssh.log等协议相关的文件,files.log,notice.log等,会在安全分析和威胁狩猎的过程中多次使用到。

zeek其他重要文件

我的zeek安装在/opt/zeek目录下,该目录下还有几个其他重要类型的目录,如下:
在这里插入图片描述
其中bin目录是zeek以及zeekctl控制端相关的可执行程序目录,如下:
在这里插入图片描述
etc目录是zeek相关配置文件目录,刚安装的zeek不需要过多的配置,后续按需进行配置即可。logs目录是各种日志的目录,如上。share目录是zeek所提供的各种zeek脚本插件的目录,在学习zeek的过程中,该目录的文件是最重要的文件,如下:
在这里插入图片描述
后续会涉及到zeek脚本的各种使用,此处先了解即可。

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1576428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从头开发一个RISC-V的操作系统(五)汇编语言编程

文章目录 前提RISC-V汇编语言入门RISC-V汇编指令总览汇编指令操作对象汇编指令编码格式add指令介绍无符号数 练习参考链接 目标:通过这一个系列课程的学习,开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提 这个系列的大部分文章和知识来自于…

python语言程序设计完结

概述: 程序设计是计算机可编程的体现 程序设计,亦称编程,是深度应用计算机的主要手段 程序设计已经成为当今社会需求量最大的职业技能之一 程序设计语言是一种用于交互(交流)的人造语言 程序设计语言,亦称…

论文阅读AI工具链

文献检索 可以利用智谱清言来生成合适的文献检索式,并根据需要不断调整。 谷歌学术 在Google Scholar中进行检索时,您可以使用类似的逻辑来构建您的搜索式,但是语法会有所不同。Google Scholar的搜索框接受普通的文本搜索,但是…

牛客NC93 设计LRU缓存结构【hard 链表,Map Java】

题目 题目链接: https://www.nowcoder.com/practice/5dfded165916435d9defb053c63f1e84 思路 双向链表map最新的数据放头结点,尾节点放最老的数据,没次移除尾巴节点本地考察链表的新增,删除,移动节点参考答案Java im…

启动Unity发布的exe并且添加启动参数

启动Unity发布的exe并且添加启动参数 在启动Unity的时候添加一些启动的参数。 代码解释 在启动的时候获取的启动参数如果没有获取到正确的启动参数那么就退出程序,这个代码仅仅在发布到windows之后才会生效,在编辑器下这个代码虽然会获取到参数但是不能…

python开发poc2,爆破脚本

#本课知识点和目的: ---协议模块使用,Request 爬虫技术,简易多线程技术,编码技术,Bypass 后门技术 下载ftp服务器模拟器 https://lcba.lanzouy.com/iAMePxl378h 随便创建一个账户,然后登录进去把ip改成…

多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法 学习记录01——数学基础

系列文章目录 本科毕设正在做多轴机械臂相关的内容,这里是一个学习机械臂运动学课程的相关记录。 如有任何问题,可发邮件至layraliufoxmail.com问询。 1. 数学基础 文章目录 系列文章目录一、空间位置、姿态描述二、旋转矩阵(Rotation matri…

阿里Qwen1.5-32B开源,评测超Mixtral MoE,挑战SOTA性价比

前言 阿里巴巴近日震撼开源其最新力作——Qwen1.5-32B大语言模型。在当前AI领域,大模型的开发与应用已成为评估技术进步的重要标尺。Qwen1.5-32B的问世,不仅再次证明了阿里在AI技术研发领域的深厚实力,更是在性能与成本之间找到了一个新的平…

Linux云计算之Linux基础3——Linux系统基础2

1、终端 终端(terminal):人和系统交互的必要设备,人机交互最后一个界面(包含独立的输入输出设备) 物理终端(console):直接接入本机器的键盘设备和显示器虚拟终端(tty):通过软件方式虚拟实现的终端。它可以…

计算机网络-文件传输及IP协议——沐雨先生

实验内容 编写请求文件的客户Java应用程序编写响应文件请求的服务器Java应用程序利用Wireshark查看和分析IP包 基本要求 使用Java语言建立请求文件的客户应用程序使用Java语言建立响应文件请求的服务器应用程序了解IP协议的工作过程了解IP包首部各字段及含义 对Java应用程序…

java理论小作业(2)--类

第一题 1.题目: 2.解析: 首先,我们来分析Hello1类的结构和给定代码的执行流程: Hello1类中有两个成员变量,一个静态的a和一个非静态的b。静态变量a属于类本身,而非静态变量b属于类的每一个实例&#xff…

MySQL-5.函数

5.1 统计函数(聚合函数) # 统计数学成绩大于 90 的学生有多少个? SELECT COUNT(*) FROM student WHERE math > 90;# 求一个班级总分平均分 SELECT AVG(math english chinese) FROM student;# 统计一个班级数学总成绩 SELECT SUM(math) F…

Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理

Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理 文章目录 Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理磁盘清理工具 使用“运行”命令访问磁盘清理利用存储感知自动管理空间清理WinSxS文件夹结合手动清理策略 小结删除临时文件总结&…

JWT在单点登录系统中的应用

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许使用JWT在用户和服务器之间传递安全可靠的信息。 来假想一下一个场景。在A用户关注了B用户的时候,系统发邮件给B用户,并且附有一个链接“点此关注A用户”。链接的地址可以…

XML HTTP传输 小结

what’s XML XML 指可扩展标记语言(eXtensible Markup Language)。 XML 被设计用来传输和存储数据,不用于表现和展示数据,HTML 则用来表现数据。 XML 是独立于软件和硬件的信息传输工具。 应该掌握的基础知识 HTMLJavaScript…

Elastic:加速生成式人工智能体验

作者:Matt Riley 搜索驱动的人工智能和开发人员工具专为速度和规模而打造。 在大型语言模型(LLM)和生成式 AI 的每日突破中,开发者站在了这场运动的最前沿,影响着它的方向和可能性。在这篇博客中,我将分享…

【研发管理】产品经理知识体系-数字化战略

导读: 数字化战略对于企业的长期发展具有重要意义。实施数字化战略需要企业从多个方面进行数字化转型和优化,以提高效率和创新能力,并实现长期竞争力和增长。 目录 1、定义 2、数字化战略必要性 3、数字战略框架 4、数字化转型对产品和服务设计的影响…

chrome 浏览器 有自带的自动字幕功能,支持英文,控制您的音乐、视频等媒体内容

chrome 浏览器 有自带的自动字幕功能,支持英文,控制您的音乐、视频等媒体内容

蚁剑修改特征性信息

前言 我们首先得知道蚁剑的流量特征: 编码器和解码器的特征:蚁剑自带的编码器和解码器具有明显的特点,可以通过更改配置文件来达到流量加密的目的1。例如,蚁剑支持多种编码方式,如base64、chr、rot13等,这…

C++中的inline用法

1. 引入inline关键字的原因 在c/c中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。 栈空间就是指放置程序的局部数据(也就是函数内数据&#xf…