7.3 調整注意事項
檢查最佳性能的設置缸废。
7.3.1 最大等待數(shù)據(jù)包:<number>
此設置控制引擎可以處理的同時處理數(shù)據(jù)包的數(shù)量纺酸。 一般來說厦画,設置這個值會使線程更忙,但是設置太高會導致線程退化换薄。
建議設置:1000或更高暮刃。 Max是?65000藐唠。
7.3.2 mpm-algo:<ac | hs | ac-bs | ac-ks>
控制模式匹配器算法帆疟。 AC是默認的。 在支持的平臺上宇立,Hyperscan是最好的選擇踪宠。
7.3.3 detect.profile:<low | medium | high | custom>
檢測引擎試圖將分離的簽名分成組,以便只檢查實際上匹配的簽名的分組妈嘹。 正如在大規(guī)則集中這將導致太多的組和內存使用相似的組合并在一起柳琢。 配置文件設置控制這種合并的進行程度。 越高越好润脸,但會導致更高的內存使用量柬脸。
“自定義”設置允許修改組大小:
custom-values:
toclient-groups: 50
toserver-groups: 50
一般來說毙驯,增加會提高性能倒堕,但會導致更高的內存使用量。
7.3.4 detect.sgh-mpm-context:<auto | single | full>
多模式匹配器可以根據(jù)簽名組(全部)或全局(單個)具有上下文爆价。 自動根據(jù)所選的mpm-algo選擇single和full垦巴。 ac和ac-bs使用“single”。 所有其他“full”铭段。 使用AC將其設置為“full”需要大量的內存:32GB +用于合理的規(guī)則集骤宣。
7.4 Hyperscan
7.4.1 介紹
“Hyperscan是一個高性能的多重正則表達式匹配庫⌒蛴蓿”
https://01.org/hyperscan
Suricata可用于執(zhí)行多模式匹配(mpm)憔披。
Justin Viiret和Intel的Jim Xu實施了支持:https://github.com/inliniac/suricata/pull/1965,https://redmine.openinfosecfoundation.org/issues/1704
7.4.2 Compilation
可以通過-with-libhs-includes = /usr/local/ include/hs/ -with-libhs-libraries = /usr/local/lib /,但是默認情況下這不是必須的芬膝。 Suricata應該自動提取Hyperscan的pkg-config文件望门。
當Suricata匯編成功時,您應該擁有:
suricata --build-info|grep Hyperscan
Hyperscan support: yes
7.4.3 使用Hyperscan
要使用hyperscan支持編輯您的suricata.yaml蔗候。 將mpm-algo和spm-algo值更改為“hs”怒允。
或者埂软,使用這個命令行選項:-set mpm-algo = hs -set spm-algo = hs
7.4.4 Ubuntu Hyperscan安裝
要將Suricata與Hyperscan支持一起使用锈遥,請安裝依賴項:
apt-get install cmake ragel
7.4.4.1 libboost標題
Hyperscan需要1.58+的libboost頭文件。
在Ubuntu 15.10或16.04+上勘畔,只需要:
apt-get install libboost-dev
7.4.4.2 Trusty
Trusty有1.57所灸,所以太舊了。 我們可以抓取一個更新的libboost版本炫七,但是我們不會在系統(tǒng)范圍內安裝它爬立。 這只是我們在編譯Hyperscan時關心的頭文件。
sudo apt-get python-dev libbz2-dev
wget http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.gz
tar xvzf boost_1_60_0.tar.gz
cd boost_1_60_0
./bootstrap.sh --prefix =?/ tmp / boost-1.60
./b2 install
7.4.4.3. Hyperscan
我們將安裝 4.2.0.版本
git clone https://github.com/01org/hyperscan
cd hyperscan
mkdir build
cd build
cmake -DBUILD_STATIC_AND_SHARED=1 ../
如果你有自己的libboost 頭問就万哪,則用cmatke替代:
cmake -DBUILD_STATIC_AND_SHARED=1 -DBOOST_ROOT=~/tmp/boost-1.60 ../
最后編譯和安裝
make
sudo make install
編譯需要很長時間侠驯,最后看起來應該是這樣的:
Install the project...
-- Install configuration: "RELWITHDEBINFO"
-- Installing: /usr/local/lib/pkgconfig/libhs.pc
-- Up-to-date: /usr/local/include/hs/hs.h
-- Up-to-date: /usr/local/include/hs/hs_common.h
-- Up-to-date: /usr/local/include/hs/hs_compile.h
-- Up-to-date: /usr/local/include/hs/hs_runtime.h
-- Installing: /usr/local/lib/libhs_runtime.a
-- Installing: /usr/local/lib/libhs_runtime.so.4.2.0
-- Installing: /usr/local/lib/libhs_runtime.so.4.2
-- Installing: /usr/local/lib/libhs_runtime.so
-- Installing: /usr/local/lib/libhs.a
-- Installing: /usr/local/lib/libhs.so.4.2.0
-- Installing: /usr/local/lib/libhs.so.4.2
-- Installing: /usr/local/lib/libhs.so
注意到,你應該天津 /usr/local/lib 到你的 ld 搜索路徑奕巍。
echo "/usr/local/lib" | sudo tee --append /etc/ld.so.conf.d/usrlocal.conf
sudo ldconfig