Suricata是一个开源的入侵检测系统(IDS)。Suricata有几个优点。1、它是多线程的,所以你可以运行一个实例,它将平衡每个处理器上的负载处理。2、 Suricata会在流量开始时自动识别最常见的协议,允许规则编写者将规则写入协议,而不是预期的端口。3、Suricata可以识别网络上数以千计的文件类型,并且可以标记要提取的文件,以便将文件写入磁盘并使用描述捕获情况和流程的元数据文件。Suricata的另一个优点是它与Snort规则兼容,因此虽然它是Snort的替代品,但仍然可以使用Snort更新。在pfSense 中,Suricata以插件形式提供。
-
安装Suricata
-
启用规则下载
-
创建列表
-
启用Barnyard2
-
配置日志记录和其他参数
-
启用看门狗
-
检查配置
安装Suricata
进入System -> Package Manager -> Available Packages,搜索suricata:
启用规则下载
在Services -> Suricata -> Global Settings(全局设置)下,进行设置来下载Snort和ET规则:
创建列表
在Services -> Suricata -> Pass List下创建了一个代表home network(家庭网络)的列表:
以下是抑制的一些签名:
启用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插件:
检查配置
可以ssh到pfSense并查看所有设置:
[2.43-RELEASE][root@pf.kar.int]/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][root@pf.kar.int]/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][root@pf.kar.int]/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][root@pf.kar.int]/root: grep watch /etc/crontab
*/1 * * * * root /usr/local/pkg/servicewatchdog_cron.php