ELK+Wazuh搭建笔记

Stella981
• 阅读 1412

本文借鉴https://www.cnblogs.com/backlion/p/10394369.html,在此谢谢大佬指明方向!!

本人又总结了wazuh界面上opencat,Vulnerabilities的后台配置情况,以及agent版本升级情况,

系统为:Centos7

建议搭建分布式,本文是单主机架构

系统处于联网状态下

Manager-ip: 10.0.0.50

Agent-ip:    10.0.0.51

Agent2-ip:    10.0.0.52(Windows)

注:elk搭建时。版本问题必须匹配!!!

        wazuh-manager wazuh-api版本必须相同

登录Manager-ip

1.安装Wazuh-Manager

cat > /etc/yum.repos.d/wazuh.repo <<\EOF

[wazuh_repo] gpgcheck=1 gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH enabled=1 name=Wazuh repository baseurl=https://packages.wazuh.com/3.x/yum/ protect=1 EOF

2. yum -y install wazuh-manager

执行安装结束后,可以查看到wazuh-manager的状态(正常情况已经running)

3. systemctl  status  wazuh-manager

4. 安装 Wazuh api

 要运行Wazuh API,需要NodeJS> = 4.6.1,如果您没有安装NodeJS或者您的版本低于4.6.1

curl --silent --location https://rpm.nodesource.com/setup\_8.x | bash -

最后提示

## Run `sudo yum install -y nodejs` to install Node.js 8.x LTS Carbon and npm.
## You may also need development tools to build native addons:
     sudo yum install gcc-c++ make
## To install the Yarn package manager, run:
     curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
     sudo yum install yarn

建议先安装上面所提的软件:(若已安装可略过)

yum install gcc-c++ make

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

yum install yarn

yum install nodejs.x86_64

4.1.验证安装情况

node -v

v8.15.1

4.2  

yum install wazuh-api  -y

查看api状态

systemctl  status  wazuh-api

防止自动升级

sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo

5.安装ELK

安装es

Logstash和Elasticsearch需要Oracle Java JRE 8

cd /opt

curl -Lo jre-8-linux-x64.rpm --header "Cookie: oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jre-8u202-linux-x64.rpm"

rpm -qlp jre-8-linux-x64.rpm > /dev/null 2>&1 && echo "Java package downloaded successfully" || echo "Java package did not download successfully"

Java package downloaded successfully (提示成功)

yum -y install jre-8-linux-x64.rpm

java -version

java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

显示安装成功

然后:

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

cat > /etc/yum.repos.d/elastic.repo << EOF [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF

然后安装elasticsearch

如果没有epel库,自己装,否则yum会提示没有elas*的包

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -ivh epel-release-latest-7.noarch.rpm

你也可以下载安装rpm包,这里不多介绍,但是一定要注意版本对应,最好下最新版

yum install elasticsearch-6.6.1 -y

注:需要修改elasticsearch的存储地址,可修改elasticsearch.yml(程序未启动,启动后想迁移的,自己找吧,不想写了)

ELK+Wazuh搭建笔记

ELK+Wazuh搭建笔记

添加开机自启

systemctl daemon-reload

systemctl enable elasticsearch.service

systemctl start elasticsearch.service

systemctl status elasticsearch.service

验证es:(等5秒,等待服务启动.或者,ss -ntl 查看是否开启9200端口)

curl "http://localhost:9200/?pretty"

{
  "name" : "h4rvJ-8",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "Py3aJ2FRT2ugijffLO39_w",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

为Elasticsearch加载Wazuh模板:(Kibana的Wazuh应用程序需要Elasticsearch模板才能正常工作,因此确保正确插入它非常重要。)

curl https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/elasticsearch/wazuh-elastic6-template-alerts.json | curl -X PUT "http://localhost:9200/\_template/wazuh" -H 'Content-Type: application/json' -d @-

es调优:

编辑/etc/elasticsearch/elasticsearch.yml

取消#bootstrap.memory_lock: true,结果为下图所示

ELK+Wazuh搭建笔记

编辑系统资源的限制

在使用systemd的情况下,需要通过systemd指定系统限制。为此,请创建执行命令的文件夹

mkdir -p /etc/systemd/system/elasticsearch.service.d/

cd  /etc/systemd/system/elasticsearch.service.d/

vim elasticsearch.conf,添加如下后保存

[Service] LimitMEMLOCK=infinity

ELK+Wazuh搭建笔记

vim /etc/sysconfig/elasticsearch,

取消注释#MAX_LOCKED_MEMORY=unlimited,如下图

ELK+Wazuh搭建笔记

设置Elasticsearch堆大小时,有两个规则适用:

(1)使用不超过可用RAM的50%。

(2)使用不超过32 GB。

修改/etc/elasticsearch/jvm.options文件通过JVM标志更改堆大小:

ELK+Wazuh搭建笔记

确保min(Xms)和max(Xmx)大小相同,以防止JVM堆在运行时调整大小

重启elasticsearch

systemctl daemon-reload systemctl restart elasticsearch

启动Elasticsearch后,您可以通过检查mlockall下一个请求的输出中的值来查看是否已成功应用此设置:(mlocakall:ture则没问题,如果该"mlockall"字段的输出为false,则请求失败去日志中找到_无法锁定JVM内存_的行/var/log/elasticsearch/elasticsearch.log

curl "http://localhost:9200/\_nodes?filter\_path=\*\*.mlockall&pretty"(图中,因为我配置了X-PACK,所以需要指定es的账户密码)

ELK+Wazuh搭建笔记

6.安装logstash

Logstash是收集,解析和转发数据到Elasticsearch的工具,用于索引和存储Wazuh服务器生成的所有日志

yum install logstash-6.6.1 下载慢的可在官网下载rpm包

下载Logstash的Wazuh配置文件:本地配置(仅在单主机架构中)

curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/logstash/01-wazuh-local.conf

由于Logstash用户需要读取alerts.json文件,请运行以下命令将其添加到OSSEC组:

usermod -a -G ossec logstash

远程配置(仅在分布式架构中)

curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/logstash/01-wazuh-remote.conf

启用并启动Logstash服务:

systemctl daemon-reload

systemctl enable logstash.service

systemctl start logstash.service

7.安装kibana

yum install kibana-6.6.1

安装wazuh插件(比较慢,估计要5分钟)

sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.8.0\_6.5.4.zip

Kibana默认只监听环回接口(localhost)。要将Kibana设置为侦听所有接口,请编辑该文件以/etc/kibana/kibana.yml取消注释该设置server.host。将值更改为:

server.host: "0.0.0.0"

注:下载https://packages.wazuh.com/wazuhapp/wazuhapp-3.8.0\_6.5.4.zip 到本地/home

sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install  file:///home/wazuhapp-3.8.0_6.5.4.zip 即可

补充:kibana安装目录为/usr/share/kibana

建议,chown kibana.kibana /usr/share/kibana,修改kibana目录所属,

通过API连接Wazuh App

在填用户名、密码、url、端口之前,要先到Wazuh server主机上,使用命令生成非默认的认证来保护Wazuh API。

[root@wazhu-manage opt]# cd /var/ossec/api/configuration/auth/ [root@wazhu-manage auth]# ls htpasswd user [root@wazhu-manage auth]# [root@wazhu-manage auth]# node htpasswd -c user test New password: Re-type new password: Adding password for user wazuh-api. [root@wazhu-manage auth]# ll total 4 lrwxrwxrwx 1 root root 49 Jan 21 10:25 htpasswd -> /var/ossec/api/node_modules/htpasswd/bin/htpasswd -rw-rw---- 1 root root 48 Jan 21 12:38 user [root@wazhu-manage auth]# service wazuh-api restart

这里记住一定要重启wazuh-api,为什么呢,因为,你不重启的话,访问55000端口的时候,提交正确的用户和密码也会一直验证不通过

先浏览器访问55000端口,填写用户密码会出现以下类似,

ELK+Wazuh搭建笔记

ELK+Wazuh搭建笔记

进行API认证添加:点击”Wazuh”按钮

ELK+Wazuh搭建笔记

wazuh界面配置VirusTotal

yum install python-requests

/var/ossec/bin/ossec-control enable integrator

3.注册https://www.virustotal.com api

4.要在manager  ossec.conf文件上添加的示例配置:

<ossec_config> virustotal <api_key>API_KEY</api_key> (api_key必须上virustotal进行用户注册,然后在自己的设置中查看自己的api_key) syscheck <alert_format>json</alert_format> </ossec_config>

5.在agent 安装:

yum install python-requests -y或者pip install requests

在/var/ossec/etc/ossec.conf中填写内容

  virustotal   API\_KEY   syscheck   json

6.systemctl restart wazuh-agent

7.登录manager:

systemctl restart wzuh-manager

wazuh配置Vulnerabilities-漏洞扫描

  1. agent: 编辑/var/ossec/etc/ossec.conf
    <ossec_config>      no      1h      yes      yes      yes      yes      yes      yes      yes    

2.重启agent
systemctl restart wazuh-agent

3.manager:编辑 /var/ossec/etc/ossec.conf
<ossec_config>
   
  no
  1m
  <ignore_time>6h</ignore_time>
  <run_on_start>yes</run_on_start>
 
    no
    <update_interval>1h</update_interval>
 

 
    no
    <update_interval>3m</update_interval>
    <update_from_year>2015</update_from_year>
 

 
    no
    <update_interval>1h</update_interval>
 


</ossec_config>

4.重启manager
systemctl restart manager

5.需要稍等一会,等待创建CVE库,要看是否生效可查看/var/ossec/logs/ossec.log(看到starting Red Hat Enterprise 说明成功)

还有一种情况:出现504 我估计是因为连接redhat网站的问题,估计是公司网络问题,我第一次连接时就报504,没有创建成功CVE库,但是重新启动manager后,就正常了,

ELK+Wazuh搭建笔记

第二次:

重新启动manager后,就正常了,

ELK+Wazuh搭建笔记

13点又出现了,估计还是网络的原因,

ELK+Wazuh搭建笔记

wazuh配置opencap

1.yum install openscap-scanner -y(manager,agent都装)

添加(ossec.conf)

  no
  1800
  1d
  yes

 
    xccdf_org.ssgproject.content_profile_pci-dss
    xccdf_org.ssgproject.content_profile_common
 

2.重启

systemctl restart wazuh-manager

systemctl restart wazuh-agent

3.验证

查看agent若有这条输出,则成功
执行:systemctl status wazuh-agent
Mar 29 13:37:23 localhost.localdomain 
oscap[2714]: Evaluation started. Content: wodles/oscap...s.  

在manager上进行agent版本升级(目前最新版为3.8.2)

agent版本升级分本地和在线两种,

agent升级通过两种方式皆可:

程序:/var/ossec/bin/agent_upgrade

本地升级:(前提有下载wpk包)agent_upgrade -a 002 -d -f /root/upgrade_openscap_debian.wpk -x install.sh

在线升级:agent_upgrade -a 002   (002为agent-id)

api:

本地升级:curl -u test:test -k -X PUT -f '/var/ossec/var/upgrade/wazuh_agent_v3.8.2_linux_x86_64.wpk' "http://127.0.0.1:55000/agents/001/upgrade?pretty"

在线升级: curl -u test:test -k -X PUT "http://127.0.0.1:55000/agents/003/upgrade?pretty"

本地升级需要wpk包,

下载WPK包可从官网下载,

https://documentation.wazuh.com/current/user-manual/agents/remote-upgrading/wpk-list.html?highlight=wpk

es导入导出index

例:将json文件导入指定es指定索引

npm install elasticdump -g;

elasticdump --input=/root/3.json --output=http://localhost:9200/twas-asses-3.x

如果es有运行x-pack,或者需要验证密码时,导出指令可这样编写

这个是我的用户和密码:elastic:WHR3xtyd8etSWNDL75F4,

如果你不记得了,记得查看kibana配置文件,如果kibana没有的话,估计es没密码,用户密码可省略

elasticdump --input=http://elastic:WHR3xtyd8etSWNDL75F4[@localhost](https://my.oschina.net/u/570656):9200/twas-asses-new --output=00.json

kibana备份visualization,dashboard

1.进入kibana界面management,Saved Objects

2.搜索自己要备份的名称,

3.Export,会导出json文件

4.import同Export基本一致

Suricata 规则管理更新:

参考链接:https://zhuanlan.zhihu.com/p/36340468

规则更新,安装

pip install --pre --upgrade suricata-update

更新规则库

suricata-update

 更新规则源

suricata-update update-sources

 列出更新源列表

suricata-update list-sources

 启用ptresearch/attackdetection的规则集

suricata-update enable-source ptresearch/attackdetection

 再次更新我们的规则集

suricata-update

列出我们使用的规则源

suricata-update list-enabled-sources

指定一个文件让suricata-update合并输出会更简单。在suricata.yaml中修改default-rule-path和rule-files。

ELK+Wazuh搭建笔记

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这