1. 程式人生 > >在pfSense上設置Suricata

在pfSense上設置Suricata

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