状态: 已弃用
本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.
请参阅: 本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。
介绍
“Bro 最初是由 Vern Paxson 开发的,他现在继续领导该项目,现在他与加州伯克利国际计算机科学研究所的核心研究人员和开发人员团队共同领导该项目; 和位于伊利诺伊州厄巴纳-香槟的国家超级计算应用中心。” ^1 Liam Randall 在 Shmoocon 2013 的演讲中表示:“Bro-IDS 只是第一个用 Bro 网络编程语言编写的出色应用程序。” 换句话说,Bro 本身不是 IDS; 相反,它是一个旨在处理网络流量的脚本平台。
Bro 框架与许多传统的 IDS 不同,因为它被设计为灵活和高效,同时对多个协议的分析器高度分级,无论它们在哪个端口上运行。 Bro-IDS 涵盖了从数据包捕获、流量检测、流记录、数据警报和脚本编写的全部范围。 此外,Bro 网络安全监控框架为专业人士提供全面的日志,以推动分析和洞察网络上的交易数据。 开源时,Broalla 提供商业支持
第一步 - 更新操作系统
一旦您登录到您的 VPS,您应该通过以 root 身份执行以下命令来确保您的操作系统是最新的:
apt-get update && apt-get upgrade
如果在此过程中更新了内核,您应该在继续之前重新启动您的实例。
第二步 - 安装依赖项
接下来,我们需要以 root 身份执行以下命令来安装所需的依赖项。 有关 所需依赖项 的更多信息
apt-get install cmake make gcc g++ flex bison libpcap-dev libgeoip-dev libssl-dev python-dev zlib1g-dev libmagic-dev swig2.0
其中一些软件包可能已经安装; 但是,列出所有要求并没有什么坏处。 apt-get 将获取丢失的并为我们安装它们。
第三步 - 安装 LibGeoIP
Bro 可以利用我们已经在上面安装的 GeoIP 库(libgeoip-dev)。 为此,我们需要在启动 Bro 之前安装 GeoLite 数据库。
安装 GeoIPLite 数据库
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz gunzip GeoLiteCity.dat.gz gunzip GeoLiteCityv6.dat.gz
接下来我们需要通过执行以下命令将数据库文件移动到 /usr/share/GeoIP/
目录:
mv GeoLiteCity.dat /usr/share/GeoIP/GeoLiteCity.dat mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoLiteCityv6.dat
现在我们需要为 GeoLiteCit.dat 和 GeorLiteCityv6.data 文件分别创建到 GeoIPCity.dat 和 GeoIPCityv6.dat 的链接。 如果我们在安装 LibGeoIP 的情况下构建 Bro,但无法链接文件,我们将在 /nsm/bro/logs/current/stderr.log
中看到以下类型的错误
1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCity.dat 1392083947.452043 Fell back to GeoIP Country database 1392083947.452043 Failed to open GeoIP database: /usr/share/GeoIP/GeoIPCityv6.dat
要链接文件,请执行以下命令:
ln -s /usr/share/GeoIP/GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat ln -s /usr/share/GeoIP/GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat
第四步 - 安装 Bro-IDS
现在我们将下载 bro-ids。 为此,我们将从源代码下载并安装该应用程序。 这是通过下载源 tarball 并解压缩并执行 make 安装来完成的。
作为 root,我们可以使用以下命令下载并解压 Bro-IDS 压缩包:
wget http://www.bro.org/downloads/release/bro-2.2.tar.gz tar -xvzf bro-2.2.tar.gz
要构建应用程序,我们使用 cd bro-2.2
命令更改目录,并通过设置 --prefix=
选项设置我们打算安装 Bro-IDS 应用程序的目录。 在下面的示例中,我们计划使用以下命令 ./configure --prefix=/nsm/bro
将 Bro-IDS 安装到 /nsm/bro。 以下是配置、构建和安装 Bro-IDS 应用程序的完整示例:
cd bro-2.2 ./configure --prefix=/nsm/bro make make install
没有错误? 好的。 现在将兄弟添加到您的路径中。
export PATH=/nsm/bro/bin:$PATH
您还可以将 PATH=/opt/bro2/bin:$PATH
添加到主目录中的 ~/.profile
文件中,以使更改永久生效。
配置 Bro-IDS
Bro是一个强大的工具。 对于最基本的安装步骤,我们将按照项目页面上的文档进行。
使用您喜欢的编辑器修改以下 3 个文件:
- $PREFIX/etc/node.cfg -> 配置要监控的网络接口(即 接口=eth0)
- $PREFIX/etc/networks.cfg -> 配置本地网络(即 10.0.0.0/8 私有IP空间)
- $PREFIX/etc/broctl.cfg -> 更改 MailTo 地址和日志轮换
注意:$PREFIX是用来引用Bro-IDS安装根目录的,这个根目录是根据你在./configure --prefix=
上设置的。 从上面的示例中,将 $PREFIX
替换为 /nsm/bro
(即 nsm/bro/etc/node.cfg
)
配置 node.cfg 文件
假设您的系统设置为使用单个接口,默认 node.cfg 应该很好,除了可能更改嗅探接口。 例如,如果 ifconfig
并且您看到类似以下内容:
root@brodemo:/nsm/bro/etc# ifconfig eth0 Link encap:Ethernet HWaddr 04:01:10:15:fa:01 inet addr:162.243.XXX.XXX Bcast:162.243.XXX.XXX Mask:255.255.255.0 inet6 addr: fe80::601:10ff:fe15:fa01/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:998663 errors:0 dropped:0 overruns:0 frame:0 TX packets:27341 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:130635788 (130.6 MB) TX bytes:4043010 (4.0 MB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:2174 errors:0 dropped:0 overruns:0 frame:0 TX packets:2174 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:114442 (114.4 KB) TX bytes:114442 (114.4 KB)
从这个例子中我们看到系统只有一个接口 eth0 并且默认配置应该是好的,只有以下几行没有注释:
root@brodemo:~# cat /nsm/bro/etc/node.cfg # Example BroControl node configuration. # # This example has a standalone node ready to go except for possibly changing # the sniffing interface. # This is a complete standalone configuration. Most likely you will # only need to change the interface. [bro] type=standalone host=localhost interface=eth0 ## Below is an example clustered configuration. If you use this, ## remove the [bro] node above. #[manager] #type=manager #host=host1 # #[proxy-1] #type=proxy #host=host1 # #[worker-1] #type=worker #host=host2 #interface=eth0 # #[worker-2] #type=worker #host=host3 #interface=eth0 # #[worker-3] #type=worker #host=host4 #interface=eth0
配置networks.cfg 文件
假设您的系统配置有如上图所示的一个网络接口,networks.cfg 应该很好,因为该文件用于配置本地/私有网络。
root@brodemo:~# cat /nsm/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 192.168.0.0/16 Private IP space
配置 broctl.cfg 文件
您可以在 broctl.cfg 文件中配置 Bro 和 BroControl 发送的所有电子邮件的收件人地址,并记录轮换间隔以及其他功能。
第五步 - 启动 Bro-IDS
接下来,我们需要启动 broctl shell,您可以在其中执行 bro 命令。 作为 root 类型 broctl
,如果您没有按照上述设置路径,您可以通过其完整路径 /nsm/bro/bin/broctl
使用执行命令
# broctl warning: cannot read '/nsm/bro/spool/broctl.dat' (this is ok on first run) Welcome to BroControl 1.2 Type "help" for help. [BroControl] >
由于这是新安装,所以要运行的第一个命令是运行 install。 然后我们将运行 start 然后状态验证 Bro-IDS 正在运行
[BroControl] > install warning: cannot read '/nsm/bro/spool/broctl.dat' (this is ok on first run) creating policy directories ... done. installing site policies ... done. generating standalone-layout.bro ... done. generating local-networks.bro ... done. generating broctl-config.bro ... done. updating nodes ... done. [BroControl] > start starting bro ... [BroControl] > status Name Type Host Status Pid Peers Started bro standalone localhost running 15837 0 10 Feb 20:57:35 [BroControl] >
现在您的系统上运行了 Bro-IDS。 查看 文档页面 了解更多信息。