suricata安装
suricata --build-info? 命令可以查看插件相關情況
安裝suricata-update工具:pip install --pre --upgrade suricata-update,使新增的規則生效隨著安全威脅的不斷發生,入侵檢測系統(IDS)在如今的數據中心環境中顯得尤為必要。然而,隨著越來越多的服務器將他們的網卡升級到10GB/40GB以太網,對如此線路上的硬件進行計算密集型的入侵檢測越來越困難。其中一種提升入侵檢測系統性能的途徑是多線程入侵檢測系統,它將 CPU 密集型的深度包檢測工作并行的分配給多個并發任務來完成。這樣的并行檢測可以充分利用多核硬件的優勢來輕松提升入侵檢測系統的吞吐量。在這方面有兩個知名的開源項目,分別是?Suricata?和?Bro。
在 Linux 上安裝 Suricata IDS
讓我們從源文件來構建 Suricata,但在此之前,需要按如下所示先安裝幾個依賴包。
在 Debian, Ubuntu 或者 Linux Mint 操作系統上安裝依賴包
在 CentOS, Fedora 或者 RHEL 操作系統上安裝依賴包
一旦將所有依賴包安裝完畢,我們就可以繼續安裝 Suricata 了。
首先從?http://suricata-ids.org/download/?下載 Suricata 源代碼,然后構建它。撰寫這篇文章的時候,其最新版本號為 2.0.8 。
以下是配置信息的樣例。
現在可以編譯、安裝了。
Suricata 源代碼帶有默認的配置文件。按照如下方法安裝這些默認配置文件即可。
正如你所料,如果沒有IDS規則集的話,Suricata 什么用也沒有。幸好 Makefile 為我們提供了 IDS 規則集的安裝選項。安裝方法如下。
以上的規則安裝命令會從?EmergingThreats.net?上下載可用的社區規則集快照,并且將其存儲在 /etc/suricata/rules 目錄下。
首次配置 Suricata IDS
現在到了配置 Suricata 的時候了。配置文件的位置是?/etc/suricata/suricata.yaml。參照以下命令,用文本編輯器打開這個文件。
文件中有一些運行所需的基本配置。
為default-log-dir關鍵字指定 Suricata 日志文件所在的位置。
在vars部分下方,你會發現幾項對 Suricata 來說很重要變量。HOME_NET變量需要指定 Suricata 檢查的網絡。被分配給?EXTERNAL_NET?變量的?!$HOME_NET?代表除本地網絡之外的其他網絡。XXX_PORTS變量用來辨別不同服務所用到的端口號。需要注意的是無論使用什么端口,Suricata 都可以自動檢測 HTTP 流量。所以是不是正確指定端口就顯得沒那么重要了。
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 系統的檢測策略。
在?threading?部分下,你可以為不同的 Suricata 線程指定 CPU 關聯。默認狀態下,CPU 關聯?是被禁止使用的 (set-cpu-affinity: no),這意味著 Suricata 會分配其線程到所有可用的 CPU 核心上。Suricata 會默認為每一個 CPU 核心創建一個檢測線程。你可以通過指定?detect-thread-ratio: N?來調整此行為。此處會創建 N*M 個檢測線程,M 代表 CPU 核心總數。
通過以上對線程的設置,Suricata 會創建 1.5*M 個檢測線程,M 是系統的 CPU 核心總數。
如果你想對 Suricata 配置有更多的了解,可以去翻閱默認配置文件。里邊配有有大量的注釋以供你清晰理解。
使用 Suricata 進行入侵監控
現在是時候讓 Suricata 跑起來了,但在這之前還有一個步驟需要去完成。
當你使用 pcap 捕獲模式的時候,強烈建議關閉 Suricata 監聽網卡上的任何的包卸載(例如 LRO/GRO)功能。這些功能會干擾包的實時捕獲行為。
按照以下方法關閉 eth0 接口的 LRO/GRO 功能。
這里要注意,在使用某些網卡的情況下,你會看到如下警告信息。忽略它們就行了,這些信息只不過告訴你你的網卡不支持 LRO 功能而已。
Suricata 支持許多運行模式。運行模式決定著 IDC 會使用何種線程。以下命令可以查看所有?可用的運行模式。
Suricata 使用的默認運行模式是 autofp(auto flow pinned load balancing自動流綁定負載均衡?的縮寫)。這個模式下,來自某一個流的包會被分配到一個單獨的檢測線程中。這些流會根據未被處理的包的最低數量來分配相應的線程。
最后,讓我們將 Suricata 運行起來,看看它表現如何。
本例中,我們在一個8核心系統中監控 eth0 網絡接口。如上所示,Suricata 創建了13個包處理線程和3個管理線程。包處理線程中包括一個 PCAP 包捕獲線程,12個檢測線程(由8*1.5得出)。這表示 IDS 內的1個包捕獲線程均衡負載到12個檢測線程中。管理線程包括1個流管理和2個計數/統計相關線程。
以下是一個關于Suricata處理的線程截圖(由?htop?繪制)。
Suricata 檢測日志存儲在 /var/log/suricata 目錄下。
日志也可以提供 Json 格式以便導入:
總結
這篇教程中,我為大家演示了如何在一臺多核 Linux 服務器上安裝 Suricata 入侵檢測系統。不同于單線程的?Snort IDS?,Suricata 可以很容易的從多核硬件的多進程特性所帶來的好處中獲益。定制 Suricata 來最大化其效能和檢測范圍是一個很好的主意。Suricata 的粉絲們維護著一個?在線 Wiki,如果你打算將 Suricata 部署到你的環境中,我強烈建議你去那兒取取經。
運行命令:
sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i ens33 --init-errors-fatal suricata -c /usr/local/etc/suricata/suricata.yaml -i ens33 -D --init-errors-fatal在開啟suricata時加入-D參數,以守護進程的方式運行suricata,默認會在/var/run產生pid文件在更新使用的規則后要是用suricata-update工具的suricata-update命令更新配置并重啟suricata才能生效。
suricata官方文檔,CentOS安裝過程:
1.
yum install epel-release2.
sudo yum -y install gcc libpcap-devel pcre-devel libyaml-devel file-devel \zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make \libnetfilter_queue-devel lua-devel hiredis-devel libevent-develhiredis 和 libevent 都是suricata和redis通信所需要的包,在編譯時需要指定相關設置
3.
wget http://www.openinfosecfoundation.org/download/suricata-3.1.tar.gztar -xvzf suricata-3.1.tar.gzcd suricata-3.1./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-nfqueue --enable-lua --enable-hiredis--enable-hiredis 使redis模塊生效,--with-libevent-includes=DIR 指定libevent的路徑
通過yum安裝的這些包,通常在/usr/lib? 或者/usr/lib64下面
4.
makesudo make install or make install-full(將suricata完整安裝到路徑) 修改suricata.yaml? 可以讓數據輸出到redishttps://linux.cn/article-6985-1.html
總結
以上是生活随笔為你收集整理的suricata安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: h2数据库学习----h2数据库基本使用
- 下一篇: 产品经理入门(一)