在pfSense上设置Suricata

在pfSense上设置Suricata

Suricata是一个开源的入侵检测系统(IDS)。Suricata以下优点:

  1. 它是多线程的,所以你可以运行一个实例,它将平衡每个处理器上的负载处理。
  2.  Suricata会在流量开始时自动识别最常见的协议,允许规则编写者将规则写入协议,而不是预期的端口。
  3. Suricata可以识别网络上数以千计的文件类型,并且可以标记要提取的文件,以便将文件写入磁盘并使用描述捕获情况和流程的元数据文件。
  4. Suricata的另一个优点是它与Snort规则兼容,因此虽然它是Snort的替代品,但仍然可以使用Snort更新。在pfSense 中,Suricata以插件形式提供。

下面,我们来配置Suricata。

一、安装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.3-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
[2.3-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/suricata.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.3-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.3-RELEASE][[email protected]]/root: grep watch /etc/crontab
*/1 * * * * root /usr/local/pkg/servicewatchdog_cron.php

原文地址

此条目发表在pfSense分类目录。将固定链接加入收藏夹。