安裝suricata

1、安裝依賴項:

centos/redhat:

sudo yum install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel

debian:

sudo apt-get install wget build-essential libpcre3-dev libpcre3-dbg automake autoconf libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libjansson-dev


2、下載 Suricata 源代碼,然後構建它,

$ wget http://www.openinfosecfoundation.org/download/suricata-2.0.8.tar.gz

$ tar -xvf suricata-2.0.8.tar.gz

$ cd suricata-2.0.8

$ ./configure --sysconfdir=/etc --localstatedir=/var、


3、執行編譯和安裝:

$ make

$ sudo make install


或者直接安裝full    make install-full(如果執行此命令,以下兩個命令可忽略執行)


4、安裝默認配置文件:

$ sudo make install-conf


5、安裝規則庫 ----------規則會存儲在/etc/suricata/rules中:

$ sudo make install-rules


6、配置suricata:

配置文件的位置是:/etc/suricata/suricara.yaml,default-log-dir是suricata的log所在。

default-log-dir: /var/log/suricata/

在vars部分下方,你會發現幾項對 Suricata 來說很重要變量。HOME_NET變量需要指定 Suricata 檢查的網絡。被分配給 EXTERNAL_NET 變量的 !$HOME_NET 代表除本地網絡之外的其他網絡。XXX_PORTS變量用來辨別不同服務所用到的端口號。需要注意的是無論使用什麼端口,Suricata 都可以自動檢測 HTTP 流量。所以是不是正確指定端口就顯得沒那麼重要了。

vars:

HOME_NET: "[192.168.122.0/24]"

EXTERNAL_NET: "!$HOME_NET"

HTTP_PORTS: "80"

SHELLCODE_PORTS: "!80"

SSH_PORTS: 22

      3.host-os-policy 部分用於防禦利用操作系統網絡棧的自身行爲來逃避檢測的一些知名***手段(例如:TCP reassembly)。作爲對策,通過針對目標操作系統而對檢測引擎算法進行微調,現代 IDC 提供了“基於目標”的檢測手段。因此,如果你知道某臺主機運行了什麼操作系統的話,將這個信息提供給 Suricata 就可以大幅提高檢測的成功率。這就是 host-os-policy 存在的意義。本例中,默認的 IDC 策略是 Linux 系統。如果針對某個 IP 地址沒有指定操作系統信息,Suricata 會默認應用基於 Linux 系統的檢測策略。如下,當捕獲到對 192.168.122.0/28 和 192.168.122.155通訊時,Suricata 就會應用基於 Windows 系統的檢測策略。

host-os-policy:

 # These are Windows machines.

 windows: [192.168.122.0/28, 192.168.122.155]

 bsd: []

 bsd-right: []

 old-linux: []

 # Make the default policy Linux.

 linux: [0.0.0.0/0]

 old-solaris: []

 solaris: ["::1"]

 hpux10: []

 hpux11: []

 irix: []

 macos: []

 vista: []

 windows2k3: []


4.在 threading 部分下,你可以爲不同的 Suricata 線程指定 CPU 關聯。默認狀態下,CPU 關聯 是被禁止使用的 (set-cpu-affinity: no),這意味着 Suricata 會分配其線程到所有可用的 CPU 核心上。Suricata 會默認爲每一個 CPU 核心創建一個檢測線程。你可以通過指定 detect-thread-ratio: N 來調整此行爲。此處會創建 N*M 個檢測線程,M 代表 CPU 核心總數。

threading:

 set-cpu-affinity: no

 detect-thread-ratio: 1.5

通過以上對線程的設置,Suricata 會創建 1.5*M 個檢測線程,M 是系統的 CPU 核心總數。


5、當你使用 pcap 捕獲模式的時候,強烈建議關閉 Suricata 監聽網卡上的任何的包卸載(例如 LRO/GRO)功能。這些功能會干擾包的實時捕獲行爲。

按照以下方法關閉 eth0 接口的 LRO/GRO 功能。

$ sudo ethtool -K eth0 gro off lro off


6、Suricata 支持許多運行模式。運行模式決定着 IDC 會使用何種線程$ sudo /usr/local/bin/suricata --list-runmodes

Suricata 使用的默認運行模式是 autofp(auto flow pinned load balancing自動流綁定負載均衡 的縮寫)。這個模式下,來自某一個流的包會被分配到一個單獨的檢測線程中。這些流會根據未被處理的包的最低數量來分配相應的線程。


7、運行suricata:sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal


爲了易於導入,還有JSON的格式的日誌。tail -f /var/log/suricata/eve.json

























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章