# Suricata启用Hyperscan支持以及Prelude-siem安装方法

## 0x01 安装 Hyperscan

### 1、Hyperscan 安装要求:

* GCC 版本大于等于 4.8.1,使用 yum 源安装即可

* CMake 版本大于等于 2.8.11,使用 yum 源安装即可

* Ragel 版本大于等于 6.9,使用 yum 源安装即可

* Python 版本为 2.7,使用系统默认的

* Boost 版本大于等于 1.57,Boost 不需要安装,只需要头文件

* Pcap 版本大于等于 0.8,使用 yum 源安装即可

* pcre 版本为 8.41,需要自行编译安装

![hyperscandependency.png](https://lyxw.github.io/images/suricata/hyperscandependency.png)

### 2、安装编译 pcre 所需的依赖包

```

yum install -y wget gcc gcc-c++ epel-release

```

### 3、编译安装 pcre

下载 pcre-8.41,选择合适的参数编译安装 pcre。本次编译选择开启 `utf、pcre16、pcre32、unicode、pcre-jit` 支持,选用 `--libdir=/usr/lib64 --includedir=/usr/include` 参数,其他路径可能需要写入 PATH;若选用默认编译安装路径,在编译 hyperscan 时会提示 PCRE not found,生成的 hyperscan 中不包含 PCRE 预处理功能。

PCRE 预处理功能简介:

![pcrewithhyperscan.png](https://lyxw.github.io/images/suricata/pcrewithhyperscan.png)

```

wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz

tar zxvf pcre-8.41.tar.gz

cd pcre-8.41

./configure --enable-utf --enable-jit --enable-pcre16 --enable-pcre32 --enable-unicode-properties --libdir=/usr/lib64 --includedir=/usr/include

make

make install

```

### 4、安装编译 Hyperscan 所需依赖包

```

yum install -y cmake libpcap-devel ragel-devel sqlite-devel

```

### 5、下载 Hyperscan 源码

下载 Hyperscan 源码,解压后给 hyperscan 文件夹赋予 `755` 权限即可

```

wget https://github.com/intel/hyperscan/archive/v5.0.0.tar.gz

tar zxvf hyperscan-5.0.0.tar.gz

chmod -R 755 hyperscan-5.0.0

```

### 6、下载 boost-1.66 源码

下载 boost-1.66 源码,解压并链接到 `/hyperscan/include/` 目录下

```

wget http://downloads.sourceforge.net/project/boost/boost/1.66.0/boost_1_66_0.tar.gz

tar zxvf boost_1_66_0.tar.gz

ln -s /boost_1_66_0/boost /hyperscan/include/boost

```

### 7、编译安装 Hyperscan

创建 Hyperscan 编译目录,同时构建静态库和共享库,类型选 release,编译安装 Hyperscan

CMake配置说明:

![cmake.png](https://lyxw.github.io/images/suricata/cmake.png)

构建类型说明:

![buildtype.png](https://lyxw.github.io/images/suricata/buildtype.png)

```

mkdir hs_build

cd hs_build

cmake ../hyperscan -DBUILD_STATIC_AND_SHARED=on -DCMAKE_BUILD_TYPE=Release

make

make install

```

## 0x02 安装 Suricata

### 1、安装前配置

复制头文件到 `/usr/include/` 下,否则需要修改 PATH;将 hyperscan 动态库的位置写入配置文件,以便于 suricata 编译时能找到 libhs.so 文件

```

cp /usr/local/include/hs/* /usr/include/

echo "/usr/local/lib64" > /etc/ld.so.conf.d/libhs.conf

ldconfig

```

注意:必须执行 `ldconfig`,否则会提示找不到文件,造成 suricata 无法正常编译。

### 2、安装 suricata 依赖

```

yum install -y pcre-devel libyaml-devel zlib-devel cargo jansson-devel PyYAML

yum install -y libcap-ng-devel file-devel lz4-devel

```

### 3、下载 suricata 源码

```

wget https://www.openinfosecfoundation.org/download/suricata-4.1.0.tar.gz

tar zxvf suricata-4.1.0.tar.gz

cd suricata-4.1.0

```

### 4、开启 Prelude 支持

如果要开启 Prelude support ,需要安装 `libprelude-devel` 和 `gnutls-devel` 以及注释 configure 文件中第 `17936` 行附近的内容,编译安装

![preludesupport.png](https://lyxw.github.io/images/suricata/preludesupport.png)

```

yum install -y libprelude-devel gnutls-devel

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-hyperscan --enable-old-barnyard2 --enable-prelude --enable-pie

make

make install

ldconfig

```

注意:安装完毕后必须执行 `ldconfig`,否则会提示缺少 .so 文件,造成程序无法正常运行。

### 5、创建配置文件&&安装规则

```

make install-conf

make install-rules

```

![installrules.png](https://lyxw.github.io/images/suricata/installrules.png)

### 6、测试 suricata

测试 suricata 默认配置文件中加载的官方规则

```

suricata -T

```

![suricatatest.png](https://lyxw.github.io/images/suricata/suricatatest.png)

## 0x03 安装 Prelude-siem

### 1、安装 prelude 软件包

```

yum install -y epel-release

yum install -y prelude-manager-db-plugin prelude-lml prelude-lml-rules prelude-correlator prewikka libpreludedb-mysql prelude-tools preludedb-tools preludedb-mysql

```

### 2、安装 mysql 数据库

安装 mysql 数据库,设置为开机自启动,初始化数据库。

```

yum install -y mariadb-server

systemctl enable mariadb

systemctl start mariadb

mysql_secure_installation

```

### 3、创建数据库

```

[root@localhost ~]# mysql -u root -p

Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 17

Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE prelude;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE DATABASE prewikka;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE USER 'prelude'@'localhost' IDENTIFIED BY 'prelude';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON prelude.* TO 'prelude'@'localhost';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON prewikka.* TO 'prelude'@'localhost';

Query OK, 0 rows affected (0.00 sec)

```

![mariadb.png](https://lyxw.github.io/images/suricata/mariadb.png)

### 4、导入数据库文件

```

[root@localhost ~]# mysql -u prelude -p prelude < /usr/share/libpreludedb/classic/mysql.sql

Enter password:

[root@localhost ~]#

```

### 5、修改 prewikka 配置文件

修改配置文件,路径为 `/etc/prewikka/prewikka.conf`

```

# Events DB

[idmef_database]

type: mysql

host: localhost

user: prelude

pass: prelude

name: prelude

# Prewikka DB

[database]

type: mysql

host: localhost

user: prelude

pass: prelude

name: prewikka

```

![prewikkaconf.png](https://lyxw.github.io/images/suricata/prewikkaconf.png)

### 6、修改 prelude-manager 配置文件

修改配置文件,路径为 `/etc/prelude-manager/prelude-manager.conf`

```

[db]

type = mysql

host = localhost

name = prelude

user = prelude

pass = prelude

```

![preludemanagerconf.png](https://lyxw.github.io/images/suricata/preludemanagerconf.png)

### 7、启动 Prelude Manager

添加 Prelude Manager 并启动服务

```

[root@localhost ~]# prelude-admin add "prelude-manager" --uid 0 --gid 0

[root@localhost ~]# systemctl start prelude-manager

[root@localhost ~]# systemctl status prelude-manager

● prelude-manager.service - Prelude bus communicator

Loaded: loaded (/usr/lib/systemd/system/prelude-manager.service; disabled; vendor preset: disabled)

Active: active (running) since Thu 2018-12-06 14:16:03 CST; 2s ago

Docs: man:prelude-manager(1)

Main PID: 7314 (prelude-manager)

CGroup: /system.slice/prelude-manager.service

└─7314 /usr/sbin/prelude-manager

Dec 06 14:16:03 localhost.localdomain systemd[1]: Started Prelude bus communicator.

Dec 06 14:16:03 localhost.localdomain systemd[1]: Starting Prelude bus communicator...

[root@localhost ~]#

```

![preludemanager.png](https://lyxw.github.io/images/suricata/preludemanager.png)

## 0x04 注册 agent

### 1、注册 Prelude Correlator

注册 Prelude Correlator 并启动服务,此处需要先安装 `netaddr`,使用的是 python3 版本

```

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python3 get-pip.py

python3 -m pip install netaddr

```

### 2、注册 Prelude Correlator

* 执行 `prelude-admin register "prelude-correlator" "idmef:rw" 127.0.0.1 --uid 0 --gid 0`

* 另一个窗口执行 `prelude-admin registration-server prelude-manager`,获取密码

* 在原窗口输入得到的密码,输入两次

* 在另一个窗口输入 `y`

具体流程如下图所示

![Correlatoregister.png](https://lyxw.github.io/images/suricata/Correlatoregister.png)

启动服务

![preludeCorrelator.png](https://lyxw.github.io/images/suricata/preludeCorrelator.png)

### 3、注册 Prelude lml

注册 Prelude lml 并启动服务

* 执行 `prelude-admin register "prelude-lml" "idmef:w" 127.0.0.1 --uid 0 --gid 0`

* 另一个窗口执行 `prelude-admin registration-server prelude-manager`,获取密码

* 在原窗口输入得到的密码,输入两次

* 在另一个窗口输入 `y`

具体流程如下图所示

![lmlregister.png](https://lyxw.github.io/images/suricata/lmlregister.png)

启动服务

![preludelml.png](https://lyxw.github.io/images/suricata/preludelml.png)

### 4、其他设置

开启防火墙 80 端口,启动 web 服务

```

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload

prewikka-httpd -p 80

```

![firewall.png](https://lyxw.github.io/images/suricata/firewall.png)

### 5、注册 Suricata

注册方式跟上面一样,注意给 idmef 写权限 `prelude-admin register "suricata" "idmef:w" 127.0.0.1 --uid 0 --gid 0`

修改配置文件 `/etc/suricata/suricata.yaml` 第 `398` 行附近的内容

```

# alert output to prelude (http://www.prelude-technologies.com/) only

# available if Suricata has been compiled with --enable-prelude

- alert-prelude:

enabled: yes

profile: suricata

log-packet-content: yes

log-packet-header: yes

```

![alertprelude.png](https://lyxw.github.io/images/suricata/alertprelude.png)

### 6、启动 suricata

```

suricata -c /etc/suricata/suricata.yaml -i `ip a | grep '^2:' | sed 's/^[^:]*: \([^:]*\):.*$/\1/g'`

```

![suricatarun.png](https://lyxw.github.io/images/suricata/suricatarun.png)

### 7、prelude admin 界面

从 web 界面可以看到 suricata 已经注册并处于 Online 状态。

![preludeadmin.png](https://lyxw.github.io/images/suricata/preludeadmin.png)

一键复制

编辑

Web IDE

原始数据

按行查看

历史

suricata mysql_Suricata启用Hyperscan支持以及Prelude-siem安装方法.md相关推荐

  1. durpal是否支持php7,drupal7 的安装方法

    Drupal7.0于今天(2011-01-05)发布,本文以drupal7.0版本为例介绍drupal7的安装.Php环境的搭建,简洁链接的配置等不在本文涉及的内容,假设你已经搭建好了所需的必备环境, ...

  2. nginx增加php支持,Nginx启用php支持

    在apache中启用php很简单,apache有phpmodule模块,集成进去就OK.在nginx中启用php支持稍有些不同. 1.nginx的worker进程直接管理每一个请求到nginx的网络请 ...

  3. 为 CefSharp 应用内置 C++ 运行环境并启用 AnyCPU 支持

    一个 CefSharp 应用程序要想正确运行,有两个必要条件: .NET Framework 4.5.2 VC++ 2015 在部署 CefSharp 应用时经常会遇到因为没有 VC++ 2015 而 ...

  4. Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持

    2019独角兽企业重金招聘Python工程师标准>>> Nginx SSL+tomcat集群 Nginx tomcat no 不用https 最近做了个Web项目, 架构上使用了 N ...

  5. linux上安装osg_如何在 Linux 上安装并启用 Flatpak 支持? | Linux 中国

    Flatpak 提供了一种通用的包封装格式,可以在任何 Linux 发行版中使用.它提供了一个沙箱(隔离的)环境来运行应用程序,不会影响其他应用程序和发行版核心软件包.-- Magesh Maruth ...

  6. linux怎么打开pak文件怎么打开,如何在 Linux 上安装并启用 Flatpak 支持?

    目前,我们都在使用 Linux 发行版的官方软件包管理器来安装所需的软件包. 在 Linux 中,它做得很好,没有任何问题.(它不打折扣地很好的完成了它应该做的工作) 但在一些方面它也有一些限制,所以 ...

  7. openmp配置指南_/openmp (启用 OpenMP 支持)

    /openmp (启用 OpenMP 支持)/openmp (Enable OpenMP Support) 04/15/2019 本文内容 导致编译器处理 #pragma omp OpenMP 支持的 ...

  8. 打印机启用双向支持的意思

    在打印机的属性选项里面,有一项"启用双向支持"的选项,但是具体有什么作用,一直都不明白.今天特意查了一些资料. 启用双向支持,简单来说就是来回打印,打印头从左向右走动时能打印,从右 ...

  9. exfat安装linux系统,在CentOS 7系统上安装exFAT驱动器/启用exFAT支持的方法

    本文介绍在CentOS 7操作系统上安装exFAT驱动器的方法.exFAT(扩展文件分配表)是一种专有的Microsoft文件系统,针对闪存设备(如SD卡和USB闪存驱动器)进行了优化,它旨在取代旧的 ...

最新文章

  1. 激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊
  2. Docker安装mysql容器
  3. 前端如何获取联通积分_怎么利用定制的小程序来获取流量
  4. 小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
  5. 【试验】三个用于日常监控开发库与对应测试库的存储过程
  6. Arduino--超声波
  7. javascript--------this探险
  8. c++制表符_在Linux命令行中将制表符(tab)转换为空格
  9. 一个WIFI热点的脚本思路,顺记shell知识
  10. HNU 12894 Keys dfs
  11. 计算机电气化,计算机在电气化系统的应用
  12. python自带笔记本电脑_Python执行速度:笔记本电脑与台式机
  13. 我为啥不想用Python
  14. java操作文件_java操作FTP,实现文件上传下载删除操作
  15. idea开发springboot的一些小干货
  16. HCIE大师之路(六)——BGP路由综合实验
  17. 问题 A: 三角函数计算(python)
  18. 在 boot 操作过程中的 FIRST_BOOT阶段,安装失败,出现错误
  19. HttpRunner
  20. Problem 1004: 蛤玮打扫教室(区间覆盖端点记录)

热门文章

  1. 实现商品的上架下架功能
  2. 数据仓库的几种建模方法
  3. KEPServerEX6 之 MTConnect 驱动连接CNC-HURCO(赫克)使用方式
  4. 标签制作软件如何批量制作Code128条码标签
  5. 我的0.114基础QML+Felgo(V-Play)学习(3) (近日解决的问题
  6. 脉脉有钱不任性,强势角逐职场社交
  7. 一图掌握项目管理的核心工具WBS工作分解结构,PM必备技能
  8. 在树莓派上,raspbian jessie里安装ROS indigo以及raspbian strech里安装ROS kinetic
  9. 手把手教你Linux下基于ITK开发基础(1)
  10. 很多想看的书籍都是pdf的,应该怎样进行编辑?