当前位置: 首页 > news >正文

Wazuh的安装和基本使用

Wazuh的安装和简介

一 安装

官方网站:Wazuh - Open Source XDR. Open Source SIEM.

Installing the Wazuh indexer step by step - Wazuh indexer

1 添加仓库

rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
echo -e '[wazuh]\ngpgcheck=1\ngpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH\nenabled=1\nname=EL-$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1' | tee /etc/yum.repos.d/wazuh.repo

2 安装wazuh

yum -y install wazuh-manager

二 Wazuh的简介

Wazuh是HIDS

1 Wazuh的启动

#启动服务 后台启动 
systemctl  start wazuh-manager
# 前端启动 进入bin目录
bin/wazuh-control start 
# 观察启动的结果
bin/wazuh-contrl  status
2 目录结构

Wazuh安装成功之后, 存储在 /var/ossec目录下 :

drwxr-x---.  3 root  wazuh   17 7月   9 12:25 active-response    # wazuh主动相应脚本的存储路径
drwxr-x---.  2 root  wazuh  286 7月   9 12:25 agentless         # 不设置代理
drwxr-x---.  4 root  wazuh   42 7月   9 12:25 api
drwxr-x---.  5 root  wazuh   44 7月   9 12:25 backup
drwxr-x---.  2 root  wazuh 4096 7月   9 12:25 bin      # wazuh的执行文件的目录存储
drwxrwx---.  7 wazuh wazuh  242 7月   9 12:26 etc    # 配置文件的目录 核心配置文件(ossec.conf) 解码器 和 规则问你件
drwxr-x---.  5 root  wazuh   48 7月   9 12:26 framework
drwxr-x---.  2 root  wazuh  183 7月   9 12:26 integrations
drwxr-x---.  2 root  wazuh 4096 7月   9 12:26 lib
drwxrwx---.  8 wazuh wazuh  143 7月   9 12:26 logs   #wazuh的日志文件  两种格式  json   、log(文本格式)
drwxr-x---. 18 root  wazuh  231 7月   9 12:26 queue
drwxr-x---.  5 root  wazuh   46 7月   9 12:26 ruleset  #  自定义解码器和规则文件的存储位置
drwxr-x---.  2 wazuh wazuh    6 6月   6 16:32 stats
dr--r-----.  2 root  wazuh   37 7月   9 12:26 templates
drwxrwx--T.  2 root  wazuh   38 7月   9 12:26 tmp
drwxr-x---.  9 root  wazuh  106 7月   9 12:26 var
drwxr-x---.  6 root  wazuh   93 7月   9 12:26 wodles

重点操作的目录 :etclogsruleset

核心配置文件

/var/ossec/etc/ossec.conf

日志文件

/var/ossec/logs/alerts/alerts.json  # 通常json格式的预警不适合用于直接查看,而主要是用于分析和展示
/var/ossec/logs/alerts/alerts.log   # 而.log的预警信息则更多适用于直接查看,而非分析和展示

规则库

/var/ossec/ruleset/rules

解码器

/var/ossec/ruleset/decoders

三 操作系统登录预警

1 演示

(1)SSH登录失败

尝试通过SSH以错误的密码远程登录wazuh所在主机,测试Wazuh是否会预警。利用 tail -f alerts.log 或 tail -f alerts.json 查看日志

通过日志输出可以看到,SSH登录失败触发了ID为:5716的日志,日志级别为5级(在Wazuh中,级别越高,表示越严重)

** Alert 1721389462.562648: - syslog,sshd,authentication_failed,gdpr_IV_35.7.d,gdpr_IV_32.2,gpg13_7.1,hipaa_164.312.b,nist_800_53_AU.14,nist_800_53_AC.7,pci_dss_10.2.4,pci_dss_10.2.5,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,
2024 Jul 19 19:44:22 localhost->/var/log/secure
Rule: 5760 (level 5) -> 'sshd: authentication failed.'
Src IP: 192.168.5.5
Src Port: 57773
User: root
Jul 19 19:43:56 localhost sshd[2869]: Failed password for root from 192.168.5.5 port 57773 ssh2

(2)SSH连续登录失败

当SSH连续登录失败时,便触发了ID为2502,级别为10的新规则。

** Alert 1721391517.3198: - syslog,access_control,authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,gpg13_7.8,gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,nist_800_53_AU.14,nist_800_53_AC.7,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,
2024 Jul 19 20:18:37 localhost->/var/log/secure
Rule: 2502 (level 10) -> 'syslog: User missed the password more than one time'
Src IP: 192.168.5.5
User: root
Jul 19 20:18:35 localhost sshd[3921]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.5.5  user=root

2 规则解读

1 Wazuh的核心配置文件

/var/ossec/etc/ossec.conf

因为我们在登录主机的时候,主机会把所有的登录信息记录在一个日志文件中, /var/log/secure

<ossec_config><localfile><log_format>audit</log_format><location>/var/log/audit/audit.log</location></localfile>
​<localfile><log_format>syslog</log_format><location>/var/ossec/logs/active-responses.log</location></localfile>
​<localfile><log_format>syslog</log_format><location>/var/log/messages</location></localfile><!--主机的系统登录操作日--><localfile><log_format>syslog</log_format><location>/var/log/secure</location></localfile>
​<localfile><log_format>syslog</log_format><location>/var/log/maillog</location></localfile>
</ossec_config>
2 解码器

/var/ossec/ruleset/decoders/0310-ssh_decoders.xml

<!--name="sshd" : 作用有两个 1.给其他的解码器使用 2.可以给规则文件使用-->
<decoder name="sshd"><!--program_name : 匹配日志内容 使用的正则表达式 ^sshd :这个一个正则 以 sshd 开始的 --><program_name>^sshd</program_name>
</decoder>
​
​
<decoder name="sshd-success"><!-- 根据解码器名字 使用父解码器 --><parent>sshd</parent><!--prematch :预匹配  以Accepted 开始--><prematch>^Accepted</prematch><!--正则的匹配 offset="after_prematch" :和前面的与匹配呼应的 他的是有两个after_prematch、before_prematch^ \S+ for (\S+) from (\S+) port (\S+)()代表数据提取password for root from 192.168.10.1 port 1066 ssh2
​--><regex offset="after_prematch">^ \S+ for (\S+) from (\S+) port (\S+)</regex><!--order : 提取的数据 按照正则中的 ()的顺序对应起来--><order>user, srcip, srcport</order><fts>name, user, location</fts>
</decoder>
​
<decoder name="ssh-failed"><!--sshd[8267]: Failed password for illegal user test from 62.67.45.4 port 39141 ssh2-->
​<parent>sshd</parent><prematch>^Failed \S+ </prematch><regex offset="after_prematch">^for (\S+) from (\S+) port (\d+)</regex><order>user, srcip, srcport</order>
</decoder>
3 规则文件

/var/ossec/ruleset/rules/0095-sshd_rules.xml

<!---  Copyright (C) 2015, Wazuh Inc.
-->
​
<!--每一个规则文件 都需要设计好规则ID ,方便以后维护SSH rules ID: 5700 - 5764
-->
​
<!--name : 定义的使用的解码器的名字
-->
<group name="syslog,sshd,">
​<!--id : 定义规则ID编号 level :定义攻击行为的级别noalert : 1  ,不发出警告--><rule id="5700" level="0" noalert="1"><decoded_as>sshd</decoded_as><description>SSHD messages grouped.</description></rule><!--ID : 定义规则ID编号 level :定义攻击行为的级别 8 --><rule id="5701" level="8"><!--if_sid : 5700 在满足5700规则时 5701规则才会起作用--><if_sid>5700</if_sid><match>Bad protocol version identification</match><description>sshd: Possible attack on the ssh server (or version gathering).</description><mitre><id>T1190</id></mitre><group>gdpr_IV_35.7.d,gpg13_4.12,nist_800_53_SI.4,pci_dss_11.4,recon,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</group></rule>
​<rule id="5702" level="5"><if_sid>5700</if_sid><match>^reverse mapping</match><regex>failed - POSSIBLE BREAK</regex><description>sshd: Reverse lookup error (bad ISP or attack).</description><group>gdpr_IV_35.7.d,gpg13_4.12,nist_800_53_SI.4,pci_dss_11.4,tsc_CC6.1,tsc_CC6.8,tsc_CC7.2,tsc_CC7.3,</group></rule></group>

四 mysql登录预警

1 分析mysql日志

远程登录mysql

mysql -uroot -proot -h 192.168.5.17

mysql登录失败的日志

240719 23:58:20     6 Connect   root@192.168.5.26 as anonymous on 6 Connect   Access denied for user 'root'@'192.168.5.26' (using password: YES)

2 配置Wazuh的核心配置文件

  <localfile><log_format>syslog</log_format><location>/opt/lampp/logs/mysql.log</location></localfile>

3 配置解码器

/var/ossec/ruleset/decoders/0150-mysql_decoders.xml

<decoder name="mysql_log"><prematch>\d+ Connect</prematch>
</decoder>

4 配置规则

/var/ossec/ruleset/rules/0295-mysql_rules.xml

  <rule id="50106" level="9"><if_sid>50100</if_sid><match>Access denied for user</match><description>MySQL: authentication failure.</description><group>authentication_failed,</group></rule>

5 mysql爆破预警

<rule id="561001" level="12" frequency="5" timeframe="30"><if_matched_sid>50106</if_matched_sid>]<description>Too Many Fails to Login, Maybe Force Crack.</description><group>attack,</group>
</rule>

五 文件完整性检测

1、配置生效的位置: ossec.conf文件中

<syscheck><disabled>no</disabled>  no 启用,yes禁用<!-- Frequency that syscheck is executed default every 12 hours --><frequency>43200</frequency>  检查频率,默认12小时一次<scan_on_start>yes</scan_on_start>  wazuh服务启动的时候检查一次<!-- Generate alert when new file detected --><alert_new_files>yes</alert_new_files> 创建新文件时激活预警<!-- Don't ignore files that change more than 'frequency' times --><auto_ignore frequency="10" timeframe="3600">no</auto_ignore>  自动忽略的设置<!-- Directories to check  (perform all possible verifications) -->  监控的目录<directories>/etc,/usr/bin,/usr/sbin</directories><directories>/bin,/sbin,/boot</directories><!-- Files/directories to ignore -->  忽略的目录,这些目录下面的文件和目录都不检测<ignore>/etc/mtab</ignore><ignore>/etc/hosts.deny</ignore><ignore>/etc/mail/statistics</ignore><ignore>/etc/random-seed</ignore><ignore>/etc/random.seed</ignore><ignore>/etc/adjtime</ignore><ignore>/etc/httpd/logs</ignore><ignore>/etc/utmpx</ignore><ignore>/etc/wtmpx</ignore><ignore>/etc/cups/certs</ignore><ignore>/etc/dumpdates</ignore><ignore>/etc/svc/volatile</ignore><!-- File types to ignore -->  忽略的类型<ignore type="sregex">.log$|.swp$</ignore>  <!-- Check the file, but never compute the diff --><nodiff>/etc/ssl/private.key</nodiff><skip_nfs>yes</skip_nfs><skip_dev>yes</skip_dev><skip_proc>yes</skip_proc><skip_sys>yes</skip_sys><!-- Nice value for Syscheck process --><process_priority>10</process_priority><!-- Maximum output throughput --><max_eps>50</max_eps><!-- Database synchronization settings --> 数据库同步设置<synchronization><enabled>yes</enabled><interval>5m</interval><max_eps>10</max_eps></synchronization></syscheck>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 日志管理之Logrotate
  • 目标检测-YOLOv2
  • nefu 转专业到计算机相关专业(软件)的个人经历分享
  • STM32点亮第一个LED
  • 【RabbitMQ】工作模式
  • 如何模拟一个小程序项目打包的流程
  • 力扣题解2555
  • STM32F1+HAL库+FreeTOTS学习10——任务相关API函数使用
  • Vue/cli不同环境下打包后js文件没有添加hash值-会导致缓存问题-解决
  • 基于C#+SQLServer 2005实现(CS界面)校园卡消费信息系统
  • Redis:发布(pub)与订阅(sub)实战
  • Python-pptx:如何在幻灯片中轻松插入与填充表格
  • 【线程同步】关于静态扫描时出现的静态字段访问线程同步实际问题小结
  • linux高级学习13
  • 后端面试经典问题汇总
  • 03Go 类型总结
  • 30天自制操作系统-2
  • android 一些 utils
  • Android开源项目规范总结
  • CSS实用技巧干货
  • github从入门到放弃(1)
  • httpie使用详解
  • iOS编译提示和导航提示
  • Java面向对象及其三大特征
  • JS+CSS实现数字滚动
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • vue脚手架vue-cli
  • Wamp集成环境 添加PHP的新版本
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 构建工具 - 收藏集 - 掘金
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 来,膜拜下android roadmap,强大的执行力
  • 入手阿里云新服务器的部署NODE
  • 使用agvtool更改app version/build
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 消息队列系列二(IOT中消息队列的应用)
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #define 用法
  • #Linux(Source Insight安装及工程建立)
  • #QT(一种朴素的计算器实现方法)
  • #VERDI# 关于如何查看FSM状态机的方法
  • (1)无线电失控保护(二)
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4)事件处理——(7)简单事件(Simple events)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (二)pulsar安装在独立的docker中,python测试
  • (二)WCF的Binding模型
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648