成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Linux上安裝Suricata入侵檢測系統?

譯文
安全
由于安全威脅持續不斷,配備入侵檢測系統(IDS)已成為如今數據中心環境下最重要的要求之一。然而,隨著越來越多的服務器將網卡升級到10GB/40GB以太網技術,我們越來越難在大眾化硬件上以線速實施計算密集型入侵檢測。

【51CTO.com快譯】由于安全威脅持續不斷,配備入侵檢測系統(IDS)已成為如今數據中心環境下最重要的要求之一。然而,隨著越來越多的服務器將網卡升級到10GB/40GB以太網技術,我們越來越難在大眾化硬件上以線速實施計算密集型入侵檢測。擴展IDS性能的一個方法就是使用多線程IDS。在這種IDS下,大量耗用CPU資源的深度數據包檢查工作負載并行化處理,分成多個并發任務。這種并行化檢查機制可以充分發揚多核硬件的優勢,輕松擴展IDS的處理能力。這方面的兩個知名的開源工具就是Suricata(http://suricata-ids.org)和Bro(https://www.bro.org)。

我在本教程中將演示如何在Linux服務器上安裝和配置Suricata IDS。

在Linux上安裝Suricata IDS

不妨用源代碼構建Suricata。你先要安裝幾個所需的依賴項,如下所示。

在Debian、Ubuntu或Linux Mint上安裝依賴項

$ 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

在CentOS、Fedora或RHEL上安裝依賴項

$ 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

一旦你安裝了所有必需的程序包,現在可以安裝Suricata了,如下所示。

首先,從http://suricata-ids.org/download/下載最新的Suricata源代碼,編譯代碼。截至本文撰稿時,最新版本是2.0.8。

$ 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

這是配置的示例輸出結果。

Suricata Configuration:
  AF_PACKET support:                       yes
  PF_RING support:                         no
  NFQueue support:                         no
  NFLOG support:                           no
  IPFW support:                            no
  DAG enabled:                             no
  Napatech enabled:                        no
  Unix socket enabled:                     yes
  Detection enabled:                       yes

  libnss support:                          yes
  libnspr support:                         yes
  libjansson support:                      yes
  Prelude support:                         no
  PCRE jit:                                yes
  LUA support:                             no
  libluajit:                               no
  libgeoip:                                no
  Non-bundled htp:                         no
  Old barnyard2 support:                   no
  CUDA enabled:                            no

現在編譯并安裝它。

$ make
$ sudo make install

Suricata源代碼隨帶默認的配置文件。不妨安裝這些默認的配置文件,如下所示。

$ sudo make install-conf

正如你所知,要是沒有IDS規則集,Suricata毫無用處。頗為方便的是,Makefile隨帶IDS規則安裝選項。想安裝IDS規則,運行下面這個命令即可。

$ sudo make install-rules

上述規則安裝命令會從EmergingThreats.net(https://www.bro.org)安裝可用的社區規則集的最新快照,并將它們存儲在/etc/suricata/rules下。

如何在Linux上安裝Suricata入侵檢測系統?

首次配置Suricata IDS

現在就可以配置Suricata了。配置文件位于/etc/suricata/suricata.yaml。使用文本編輯工具打開文件,以便編輯。

$ sudo vi /etc/suricata/suricata.yaml

下面是一些基本的設置,供你開始入門。

“default-log-dir”關鍵字應該指向Suricata日志文件的位置。

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

在“vars”這部分下面,你會找到Suricata使用的幾個重要變量。“HOME_NET”應該指向由Suricata檢查的本地網絡。“!$HOME_NET”(被分配給EXTERNAL_NET)指本地網絡以外的任何網絡。“XXX_PORTS”表明不同服務所使用的一個或多個端口號。請注意:不管使用哪個端口, Suricata都能自動檢測HTTP流量。所以,正確指定HTTP_PORTS變量并不是很重要。

vars:
HOME_NET: "[192.168.122.0/24]"
EXTERNAL_NET: "!$HOME_NET"
HTTP_PORTS: "80"
SHELLCODE_PORTS: "!80"
SSH_PORTS: 22

“host-os-policy”這部分用來防范一些利用操作系統的網絡堆棧的行為(比如TCP重組)來規避檢測的常見攻擊。作為一項應對措施,現代IDS想出了所謂的“基于目標的”檢測,檢查引擎根據流量的目標操作系統,對檢測算法進行微調。因而,如果你知道每個本地主機運行什么操作系統,就可以將該信息提供給Suricata,從而有望提高其檢測速度。這時候用到了“host-os-policy“部分。在該例子中,默認的IDS策略是Linux;如果不知道某個IP地址的操作系統信息,Suricata就會運用基于Linux的檢查策略。如果捕獲到192.168.122.0/28和192.168.122.155的流量,Suricata就會運用基于Windows的檢查策略。

host-os-policy:
# 這些是Windows機器。
windows: [192.168.122.0/28, 192.168.122.155]
bsd: []
bsd-right: []
old-linux: []
# 將Linux作為默認策略。
linux: [0.0.0.0/0]
old-solaris: []
solaris: ["::1"]
hpux10: []
hpux11: []
irix: []
macos: []
vista: []
windows2k3: []

在“threading”這部分下面,你可以為不同的Suricata線程指定CPU親和性(CPU affinity)。默認情況下,CPU親和性被禁用(“set-cpu-affinity: no”),這意味著Suricata線程將被安排在任何可用的CPU核心上。默認情況下,Suricata會為每個CPU核心創建一個“檢測”線程。你可以調整這個行為,只要指定“detect-thread-ratio: N”。這會創建N x M個檢測 線程,其中M是指主機上CPU核心的總數。

threading:
set-cpu-affinity: no
detect-thread-ratio: 1.5

就上述線程設置而言,Suricata會創建1.5 x M個檢測線程,其中M是系統上CPU核心的總數。

想了解關于Suricata配置的更多信息,你可以閱讀默認的配置文件本身,為了便于理解,加有大量注釋。

使用Suricata執行入侵檢測

現在可以試著運行Suricata了。在啟動它之前,還有一個步驟要完成。

如果你使用pcap捕獲模式,強烈建議關閉Suricata偵聽的那個網卡上的任何數據包卸載功能(比如LRO/GRO),因為那些功能可能會干擾數據包實時捕獲。

下面介紹如何關閉網絡接口eth0上的LRO/GRO:

$ sudo ethtool -K eth0 gro off lro off

請注意:視使用的網卡而定,你可能會看到下列警示信息,可以忽視這個信息。它只是意味著你的網卡不支持LRO。

Cannot change large-receive-offload

Suricata支持多種運行模式。運行模式決定了不同的線程如何用于IDS。下面這個命令列出了所有可用的運行模式。

$ sudo /usr/local/bin/suricata --list-runmodes

Suricata使用的默認運行模式是autofp(代表“自動流綁定負載均衡模式”)。在這種模式下,來自每一路流的數據包被分配給單一的檢測線程。流被分配給了未處理數據包數量最少的線程。

最后,不妨啟動Suricata,看看它的實際運行情況。

$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal

如何在Linux上安裝Suricata入侵檢測系統?

在這個例子中,我們監控一個8核系統上的網絡接口eth0。如上所示,Suricata創建了13個數據包處理線程和3個管理線程。數據包處理線程包括1個PCAP數據包捕獲線程和12個檢測線程(相當于8 x 1.5)。這意味著,一個捕獲線程捕獲的數據包經負載均衡處理后,變成了IDS面前的12個檢測線程。管理線程是一個流管理器和兩個計數器/統計相關線程。

下面是Suricata進程的線程視圖(由htop描繪)。

Suricata檢測日志存儲在/var/log/suricata目錄下。

$ tail -f /var/log/suricata/fast.log
04/01/2015-15:47:12.559075 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46997
04/01/2015-15:49:06.565901 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317
04/01/2015-15:49:06.566759 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317

為了易于導入,還有JSON格式的日志:

$ tail -f /var/log/suricata/eve.json

{"timestamp":"2015-04-01T15:49:06.565901","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}

{"timestamp":"2015-04-01T15:49:06.566759","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}

結束語

我在本教程中演示了如何在多核Linux服務器上安裝一個Suricata IDS。不像單線程Snort IDS,Suricata輕松就能得益于采用多線程技術的多核硬件。想最大限度地提高性能、擴大檢測覆蓋范圍,Suricata方面需要進行大量的定制工作。Suricata人員精心維護在線維基(https://redmine.openinfosecfoundation.org/projects/suricata/wiki),如果你想把Suricata部署在自己的環境中,我強烈建議你認真看一下。

你目前在使用Suricata嗎?如果是的話,歡迎交流經驗和心得!

英文:How to install Suricata intrusion detection system on Linux

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:藍雨淚 來源: 51CTO.com
相關推薦

2015-09-22 15:19:07

網絡安全技術周刊

2010-09-08 13:49:36

2015-01-27 10:18:38

入侵檢測系統AIDECentOS

2010-08-25 13:46:28

入侵檢測IDS

2011-11-21 09:57:47

2012-10-10 11:36:02

2009-09-04 10:21:00

2022-09-19 08:45:52

Telnet系統Linux

2019-11-26 09:20:47

LinuxJava

2020-04-21 14:21:31

LinuxPython

2021-10-12 08:43:19

LinuxSambaWindows

2016-10-24 09:40:53

CentOS高級入侵檢測

2021-11-28 06:33:24

Discord消息收發應用 Linux

2012-05-21 10:31:06

LinuxVMware Tool

2017-03-29 16:18:11

LinuxUbuntuRedmine

2021-09-11 15:41:55

UbuntuDropbox云服務

2021-07-12 14:47:16

UbuntuZlib代碼

2021-08-18 11:19:25

FedoraLinuxJava

2013-11-14 10:32:40

Linux系統監測系統溫度

2010-08-26 10:36:44

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产精品人人爽夜夜爽 | 中文字幕一区二区三区在线乱码 | 精品久久久久久亚洲精品 | 久久1区| 久久99久久98精品免观看软件 | 啪啪毛片| japanhd美女动 | 国产精品日韩一区 | 日韩三级| 成年人视频在线免费观看 | 中文字幕一区在线观看视频 | 91av视频在线观看 | 日韩高清国产一区在线 | 免费看欧美一级片 | 99久久亚洲 | 国产精品精品久久久 | 日韩美香港a一级毛片免费 国产综合av | 国产一区欧美一区 | 国产精品久久久久久久久久三级 | 国产精品自产拍在线观看蜜 | 国产区在线看 | 亚洲美女一区 | 国产精品视频一区二区三区四蜜臂 | 青青艹在线视频 | 超碰一区二区 | 国产日韩欧美精品一区二区三区 | 日韩av成人在线观看 | 国产日韩欧美一区二区在线播放 | 天天av综合 | 伊人伊人伊人 | 国产精华一区 | 久久久精品网站 | 黑人巨大精品 | 亚洲视频精品在线 | 久久里面有精品 | 亚洲精品区 | 国产精品美女在线观看 | 亚洲精品在线视频 | 91精品国产乱码久久蜜臀 | 欧美精品一区久久 | 精品国产一区一区二区三亚瑟 |