Snort 3 是下一代Snort IPS(入侵防禦系統)。該文件將向您展示 Snort++ 所提供的功能,並引導您從下載到演示的步驟。 如果您不熟悉 Snort,您應該先查看 Snort 文件。我們將討論以下主題:
概述
依賴關係
下載
建構 Snort
運行鼻息
文件
尖叫聲
此版本的 Snort++ 包含新功能以及所有 Snort 2.X 功能以及 Snort 基本版本的錯誤修復,但以下所示除外:
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
以下是 Snort++ 的一些主要功能:
支援多個資料包處理線程
使用共用配置和屬性表
使用簡單的、可編寫腳本的配置
使關鍵組件可插拔
無連接埠配置的自動偵測服務
支援規則中的黏性緩衝區
自動產生參考文檔
提供更好的跨平台支持
促進組件測試
使用共享網路映射
路線圖上的其他功能包括:
支援資料包處理的管線
支援硬體卸載和資料平面集成
支援代理模式
Windows 支援
如果您已經建立了 Snort,那麼您可能擁有所需的一切。 如果沒有,請取得最新的:
cmake 從原始碼構建
來自 https://github.com/snort3/libdaq 的資料包 IO
來自 https://github.com/dugsong/libdnet.git 的 dnet 用於網路實用功能
flex >= 2.6.0 來自 https://github.com/westes/flex 用於 JavaScript 語法解析器
g++ >= 7 或其他 C++17 編譯器
hwloc 來自 https://www.open-mpi.org/projects/hwloc/ 用於 CPU 關聯性管理
來自 http://luajit.org 的 LuaJIT 用於配置和腳本編寫
來自 https://www.openssl.org/source/ 的 OpenSSL,用於 SHA 和 MD5 檔案簽章、protected_content 規則選項和 SSL 服務偵測
來自 http://www.tcpdump.org 的 pcap 用於 tcpdump 樣式日誌記錄
來自 http://www.pcre.org 的 PCRE 用於正規表達式模式匹配
pkgconfig 來自 https://www.freedesktop.org/wiki/Software/pkg-config/ 來尋找建置依賴項
zlib來自http://www.zlib.net進行解壓縮
附加包提供可選功能。 查看手冊以了解更多資訊。
snort.org 的下載部分提供了原始碼 tarball:
snort-3.0.0-a3.tar.gz
您也可以透過以下方式取得程式碼:
git clone https://github.com/snort3/snort3.git
cmake 有單獨的附加包,它們提供附加功能並示範如何建立插件。 extras 的來源位於 snort3_extra.git 儲存庫。
請依照下列步驟操作:
設定來源目錄:
如果您使用的是 github 克隆:
cd 鼻息3/
否則,請執行以下操作:
tar zxf snort-tarballcd snort-3.0.0*
設定安裝路徑:
匯出 my_path=/path/to/snorty
編譯並安裝:
若要使用 cmake 和 make 進行構建,請執行 configure_cmake.sh。 它將自動建立並填入一個名為“build”的新子目錄。
./configure_cmake.sh --prefix=$my_pathcd 構建 make -j $(nproc) 安裝
筆記:
如果你可以執行 src/snort -V 則表示建置成功。
如果您熟悉cmake,可以執行cmake/ccmake而不是configure_cmake.sh。
cmake --help 將列出任何可用的生成器,例如 Xcode。 請隨意使用其中之一,但我們將單獨提供相關協助。
以下是一些範例。如果您使用 Talos 規則和/或配置,您應該先在 snort.lua 和 snort_defaults.lua 頂部設定任何所需的變數。
Snort++ 透過命令列提供了大量幫助,包括:
$my_path/bin/snort --help$my_path/bin/snort --help-module 抑制$my_path/bin/snort --help-config | grep 線程
檢查並轉儲 pcap。 在下面,將 a.pcap 替換為您最喜歡的:
$my_path/bin/snort -r a.pcap$my_path/bin/snort -L dump -d -e -q -r a.pcap
驗證配置,有或沒有規則:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules
運行 IDS 模式。 在下面,將 pcaps/ 替換為包含一個或多個 *.pcap 檔案的目錄的路徑:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -A 警報測試 -n 100000
讓我們抑制 1:2123。 我們可以編輯conf或這樣做:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -Aalert_test -n 100000 --lua“抑制={{gid=1,sid=2123}}”
全力研究具有多個資料包執行緒的目錄:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -Aalert_fast --max-packet-threads 8
doc/usage.txt 中給出了其他範例。
看一下手冊,其中部分內容是由程式碼產生的,因此它保持最新:
$my_path/share/doc/snort/snort_manual.pdf$my_path/share/doc/snort/snort_manual.html$my_path/share/doc/snort/snort_manual/index.html
它還沒有太多關於如何和為什麼的信息,但它確實具有所有當前可用的配置等。
您必須使用逗號分隔的內容子選項,如下所示: content:"foo", nocase;
緩衝區選擇器必須出現在內容之前,並且在更改之前保持有效
PCRE 緩衝區選擇器已刪除
查看手冊以了解有關 Snort++ 與 Snort 的更多信息
檢查手冊參考部分以了解參數是如何定義的等。
它還涵蓋了此處未演示的新功能:
snort2lua,一個將Snort 2.X conf和規則轉換為新形式的工具
一個新的 HTTP 檢查器
綁定器,用於將配置映射到流量
與連接埠無關的設定精靈
改進的規則解析 - 任意空格、C 風格註釋、#begin/#end 註釋
本地和遠端命令列 shell
o")~
我們希望您和我們一樣對 Snort++ 感到興奮。 讓我們知道您對 snort 使用者清單的看法。 同時,我們將繼續努力。