文档章节

在 Ubuntu 16.04 上安装 Bro 网络分析器

问题终结者
 问题终结者
发布于 2017/08/20 00:25
字数 1190
阅读 30
收藏 0
导读 Bro 是一个开源的网络分析框架,侧重于网络安全监控。这是一项长达 15 年的研究成果,被各大学、研究实验室、超级计算机中心和许多开放科学界广泛使用。它主要由伯克利国际计算机科学研究所和伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心开发。

Bro 的功能包括:

  • Bro 的脚本语言支持针对站点定制监控策略
  • 针对高性能网络
  • 分析器支持许多协议,可以在应用层面实现高级语义分析
  • 它保留了其所监控的网络的丰富的应用层统计信息
  • Bro 能够与其他应用程序接口实时地交换信息
  • 它的日志全面地记录了一切信息,并提供网络活动的高级存档

本教程将介绍如何从源代码构建,并在 Ubuntu 16.04 服务器上安装 Bro。

准备工作

Bro 有许多依赖文件:

  • Libpcap
  • OpenSSL 库
  • BIND8 库
  • Libz
  • Bash (BroControl 所需要)
  • Python 2.6+ (BroControl 所需要)

从源代码构建还需要:

  • CMake 2.8+
  • Make
  • GCC 4.8+ or Clang 3.3+
  • SWIG
  • GNU Bison
  • Flex
  • Libpcap headers
  • OpenSSL headers
  • zlib headers

起步

首先,通过执行以下命令来安装所有必需的依赖项:

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

安装定位 IP 地理位置的 GeoIP 数据库

Bro 使用 GeoIP 的定位地理位置。安装 IPv4 和 IPv6 版本:

$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

$wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz

解压这两个压缩包:

$ gzip -d GeoLiteCity.dat.gz

$ gzip -d GeoLiteCityv6.dat.gz

将解压后的文件移动到 /usr/share/GeoIP 目录下:

# mvGeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

# mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat

现在,可以从源代码构建 Bro 了。

构建 Bro

最新的 Bro 开发版本可以通过 git 仓库获得。

执行以下命令:

$ git clone --recursive git://git.bro.org/bro

转到克隆下来的目录,然后使用以下命令就可以简单地构建 Bro:

$ cd bro $ ./configure $ make

make 命令需要一些时间来构建一切。确切的时间取决于服务器的性能。

可以使用一些参数来执行 configure 脚本,以指定要构建的依赖关系,特别是 --with-* 选项。

安装 Bro

在克隆的 bro 目录中执行:

# make install 默认安装路径为 /usr/local/bro。

配置 Bro

Bro 的配置文件位于 /usr/local/bro/etc 目录下。 这里有三个文件:

node.cfg,用于配置要监视的单个节点(或多个节点)。

broctl.cfg,BroControl 的配置文件。

networks.cgf,包含一个使用 CIDR 标记法表示的网络列表。

配置邮件设置

打开 broctl.cfg 配置文件:

# $EDITOR /usr/local/bro/etc/broctl.cfg

查看 Mail Options 选项,并编辑 MailTo 行如下:

# Recipient address for emails sent out by Bro and BroControl

MailTo = admin@example.com

保存并关闭。还有许多其他选项,但在大多数情况下,默认值就足够好了。

选择要监视的节点

开箱即用,Bro 被配置为以独立模式运行。在本教程中,我们就是做一个独立的安装,所以没有必要改变。但是,也请查看 node.cfg 配置文件:

# $EDITOR /usr/local/bro/etc/node.cfg

在 [bro] 部分,你应该看到这样的东西:

[bro]

type=standalone

host=localhost

interface=eth0

请确保 inferface 与 Ubuntu 16.04 服务器的公网接口相匹配。

保存并退出。

配置监视节点的网络

最后一个要编辑的文件是 network.cfg。使用文本编辑器打开它:

# $EDITOR /usr/local/bro/etc/networks.cfg

默认情况下,你应该看到以下内容:

# List of local networks in CIDR notation, optionally followed by a

# descriptive tag.

# For example,

"10.0.0.0/8" or "fe80::/64" are valid prefixes. 10.0.0.0/8 Private IP space

172.16.0.0/12 Private IP space

192.168.0.0/16 Private IP space

删除这三个条目(这只是如何使用此文件的示例),并输入服务器的公用和专用 IP 空间,格式如下:

X.X.X.X/X Public IP space

X.X.X.X/X Private IP space

保存并退出。

使用 BroControl 管理 Bro 的安装

管理 Bro 需要使用 BroControl,它支持交互式 shell 和命令行工具两种形式。启动该 shell:

# /usr/local/bro/bin/broctl

要想使用命令行工具,只需将参数传递给上一个命令,例如:

# /usr/local/bro/bin/broctl status

这将通过显示以下的输出来检查 Bro 的状态:

Name Type Host Status Pid Started

bro standalone localhost running 6807 20 Jul 12:30:50

结论

这是一篇 Bro 的安装教程。我们使用基于源代码的安装,因为它是获得可用的最新版本的最有效的方法,但是该网络分析框架也可以下载预构建的二进制格式文件。

原文来自: http://www.linuxprobe.com/ubuntu-install-on-bro.html

本文转载自:

共有 人打赏支持
问题终结者
粉丝 18
博文 951
码字总数 149097
作品 0
运维
私信 提问
如何使用Bro IDS和Intel Critical Stack分析网络活动

越来越多的网络攻击迫使企业将其网络活动作为安全策略的一部分加以控制。 众多供应商已经设计了多种入侵检测系统(IDS)来帮助企业保护网络基础设施。但是,由于商业IDS通常需要花费数千美元...

技术小能手
05/22
0
0
如何通过Kibana,Wazuh和Bro IDS提高中小企业的威胁检测能力?

前言 近来,我们一直都在通过一些开源免费的工具,来帮助中小企业提升其网络威胁检测能力。在本文中,我们将手把手的教大家通过Kibana,Wazuh和Bro IDS来提高自身企业的威胁检测能力。 什么是...

刀剑如梦
10/22
0
0
BlackHat 兵器谱新添 IOT 安全武器|安全专家带你看干货

本文由雷锋网专栏作者百度安全兜哥撰写。虽然低调,干货却不少。 在刚结束不久的 BlackHat 会议上,Tripwire 的首席安全研究员特拉维斯·史密斯(Travis Smith)发布了一款开源的网络监控软件...

兜哥带你学安全
2017/07/29
0
0
如何安装并使用 Wireshark

Wireshark 是自由开源的、跨平台的基于 GUI 的网络数据包分析器,可用于 Linux、Windows、MacOS、Solaris 等。它可以实时捕获网络数据包,并以人性化的格式呈现。Wireshark 允许我们监控网络...

作者: Pradeep Kumar
10/07
0
0
怎样在 Ubuntu 下安装 Moodle(“魔灯”)

这是一篇关于如何在 Ubuntu 16.04 上安装 Moodle (“魔灯”)的逐步指南。Moodle (模块化面向对象动态学习环境Modular-object-oriented dynamic learning environment的缩写)是一种自由而...

作者: Rosehosting
01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS官方钱包keosd

EOS官方钱包的名称是keosd,它负责管理你的私钥,并且帮你进行交易的签名。 不过不幸的是,keosd钱包对普通用户并不友好,它是一个命令行程序,目前还没有像以太坊的mist那样的图形化界面,而...

汇智网教程
今天
28
0
ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
今天
35
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
40
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
53
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部