在pfSense上设置Suricata
Suricata是一个开源的入侵检测系统(IDS)。Suricata有几个优点。1、它是多线程的,所以你可以运行一个实例,它将平衡每个处理器上的负载处理。2、 Suricata会在流量开始时自动识别最常见的协议,允许规则编写者将规则写入协议,而不是预期的端口。3、Suricata可以识别网络上数以千计的文件类型,并且可以标记要提取的文件,以便将文件写入磁盘并使用描述捕获情况和流程的元数据文件。Suricata的另一个优点是它与Snort规则兼容,因此虽然它是Snort的替代品,但仍然可以使用Snort更新。在pfSense 中,Suricata以插件形式提供。
- 安装Suricata
- 启用规则下载
- 创建列表
- 启用Barnyard2
- 配置日志记录和其他参数
- 启用看门狗
- 检查配置
安装Suricata
进入System -> Package Manager -> Available Packages,搜索suricata:
然后点击右侧的安装按钮进行安装。安装完成后,在系统服务菜单下可以找到suricata。
启用规则下载
在Services -> Suricata -> Global Settings(全局设置)下,进行设置来下载Snort和ET规则:
添加规则后,可以在Services -> Suricata -> Updates下手动更新下载规则:
创建列表
在Services -> Suricata -> Pass List下创建了一个代表home network(家庭网络)的列表:
在Services-> Suricata -> Suppress下创建一个抑制列表来抑制某些snort和ET签名:
以下是抑制的一些签名:
在抑制列表的顶部,还可以选择在Services -> Suricata -> Interfaces -> WAN Categories下启用哪些规则类别:
启用Barnyard2
在Services -> Suricata -> Interface -> WAN Barnyard2下,如果已经配置了snorby,我们就可以将事件发送到snorby数据库:
配置日志记录和其他参数
在Servces -> Suricata -> Interface -> WAN settings下,在Interfaces(接口)的General Settings(常规设置)下,我们启用它并设置日志记录:
在下面我启用了之前创建的列表:
在这里没有选中Log Extende Http Info(扩展日志记录)和Enale tracked files Log(跟踪的文件日志),因为我通过系统日志发送日志,而JSON被截断(方便后面进行ELK设置)。
启用看门狗
我们还可以安装Service Watchdog插件:
在Services -> Service Watchdog下,可以监控Suricata服务:
检查配置
可以ssh到pfSense并查看所有设置:
[2.43-RELEASE][[email protected]]/root: top -CPz -o cpu -nlast pid: 69987; load averages: 0.08, 0.06, 0.07 up 6+07:27:23 17:38:0641 processes: 1 running, 40 sleeping Mem: 299M Active, 484M Inact, 260M Wired, 383M Buf, 2870M FreeSwap: 4096M Total, 4096M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME CPU COMMAND35582 root 7 20 0 696M 593M uwait 1 8:21 2.78% suricata35368 root 1 20 0 134M 99440K nanslp 0 14:56 0.00% barnyard215529 root 1 20 0 16676K 2256K bpf 0 4:54 0.00% filterlog22872 root 5 20 0 27300K 2448K accept 1 3:55 0.00% dpinger46428 root 1 52 20 17000K 2564K wait 0 3:53 0.00% sh37472 unbound 2 20 0 63304K 34280K kqread 1 3:06 0.00% unbound
每个接口启动了一个suricata实例:
[2.43-RELEASE][[email protected]]/root: ps auwwx | grep suricataroot 35582 2.9 14.7 713016 607712 - Ss 2:36PM 8:24.77 /usr/local/bin/suricata -i re0 -D -c /usr/local/etc/suricata/suricata_34499_re0/suricata.yaml --pidfile /var/run/suricata_re034499.pidroot 35368 0.0 2.4 137684 99440 - S 2:36PM 14:56.48 /usr/local/bin/barnyard2 -r 34499 -f unified2.alert --pid-path /var/run --nolock-pidfile -c /usr/local/etc/suricata/suricata_34499_re0/barnyard2.conf -d /var/log/suricata/suricata_re034499 -D -qroot 90667 0.0 0.1 18740 2252 0 S+ 5:39PM 0:00.00 grep suricata
可以查看/ var / log / suricata / INSTANCE下的所有日志:
[2.43-RELEASE][[email protected]]/root: ls -1 /var/log/suricata/suricata_re034499/alerts.logalerts.log.2016_0501_1750barnyard2http.logsuricata.logunified2.alert.1462653477
它创建了一个cronjob来监视服务:
[2.43-RELEASE][[email protected]]/root: grep watch /etc/crontab*/1 * * * * root /usr/local/pkg/servicewatchdog_cron.php
原文地址:http://blog.51cto.com/fxn2025/2106650