日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

suricata安装

發布時間:2023/12/29 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 操作系統上安裝依賴包

  • $ 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 規則集的安裝選項。安裝方法如下。

  • $ sudo make install-rules
  • 以上的規則安裝命令會從?EmergingThreats.net?上下載可用的社區規則集快照,并且將其存儲在 /etc/suricata/rules 目錄下。

    首次配置 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 檢查的網絡。被分配給?EXTERNAL_NET?變量的?!$HOME_NET?代表除本地網絡之外的其他網絡。XXX_PORTS變量用來辨別不同服務所用到的端口號。需要注意的是無論使用什么端口,Suricata 都可以自動檢測 HTTP 流量。所以是不是正確指定端口就顯得沒那么重要了。

  • 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 reassembly)。作為對策,通過針對目標操作系統而對檢測引擎算法進行微調,現代 IDC 提供了“基于目標”的檢測手段。因此,如果你知道某臺主機運行了什么操作系統的話,將這個信息提供給 Suricata 就可以大幅提高檢測的成功率。這就是?host-os-policy?存在的意義。本例中,默認的 IDC 策略是 Linux 系統。如果針對某個 IP 地址沒有指定操作系統信息,Suricata 會默認應用基于 Linux 系統的檢測策略。如下,當捕獲到對 192.168.122.0/28 和 192.168.122.155通訊時,Suricata 就會應用基于 Windows 系統的檢測策略。

  • host-os-policy:
  • # These are Windows machines.
  • windows: [192.168.122.0/28, 192.168.122.155]
  • bsd: []
  • bsd-right: []
  • old-linux: []
  • # Make the default policy Linux.
  • linux: [0.0.0.0/0]
  • old-solaris: []
  • solaris: ["::1"]
  • hpux10: []
  • hpux11: []
  • irix: []
  • macos: []
  • vista: []
  • windows2k3: []
  • 在?threading?部分下,你可以為不同的 Suricata 線程指定 CPU 關聯。默認狀態下,CPU 關聯?是被禁止使用的 (set-cpu-affinity: no),這意味著 Suricata 會分配其線程到所有可用的 CPU 核心上。Suricata 會默認為每一個 CPU 核心創建一個檢測線程。你可以通過指定?detect-thread-ratio: N?來調整此行為。此處會創建 N*M 個檢測線程,M 代表 CPU 核心總數。

  • threading:
  • set-cpu-affinity: no
  • detect-thread-ratio: 1.5
  • 通過以上對線程的設置,Suricata 會創建 1.5*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 支持許多運行模式。運行模式決定著 IDC 會使用何種線程。以下命令可以查看所有?可用的運行模式。

  • $ sudo /usr/local/bin/suricata --list-runmodes
  • Suricata 使用的默認運行模式是 autofp(auto flow pinned load balancing自動流綁定負載均衡?的縮寫)。這個模式下,來自某一個流的包會被分配到一個單獨的檢測線程中。這些流會根據未被處理的包的最低數量來分配相應的線程。

    最后,讓我們將 Suricata 運行起來,看看它表現如何。

  • $ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal
  • 本例中,我們在一個8核心系統中監控 eth0 網絡接口。如上所示,Suricata 創建了13個包處理線程和3個管理線程。包處理線程中包括一個 PCAP 包捕獲線程,12個檢測線程(由8*1.5得出)。這表示 IDS 內的1個包捕獲線程均衡負載到12個檢測線程中。管理線程包括1個流管理和2個計數/統計相關線程。

    以下是一個關于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 入侵檢測系統。不同于單線程的?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-release

    2.

    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-devel

    hiredis 和 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? 可以讓數據輸出到redis



    https://linux.cn/article-6985-1.html

    總結

    以上是生活随笔為你收集整理的suricata安装的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。