一、什么是wazuh
Wazuh是一个开源的、用于安全事件检测、日志管理和合规性的安全监控解决方案。它提供了实时分析、告警和完整的日志收集,帮助组织检测和应对网络攻击、恶意行为和安全事件。Wazuh可以集成到现有的安全设备和日志源,提供强大的安全分析和可视化工具,有助于组织加强网络安全防御和合规性管理。
二、Wazuh常规安装
wazuh有很多种安装方式,详细请查看官方文档
(一)、安装wazuh索引器
1.证书创建
(1)下载脚本和配置文件。这将创建加密 Wazuh 中央组件之间通信的证书。wazuh-certs-tool.sh
config.yml
curl -sO https://packages.wazuh.com/4.3/wazuh-install.sh curl -sO https://packages.wazuh.com/4.5/config.yml
这里可以看到
(2)编辑配置config.yml
[root@zxw-c ~]# cat ./config.yml
nodes:
# Wazuh indexer nodes
indexer:
- name: node-1
ip: 192.168.32.128
#- name: node-2
# ip: <indexer-node-ip>
#- name: node-3
# ip: <indexer-node-ip># Wazuh server nodes
# If there is more than one Wazuh server
# node, each one must have a node_type
server:
- name: wazuh-1
ip: 192.168.32.128
# node_type: master
#- name: wazuh-2
# ip: <wazuh-manager-ip>
# node_type: worker
#- name: wazuh-3
# ip: <wazuh-manager-ip>
# node_type: worker# Wazuh dashboard nodes
dashboard:
- name: dashboard
ip: 192.168.32.128
(3)运行以创建证书
bash ./wazuh-certs-tool.sh -A
(4)压缩所有必要的文件。
tar -cvf ./wazuh-certificates.tar -C ./wazuh-certificates/ . rm -rf ./wazuh-certificates
2.节点安装
(1)安装包依赖项
yum install coreutils
(2)安装 Wazuh 索引器
yum -y install wazuh-indexer
(3)配置 Wazuh 索引器
编辑配置文件并替换以下值:
/etc/wazuh-indexer/opensearch.yml
network.host
:为 HTTP 和传输流量设置此节点的地址。节点将绑定到此地址并将其用作其发布地址。接受 IP 地址或主机名。使用 中设置的相同节点地址创建 SSL 证书。
config.yml
node.name
:文件中定义的 Wazuh 索引器节点的名称。例如。config.yml
node-1
cluster.initial_master_nodes
:符合主节点条件的节点的名称列表。这些名称在文件中定义。根据您的定义取消注释 and 行、更改名称或添加更多行。config.yml
node-2
node-3
config.yml
cluster.initial_master_nodes: - "node-1" - "node-2" - "node-3"
discovery.seed_hosts:
符合主节点条件的地址列表。每个元素可以是 IP 地址或主机名。如果要将 Wazuh 索引器配置为单个节点,则可以保留此设置注释。对于多节点配置,请取消注释此设置并设置每个符合主节点条件的 IP 地址。discovery.seed_hosts: - "10.0.0.1" - "10.0.0.2" - "10.0.0.3"
plugins.security.nodes_dn
:所有 Wazuh 索引器群集节点的证书的可分辨名称列表。取消注释 和 的行,并根据您的设置和定义更改公用名 (CN) 和值。node-2
node-3
config.yml
plugins.security.nodes_dn: - "CN=node-1,OU=Wazuh,O=Wazuh,L=California,C=US" - "CN=node-2,OU=Wazuh,O=Wazuh,L=California,C=US" - "CN=node-3,OU=Wazuh,O=Wazuh,L=California,C=US"
(二)、Wazuh服务器节点安装
(1)添加 Wazuh 存储库
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 管理器
①安装 Wazuh 管理器包。
yum -y install wazuh-manager
②启用并启动 Wazuh 管理器服务。
systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager
③运行以下命令以验证 Wazuh 管理器状态。
systemctl status wazuh-manager
(3)安装安装文件节拍包
yum -y install filebeat
下载预配置的文件节拍配置文件。
curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.5/tpl/wazuh/filebeat/filebeat.yml
配置文件节拍
-
编辑配置文件并替换以下值:
/etc/filebeat/filebeat.yml
-
hosts
:要连接到的 Wazuh 索引器节点的列表。您可以使用 IP 地址或主机名。默认情况下,主机设置为 本地主机 。相应地将其替换为 Wazuh 索引器地址。hosts: ["127.0.0.1:9200"]
如果有多个 Wazuh 索引器节点,则可以使用逗号分隔地址。例如
hosts: ["10.0.0.1:9200", "10.0.0.2:9200", "10.0.0.3:9200"]
# Wazuh - Filebeat configuration file output.elasticsearch: hosts: ["10.0.0.1:9200"] protocol: https username: ${username} password: ${password}
-
创建 Filebeat 密钥库以安全地存储认证凭证。
filebeat keystore create
将缺省用户名和密码 : 添加到密钥库。admin
admin
echo admin | filebeat keystore add username --stdin --force
echo admin | filebeat keystore add password --stdin --force
下载 Wazuh 索引器的警报模板。
curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.5/extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json
为 Filebeat 安装 Wazuh 模块。
curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module
(三)wazuh仪表板安装
(1)安装包依赖项
yum install libcap
(2)安装 Wazuh 仪表板
①安装 Wazuh 仪表板包。
yum -y install wazuh-dashboard
(3)配置 Wazuh 仪表板
-
编辑文件并替换以下值:
/etc/wazuh-dashboard/opensearch_dashboards.yml
-
server.host
:此设置指定 Wazuh 仪表板服务器的主机。若要允许远程用户进行连接,请将该值设置为 Wazuh 仪表板服务器的 IP 地址或 DNS 名称。该值将接受主机的所有可用 IP 地址。0.0.0.0
-
opensearch.hosts
:用于所有查询的 Wazuh 索引器实例的 URL。可以将 Wazuh 仪表板配置为连接到同一群集中的多个 Wazuh 索引器节点。节点的地址可以用逗号分隔。 -
例如
["https://10.0.0.2:9200", "https://10.0.0.3:9200","https://10.0.0.4:9200"]
server.host: 0.0.0.0 server.port: 443 opensearch.hosts: https://localhost:9200 opensearch.ssl.verificationMode: certificate
-
(4)启动 Wazuh 仪表板服务
systemctl daemon-reload
systemctl enable wazuh-dashboard
systemctl start wazuh-dashboard
三、wazuh源码安装
yum install curl unzip wget libcap net-tools
配置源
/etc/yum.repos.d/wazuh.repo[wazuh]
gpgcheck=1
gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH
enabled=1
name=EL-$releasever - Wazuh
baseurl=https://packages.wazuh.com/4.x/yum/
protect=1yum install wazuh-manager
或者官网有离线的rpm包,后续的agent也需要在官网下载
安装完后,启动
systemctl status wazuh-manager
四、虚拟机OVA安装
下载链接
https://documentation.wazuh.com/current/deployment-options/virtual-machine/virtual-machine.html
在官方上下载OVA文件,可能比较大,几个g左右
下载完成后,可以在Vmware中直接导入虚拟机
右上角--->文件--->打开--->选择下载好的OVA文件
之后选择安装路径,跟着引导程序一步步走
注:个人推荐使用这种,第一种麻烦,报错多,第二种遇到问题可能解决不了
查看
五、wazuh浅谈
1.主动响应(active-response)
主动响应的主要作用是检测到危险或者是告警之后,在一定条件下,可以做出一系列反应来禁止入侵者访问或登录你的系统
主动响应的脚本在/var/ossec/active-response/bin目录下,此目录需要一定的权限,不然对此文件进行操作时,会报错,如下
提权:
[wazuh-user@wazuh-server var]$ sudo -i
2.告警信息(alerts)
当入侵者或正常用户执行了某些命令、做了某些操作,触发了wazuh的规则,那么wazuh就会在日志中记录并告警
这个日志的目录是在/var/ossec/logs/alerts目录下
以.json结尾的文件是json格式的日志,主要用于ELK分析展示
以.log结尾的文件是我们查看起来比较方便的格式
3.规则
wazuh的规则在/var/ossec/ruleset/rules目录下
而用户的自定义规则是在/var/ossec/etc/rules目录下
4.配置文件
配置文件 /var/ossec/etc/ossec.conf
<global>
<jsonout_output>yes</jsonout_output>
预警的当然要记录
<alerts_log>yes</alerts_log>
不记录所有
<logall>no</logall>
不记录所有的json格式
<logall_json>no</logall_json>
邮件相关配置
<email_notification>no</email_notification>
<smtp_server>smtp.example.wazuh.com</smtp_server>
<email_from>wazuh@example.wazuh.com</email_from>
<email_to>recipient@example.wazuh.com</email_to>
<email_maxperhour>12</email_maxperhour>
<email_log_source>alerts.log</email_log_source>
代理10分钟离线
<agents_disconnection_time>10m</agents_disconnection_time>
代理告警时间为实时
<agents_disconnection_alert_time>0</agents_disconnection_alert_time>
</global>
<alerts>
只要预警>=3级及以上就会记录到alert.log中
<log_alert_level>3</log_alert_level>
只要>=12级就会发邮件
<email_alert_level>12</email_alert_level>
</alerts>
客户端连接的端口,所以服务器的1514端口是开着的,可以通过netstat -ant看到
<remote>
<connection>secure</connection>
<port>1514</port>
<protocol>tcp</protocol>
<queue_size>131072</queue_size>
</remote>
监控root相关
<!-- Policy monitoring -->
<rootcheck>
关闭为no,说明开启了
<disabled>no</disabled>
<check_files>yes</check_files>
<check_trojans>yes</check_trojans>
<check_dev>yes</check_dev>
<check_sys>yes</check_sys>
<check_pids>yes</check_pids>
<check_ports>yes</check_ports>
<check_if>yes</check_if><!-- Frequency that rootcheck is executed - every 12 hours -->
每12小时执行一次
<frequency>43200</frequency>监控rootkit(维持root权限的后门)
<rootkit_files>etc/rootcheck/rootkit_files.txt</rootkit_files>
<rootkit_trojans>etc/rootcheck/rootkit_trojans.txt</rootkit_trojans><skip_nfs>yes</skip_nfs>
</rootcheck>