自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在Linux上安裝Suricata入侵檢測(cè)系統(tǒng)?

譯文
安全
由于安全威脅持續(xù)不斷,配備入侵檢測(cè)系統(tǒng)(IDS)已成為如今數(shù)據(jù)中心環(huán)境下最重要的要求之一。然而,隨著越來(lái)越多的服務(wù)器將網(wǎng)卡升級(jí)到10GB/40GB以太網(wǎng)技術(shù),我們?cè)絹?lái)越難在大眾化硬件上以線(xiàn)速實(shí)施計(jì)算密集型入侵檢測(cè)。

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

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

在Linux上安裝Suricata IDS

不妨用源代碼構(gòu)建Suricata。你先要安裝幾個(gè)所需的依賴(lài)項(xiàng),如下所示。

在Debian、Ubuntu或Linux Mint上安裝依賴(lài)項(xiàng)

$ 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上安裝依賴(lài)項(xiàng)

$ 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

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

首先,從http://suricata-ids.org/download/下載最新的Suricata源代碼,編譯代碼。截至本文撰稿時(shí),最新版本是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

這是配置的示例輸出結(jié)果。

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

現(xiàn)在編譯并安裝它。

$ make
$ sudo make install

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

$ sudo make install-conf

正如你所知,要是沒(méi)有IDS規(guī)則集,Suricata毫無(wú)用處。頗為方便的是,Makefile隨帶IDS規(guī)則安裝選項(xiàng)。想安裝IDS規(guī)則,運(yùn)行下面這個(gè)命令即可。

$ sudo make install-rules

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

如何在Linux上安裝Suricata入侵檢測(cè)系統(tǒng)?

首次配置Suricata IDS

現(xiàn)在就可以配置Suricata了。配置文件位于/etc/suricata/suricata.yaml。使用文本編輯工具打開(kāi)文件,以便編輯。

$ sudo vi /etc/suricata/suricata.yaml

下面是一些基本的設(shè)置,供你開(kāi)始入門(mén)。

“default-log-dir”關(guān)鍵字應(yīng)該指向Suricata日志文件的位置。

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

在“vars”這部分下面,你會(huì)找到Suricata使用的幾個(gè)重要變量。“HOME_NET”應(yīng)該指向由Suricata檢查的本地網(wǎng)絡(luò)。“!$HOME_NET”(被分配給EXTERNAL_NET)指本地網(wǎng)絡(luò)以外的任何網(wǎng)絡(luò)。“XXX_PORTS”表明不同服務(wù)所使用的一個(gè)或多個(gè)端口號(hào)。請(qǐng)注意:不管使用哪個(gè)端口, Suricata都能自動(dòng)檢測(cè)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”這部分用來(lái)防范一些利用操作系統(tǒng)的網(wǎng)絡(luò)堆棧的行為(比如TCP重組)來(lái)規(guī)避檢測(cè)的常見(jiàn)攻擊。作為一項(xiàng)應(yīng)對(duì)措施,現(xiàn)代IDS想出了所謂的“基于目標(biāo)的”檢測(cè),檢查引擎根據(jù)流量的目標(biāo)操作系統(tǒng),對(duì)檢測(cè)算法進(jìn)行微調(diào)。因而,如果你知道每個(gè)本地主機(jī)運(yùn)行什么操作系統(tǒng),就可以將該信息提供給Suricata,從而有望提高其檢測(cè)速度。這時(shí)候用到了“host-os-policy“部分。在該例子中,默認(rèn)的IDS策略是Linux;如果不知道某個(gè)IP地址的操作系統(tǒng)信息,Suricata就會(huì)運(yùn)用基于Linux的檢查策略。如果捕獲到192.168.122.0/28和192.168.122.155的流量,Suricata就會(huì)運(yùn)用基于Windows的檢查策略。

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

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

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

就上述線(xiàn)程設(shè)置而言,Suricata會(huì)創(chuàng)建1.5 x M個(gè)檢測(cè)線(xiàn)程,其中M是系統(tǒng)上CPU核心的總數(shù)。

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

使用Suricata執(zhí)行入侵檢測(cè)

現(xiàn)在可以試著運(yùn)行Suricata了。在啟動(dòng)它之前,還有一個(gè)步驟要完成。

如果你使用pcap捕獲模式,強(qiáng)烈建議關(guān)閉Suricata偵聽(tīng)的那個(gè)網(wǎng)卡上的任何數(shù)據(jù)包卸載功能(比如LRO/GRO),因?yàn)槟切┕δ芸赡軙?huì)干擾數(shù)據(jù)包實(shí)時(shí)捕獲。

下面介紹如何關(guān)閉網(wǎng)絡(luò)接口eth0上的LRO/GRO:

$ sudo ethtool -K eth0 gro off lro off

請(qǐng)注意:視使用的網(wǎng)卡而定,你可能會(huì)看到下列警示信息,可以忽視這個(gè)信息。它只是意味著你的網(wǎng)卡不支持LRO。

Cannot change large-receive-offload

Suricata支持多種運(yùn)行模式。運(yùn)行模式?jīng)Q定了不同的線(xiàn)程如何用于IDS。下面這個(gè)命令列出了所有可用的運(yùn)行模式。

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

Suricata使用的默認(rèn)運(yùn)行模式是autofp(代表“自動(dòng)流綁定負(fù)載均衡模式”)。在這種模式下,來(lái)自每一路流的數(shù)據(jù)包被分配給單一的檢測(cè)線(xiàn)程。流被分配給了未處理數(shù)據(jù)包數(shù)量最少的線(xiàn)程。

最后,不妨啟動(dòng)Suricata,看看它的實(shí)際運(yùn)行情況。

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

如何在Linux上安裝Suricata入侵檢測(cè)系統(tǒng)?

在這個(gè)例子中,我們監(jiān)控一個(gè)8核系統(tǒng)上的網(wǎng)絡(luò)接口eth0。如上所示,Suricata創(chuàng)建了13個(gè)數(shù)據(jù)包處理線(xiàn)程和3個(gè)管理線(xiàn)程。數(shù)據(jù)包處理線(xiàn)程包括1個(gè)PCAP數(shù)據(jù)包捕獲線(xiàn)程和12個(gè)檢測(cè)線(xiàn)程(相當(dāng)于8 x 1.5)。這意味著,一個(gè)捕獲線(xiàn)程捕獲的數(shù)據(jù)包經(jīng)負(fù)載均衡處理后,變成了IDS面前的12個(gè)檢測(cè)線(xiàn)程。管理線(xiàn)程是一個(gè)流管理器和兩個(gè)計(jì)數(shù)器/統(tǒng)計(jì)相關(guān)線(xiàn)程。

下面是Suricata進(jìn)程的線(xiàn)程視圖(由htop描繪)。

Suricata檢測(cè)日志存儲(chǔ)在/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

為了易于導(dǎo)入,還有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}}

結(jié)束語(yǔ)

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

你目前在使用Suricata嗎?如果是的話(huà),歡迎交流經(jīng)驗(yàn)和心得!

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

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 51CTO.com
相關(guān)推薦

2015-09-22 15:19:07

網(wǎng)絡(luò)安全技術(shù)周刊

2010-09-08 13:49:36

2015-01-27 10:18:38

入侵檢測(cè)系統(tǒng)AIDECentOS

2010-08-25 13:46:28

入侵檢測(cè)IDS

2019-11-26 09:20:47

LinuxJava

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系統(tǒng)Linux

2021-11-28 06:33:24

Discord消息收發(fā)應(yīng)用 Linux

2012-05-21 10:31:06

LinuxVMware Tool

2016-10-24 09:40:53

CentOS高級(jí)入侵檢測(cè)

2020-04-21 14:21:31

LinuxPython

2021-10-12 08:43:19

LinuxSambaWindows

2013-03-06 13:27:03

HadoopLinux

2019-08-13 15:39:27

Linux應(yīng)用程序

2019-08-14 09:42:06

LinuxElasticsearKibana

2017-12-11 10:24:29

LinuxGoogleChrome 63

2020-12-28 06:44:45

FedoraLinux RPM文件

2015-11-30 15:05:01

Linux瀏覽器Docker
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)