suricata mysql_Suricata启用Hyperscan支持以及Prelude-siem安装方法.md
# 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相关推荐
- durpal是否支持php7,drupal7 的安装方法
Drupal7.0于今天(2011-01-05)发布,本文以drupal7.0版本为例介绍drupal7的安装.Php环境的搭建,简洁链接的配置等不在本文涉及的内容,假设你已经搭建好了所需的必备环境, ...
- nginx增加php支持,Nginx启用php支持
在apache中启用php很简单,apache有phpmodule模块,集成进去就OK.在nginx中启用php支持稍有些不同. 1.nginx的worker进程直接管理每一个请求到nginx的网络请 ...
- 为 CefSharp 应用内置 C++ 运行环境并启用 AnyCPU 支持
一个 CefSharp 应用程序要想正确运行,有两个必要条件: .NET Framework 4.5.2 VC++ 2015 在部署 CefSharp 应用时经常会遇到因为没有 VC++ 2015 而 ...
- Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持
2019独角兽企业重金招聘Python工程师标准>>> Nginx SSL+tomcat集群 Nginx tomcat no 不用https 最近做了个Web项目, 架构上使用了 N ...
- linux上安装osg_如何在 Linux 上安装并启用 Flatpak 支持? | Linux 中国
Flatpak 提供了一种通用的包封装格式,可以在任何 Linux 发行版中使用.它提供了一个沙箱(隔离的)环境来运行应用程序,不会影响其他应用程序和发行版核心软件包.-- Magesh Maruth ...
- linux怎么打开pak文件怎么打开,如何在 Linux 上安装并启用 Flatpak 支持?
目前,我们都在使用 Linux 发行版的官方软件包管理器来安装所需的软件包. 在 Linux 中,它做得很好,没有任何问题.(它不打折扣地很好的完成了它应该做的工作) 但在一些方面它也有一些限制,所以 ...
- openmp配置指南_/openmp (启用 OpenMP 支持)
/openmp (启用 OpenMP 支持)/openmp (Enable OpenMP Support) 04/15/2019 本文内容 导致编译器处理 #pragma omp OpenMP 支持的 ...
- 打印机启用双向支持的意思
在打印机的属性选项里面,有一项"启用双向支持"的选项,但是具体有什么作用,一直都不明白.今天特意查了一些资料. 启用双向支持,简单来说就是来回打印,打印头从左向右走动时能打印,从右 ...
- exfat安装linux系统,在CentOS 7系统上安装exFAT驱动器/启用exFAT支持的方法
本文介绍在CentOS 7操作系统上安装exFAT驱动器的方法.exFAT(扩展文件分配表)是一种专有的Microsoft文件系统,针对闪存设备(如SD卡和USB闪存驱动器)进行了优化,它旨在取代旧的 ...
最新文章
- 激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊
- Docker安装mysql容器
- 前端如何获取联通积分_怎么利用定制的小程序来获取流量
- 小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
- 【试验】三个用于日常监控开发库与对应测试库的存储过程
- Arduino--超声波
- javascript--------this探险
- c++制表符_在Linux命令行中将制表符(tab)转换为空格
- 一个WIFI热点的脚本思路,顺记shell知识
- HNU 12894 Keys dfs
- 计算机电气化,计算机在电气化系统的应用
- python自带笔记本电脑_Python执行速度:笔记本电脑与台式机
- 我为啥不想用Python
- java操作文件_java操作FTP,实现文件上传下载删除操作
- idea开发springboot的一些小干货
- HCIE大师之路(六)——BGP路由综合实验
- 问题 A: 三角函数计算(python)
- 在 boot 操作过程中的 FIRST_BOOT阶段,安装失败,出现错误
- HttpRunner
- Problem 1004: 蛤玮打扫教室(区间覆盖端点记录)
热门文章
- 实现商品的上架下架功能
- 数据仓库的几种建模方法
- KEPServerEX6 之 MTConnect 驱动连接CNC-HURCO(赫克)使用方式
- 标签制作软件如何批量制作Code128条码标签
- 我的0.114基础QML+Felgo(V-Play)学习(3) (近日解决的问题
- 脉脉有钱不任性,强势角逐职场社交
- 一图掌握项目管理的核心工具WBS工作分解结构,PM必备技能
- 在树莓派上,raspbian jessie里安装ROS indigo以及raspbian strech里安装ROS kinetic
- 手把手教你Linux下基于ITK开发基础(1)
- 很多想看的书籍都是pdf的,应该怎样进行编辑?