来源:https://dallinwarne.com/uncategorized/getting-started-with-intrusion-detection-system-ids-bro-configure-and-run/
Bro IDS非常擅长分析网络流量,更不用说它非常擅长检测和记录在网络流量中发现的问题。令人惊讶的是,一个开源项目取得了这么大的进展。本文将介绍如何配置Bro并运行它。
让我们回顾一下我们在本指南的第一部分和第二部分中介绍的内容:
安装Bro IDS的先决条件包括:
PF_RING
其他需要包
调整操作系统设置,包括:
防火墙/ IPTables
调整内存/缓冲区设置
Bro被编译
已编译及安装的插件包括:
PF_RING
Setcap (which enables some permissions for non-root users)
本节将介绍在Bro中配置各种设置,然后启动Bro。我们还将探讨如何检查Bro的健康。
通过运行导航到以下目录:
cd /opt/bro/etc
您可以看到有几个.cfg文件。我们要修改的是network.cfg,broctl .cfg和node.cfg。
cfg文件网络告诉bro您希望在您的网络上看到什么子网。这通常包括私有子网(如10.0.0.0/8)和组织的公共IP地址。使用您最喜欢的文本编辑器(如vim)修改文件,以反映组织拥有和使用的子网。
该broctl.cfg文件包含一些设置,如电子邮件通知、将日志文件写入何处等。如果您遵循上一篇文章,您还修改了该文件以运行setcap插件。我建议修改这个文件,让Bro将日志和spool文件写入与操作系统不同的分区。
LogDir=/logparition/logs
SpoolDir=/logpartition/spool
一、Broctl.cfg设置
根据您的设置,大多数设置需要在文本编辑器(如vim)中进行调整。我将指出需要修改的设置,并描述每个节点函数的功能。
管理器在整个集群中运行并保持标签。如果没有单独的日志记录器进程,它还会收集日志并将其写入磁盘。小集群通常不需要日志记录器。
[manager]
type=manager
host=10.0.0.20
代理流程帮助协调工作人员之间的变量和状态等信息。有些人喜欢在与管理器相同的机器上运行代理。其他人喜欢在worker本身上运行一些代理。在大型集群中,代理将在它们自己的机器上运行。您需要根据优化设置调整代理的数量和位置。对于本例,两个代理进程将运行在与管理器相同的机器上。
[proxy-1]
type=proxy
host=10.0.0.20
[proxy-2]
type=proxy
host=10.0.0.20
现在我们来谈谈worker。它们处理它们接收到的流量,因此它们往往是非常结实的盒子。lb_method指定Bro将如何从NIC检索数据包,在本例中是pf_ring.lb_procs设置在机器上运行多少个进程。pin_cpu将指定进程将在哪个cpu上运行。因为在本例中,worker box有24个逻辑核,所以将22个核用于Bro,从而为操作系统和其他进程留下2个核。最后,接口指定要监听哪个网卡的接口Bro。
[worker-1]
type=worker
host=10.0.1.21
lb_method=pf_ring
lb_procs=22
pin_cpus=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
interface=p1p1
保存文件并退出。
二、协议分析
现在您可以选择Bro将使用哪些脚本来分析和记录流量。默认设置非常好,但我也建议打开SMB脚本,以及SMB是臭名昭著的恶意软件攻击载体。打开本地市场。兄弟文件在一个文本编辑器通过运行:
vim /opt/bro/share/bro/site/local.bro
在底部附近,取消注释行
@load policy/protocols/smb
SSL脚本可能更占用cpu。如果稍后看到您的空闲CPU有限,可以考虑禁用这些脚本。
三、运行Bro
现在是你一直在等待的里程碑!是时候开始了,Bro。从Manager处跑出:
/opt/bro/bin/broctl
这将打开broctl CLI。help将提供一个可以运行的命令列表。下面我列出了一些常见的例子:
check。检查以确保您的配置是有效的。
status。检查管理员是否可以与集群中的其他机器通信,以及这些机器上的进程的状态。
deploy。从管理器复制Bro程序和配置文件,并将其安装到其他机器上,然后启动相应的Bro进程。
netstat。给出每个工作进程的数据包统计信息,包括网卡接收到数据包后丢弃的数据包数量。
capstats。给出每个worker的平均吞吐量。我将避免这种情况,因为它会消耗大量CPU并丢失大量数据包。
diag.提供关于系统的基本诊断输出,例如进程为什么不能启动。
Start、stop和restart也是常见的自描述标志。
从broctl提示符中运行
deploy
这将启动SSH连接,在远程主机上安装Bro,并将SSH连接初始化回管理器。如果一切顺利,在运行此命令时,您应该不会在管理器上看到任何错误。如果是这样,请检查“diag”输出,以缩小出错的范围。
从broctl提示符中,您可以运行“status”来查看管理员是否能够与worker进程通信。运行netstats可以告诉您网卡是否丢失了数据包。如果你得到了回复,那么worker就可以和manger沟通。
为了确保一切都在运行,导航到日志目录并通过以下方式列出文件:
cd /logpartition/logs/current
ls -lh
如果您看到诸如conn.log这样的文件,那么您已经成功启动了Bro并正在分析流量。恭喜你!
本指南的第四部分的第三部分到此结束。下一篇文章将帮助您完成一些故障排除步骤和其他调整。