在pfSense上设置Suricata

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在pfSense上设置Suricata相关的知识,希望对你有一定的参考价值。

在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 -n
last pid: 69987;  load averages:  0.08,  0.06,  0.07  up 6+07:27:23    17:38:06
41 processes:  1 running, 40 sleeping

Mem: 299M Active, 484M Inact, 260M Wired, 383M Buf, 2870M Free
Swap: 4096M Total, 4096M Free



  PID USERNAME  THR PRI NICE   SIZE    RES STATE   C   TIME     CPU COMMAND
35582 root        7  20    0   696M   593M uwait   1   8:21   2.78% suricata
35368 root        1  20    0   134M 99440K nanslp  0  14:56   0.00% barnyard2
15529 root        1  20    0 16676K  2256K bpf     0   4:54   0.00% filterlog
22872 root        5  20    0 27300K  2448K accept  1   3:55   0.00% dpinger
46428 root        1  52   20 17000K  2564K wait    0   3:53   0.00% sh
37472 unbound     2  20    0 63304K 34280K kqread  1   3:06   0.00% unbound

每个接口启动了一个suricata实例:

[2.43-RELEASE][[email protected]]/root: ps auwwx | grep suricata
root    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/suricat
a.yaml --pidfile /var/run/suricata_re034499.pid
root    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 -q
root    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.log
alerts.log.2016_0501_1750
barnyard2
http.log
suricata.log
unified2.alert.1462653477

它创建了一个cronjob来监视服务:

[2.43-RELEASE][[email protected]]/root: grep watch /etc/crontab
*/1 * * * * root /usr/local/pkg/servicewatchdog_cron.php


以上是关于在pfSense上设置Suricata的主要内容,如果未能解决你的问题,请参考以下文章

suricata 输出 - syslog 告警兼容性

suricata -- 为Linux设置IPS/内联

使用pfSense设置一个基本的入网门户

pfSense端口回流的设置

(文档翻译)suricata的ips模式

pfSense阻止对某个网站的访问