wazuh官方安装指南(中文译版本)

安装Wazuh服务器

Wazuh服务器可以安装在任何类型的Unix操作系统上。最常见安装在Linux上。如果可以为您的系统提供自动化脚本,则安装过程会更容易,但是,从源码构建和安装也非常简单。

通常在Wazuh服务器上安装两个组件:管理器和API。此外,对于分布式体系结构(Wazuh服务器将数据发送到远程Elastic Stack集群),需要安装Filebeat。

安装Wazuh服务器有多种选择,具体取决于操作系统以及是否希望从源代码构建。请参阅下表并选择如何安装:

类型描述
RPM包在CentOS / RHEL / Fedora上安装Wazuh服务器
DEB包在Debian/Ubuntu上安装Wazuh服务器
  

注意

强烈建议在64位操作系统上安装Wazuh Server,因为Wazuh API在32位平台上不可用。如果没有Wazuh API,Wazuh Kibana应用程序的大部分功能都将无法使用。同样,如果您为Wazuh Server平台使用Red Hat或CentOS,请确保它是版本6或更高版本才能正确安装Wazuh API。

使用RPM软件包安装Wazuh服务器

对于CentOS / RHEL / Fedora平台,安装Wazuh服务器组件需要在添加更新源后安装相关软件包。

注意:下面使用的许多命令都需要以root用户权限执行。

添加Wazuh存储库

设置Wazuh的第一步是将Wazuh更新源添加到您的系统中。如果您想直接下载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

对于CentOS-5和RHEL-5:

# cat > /etc/yum.repos.d/wazuh.repo <<\EOF
[wazuh_repo]
gpgcheck=1
gpgkey=http://packages.wazuh.com/key/GPG-KEY-WAZUH-5
enabled=1
name=Wazuh repository
baseurl=http://packages.wazuh.com/3.x/yum/5/$basearch/
protect=1
EOF

安装Wazuh Manager

下一步是在您的系统上安装Wazuh Manager:

# yum install wazuh-manager

完成此过程后,您可以使用以下命令检查服务状态

a.for  Systemd:

# systemctl status wazuh-manager
b.For SysV Init:
# service wazuh-manager status

安装Wazuh API

  1. 要运行Wazuh API,需要NodeJS> = 4.6.1。如果您没有安装NodeJS或者您的版本低于4.6.1,我们建议您添加官方NodeJS更新源库,如下所示:
# curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -

然后,安装NodeJS:

# yum install nodejs
2.要运行Wazuh API,需要Python> = 2.7。它默认安装或包含在大多数Linux发行版的官方库中。
要确定系统上的python版本是否低于2.7,可以运行以下命令:
 # python --version

It is possible to set a custom Python path for the API in ``/var/ossec/api/configuration/config.js``, in case the stock version of Python in your distro is too old:
config.python = [
    // Default installation
    {
        bin: "python",
        lib: ""
    },
    // Package 'python27' for CentOS 6
    {
        bin: "/opt/rh/python27/root/usr/bin/python",
        lib: "/opt/rh/python27/root/usr/lib64"
    }
];

CentOS 6和Red Hat 6附带Python 2.6,但是,你可以并行安装Python 2.7来兼容旧版本

a.对于CentOS 6:

# yum install -y centos-release-scl
# yum install -y python27
b.对于RHEL 6:
# yum install python27

您可能需要首先启用存储库以获取python27,使用如下命令:
#   yum-config-manager --enable rhui-REGION-rhel-server-rhscl
#   yum-config-manager --enable rhel-server-rhscl-6-rpms
3.安装Wazuh API。如果需要,它将更新NodeJS:
# yum install wazuh-api
4.完成此过程后,您可以使用以下命令检查服务状态:
a.for  Systemd:
# systemctl status wazuh-api
b.for SysV Init:
# service wazuh-api status
5.(可选)禁用Wazuh更新源:

建议禁用Wazuh更新源以防止意外升级。为此,请使用以下命令:

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

安装Filebeat

Filebeat是Wazuh服务器上的工具,可以将警报和归档事件安全地转发到Elastic Stack服务器上的Logstash服务上

警告:在单主机架构中(Wazuh服务器和Elastic Stack安装在同一系统中),不需要安装Filebeat,因为Logstash将能够直接从本地文件系统读取事件/警报数据,而无需转发器。

RPM软件包适合安装在Red Hat,CentOS和其他基于RPM的系统上

  1. 从Elastic安装GPG密钥,然后安装Elastic更新源:
# 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
2.安装Filebeat:
# yum install filebeat-6.6.0
3.从Wazuh存储库下载Filebeat配置文件。这是预配置为将Wazuh警报转发给Logstash:
# curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/filebeat/filebeat.yml
4. 编辑文件/etc/filebeat/filebeat.yml并替换ELASTIC_SERVER_IP 为Elastic Stack服务器的IP地址或主机名。例如:
output:
  logstash:
    hosts: ["ELASTIC_SERVER_IP:5000"]
5.启动Filebeat服务:
 a.for Systemd:
# systemctl daemon-reload
# systemctl enable filebeat.service
# systemctl start filebeat.service
b.for SysV Init:
# chkconfig --add filebeat
# service filebeat start
6.(可选)禁用Elasticsearch存储库:

建议禁用Elasticsearch更新源,以防止升级到较新的Elastic Stack版本,为此,请使用以下命令:

# sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/elastic.rep

使用DEB包安装Wazuh服务器

对于Debian / Ubuntu平台,安装Wazuh服务器组件需要在添加存储库后安装相关的软件包。下面使用的许多命令都需要以root用户权限执行。

添加Wazuh更新源

设置Wazuh的第一步是将Wazuh更新源添加到您的系统上。如果您想直接下载wazuh-manager软件包,或查看兼容版本,请单击此处

  1. 要执行此过程中,curl,apt-transport-https和lsb-release软件包必须安装在系统上。如果它们没被安装,请使用以下命令安装它们:
# apt-get update
# apt-get install curl apt-transport-https lsb-release

如果该/usr/bin/python文件不存在(如在Ubuntu 16.04 LTS或更高版本中),请使用以下命令创建Python(2.7或更高版本):

# if [ ! -f /usr/bin/python ]; then ln -s /usr/bin/python3 /usr/bin/python; fi
2.安装GPG密钥
# curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
3.添加更新源
# echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
4.更新包
# apt-get update

安装Wazuh Manager

在您的终端上,安装Wazuh manager:

# apt-get install wazuh-manager

完成此过程后,您可以使用以下命令检查服务状态:

a. for Systemd:

# systemctl status wazuh-manager
b.for  SysV Init:
# service wazuh-manager status

安装Wazuh API

  1. 要运行Wazuh API,需要NodeJS> = 4.6.1。如果您没有安装NodeJS或者您的版本低于4.6.1,我们建议您添加官方NodeJS存储库,如下所示:
# curl -sL https://deb.nodesource.com/setup_8.x | bash -

如果您使用的是Ubuntu 12.04(Precise)或Debian 7(Wheezy),则必须使用以下命令安装NodeJS 6:

# curl -sL https://deb.nodesource.com/setup_6.x | bash -

然后,安装NodeJS:

# apt-get install nodejs
2.要运行API,需要Python> = 2.7。它默认安装或包含在大多数Linux发行版的官方库中。
要确定系统上的python版本是否低于2.7,可以运行以下命令:
# python --version

It is possible to set a custom Python path for the API in ``/var/ossec/api/configuration/config.js``, in case the stock version of Python in your distro is too old:
config.python = [
    // Default installation
    {
        bin: "python",
        lib: ""
    },
    // Package 'python27' for CentOS 6
    {
        bin: "/opt/rh/python27/root/usr/bin/python",
        lib: "/opt/rh/python27/root/usr/lib64"
    }
];
3.安装Wazuh API。如果需要,它将更新NodeJS:
# apt-get install wazuh-api
4.完成此过程后,您可以使用以下命令检查服务状态:
a.for Systemd:
# systemctl status wazuh-api
b.for SysV Init:
# service wazuh-api status
5.(可选)禁用Wazuh更新:

建议禁用Wazuh更新源以防止意外升级。为此,请使用以下命令:

# sed -i "s/^deb/#deb/" /etc/apt/sources.list.d/wazuh.list
# apt-get update

或者,您可以将程序包状态设置为hold,这将停止更新(尽管您仍然可以手动升级它)

# echo "wazuh-manager hold" | sudo dpkg --set-selections
# echo "wazuh-api hold" | sudo dpkg --set-selections

安装Filebeat

Filebeat是Wazuh服务器上的工具,可以将警报和归档事件安全地转发到Elastic Stack服务器上的Logstash服务。

警告:在单主机架构中(Wazuh服务器和Elastic Stack安装在同一系统中),不需要安装Filebeat,因为Logstash将能够直接从本地文件系统读取事件/警报数据,而无需转发器。

DEB包适用于Debian,Ubuntu和其他基于Debian的系统。

  1. 从Elastic安装GPG密钥,然后安装Elastic存储库:
# curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
# echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-6.x.list
# apt-get update
2.安装Filebeat:
# apt-get install filebeat=6.6.0
3.从Wazuh更新源下载Filebeat配置文件。这是预配置为将Wazuh警报转发给Logstash:
# curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/filebeat/filebeat.yml
4. 编辑文件/etc/filebeat/filebeat.yml并替换ELASTIC_SERVER_IP为Elastic Stack服务器的IP地址或主机名。例如:
output:
  logstash:
    hosts: ["ELASTIC_SERVER_IP:5000"]
5.启动Filebeat服务:
a.for Systemd:
# systemctl daemon-reload
# systemctl enable filebeat.service
# systemctl start filebeat.service
b.for SysV Init:
# update-rc.d filebeat defaults 95 10
# service filebeat start
6.(可选)禁用Elasticsearch更新:

建议禁用Elasticsear更新源,以防止升级到较新的Elastic Stack版本,为此,请使用以下命令:

# sed -i "s/^deb/#deb/" /etc/apt/sources.list.d/elastic-6.x.list
# apt-get update

或者,您可以将程序包状态设置为hold,这将停止更新(尽管您仍然可以手动升级它)

# echo "filebeat hold" | sudo dpkg --set-selections

安装Elastic Stack

本指南介绍了由Logstash,Elasticsearch和Kibana组成的Elastic Stack服务器的安装。我们将说明这些基于包的组件安装。您也可以从源代码编译tar 安装它们,但是,这不是Wazuh文档中的首选安装。

除了Elastic Stack组件,您还可以找到安装和配置Wazuh应用程序(部署为Kibana插件)的说明。

根据您的操作系统,您可以选择从RPM或DEB软件包安装Elastic Stack。请参阅下表并选择:

类型描述
RPM包在CentOS / RHEL / Fedora上安装Elastic Stack
DEB包在Debian / Ubuntu上安装Elastic Stack

注意

目前,Elastic Stack仅支持64位操作系统

使用RPM软件包安装Elastic Stack

RPM软件包适合安装在Red Hat,CentOS和其他基于RPM的系统上。
注意:下面的许多命令都需要以root用户权限执行。
Preparation
  1. Logstash和Elasticsearch需要Oracle Java JRE 8。

注意:以下命令下载Oracle Java JRE需要带上cookie。请访问Oracle Java 8 JRE下载页面以获取更多信息。

# 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"

最后,使用yum安装RPM包:

# yum -y install jre-8-linux-x64.rpm
# rm -f jre-8-linux-x64.rpm
2.安装Elastic存储库及其GPG密钥:
# 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

Elasticsearch是一个高度可扩展的全文搜索和分析引擎。有关更多信息,请参阅Elasticsearch

  1. 安装Elasticsearch包:
# yum install elasticsearch-6.6.0
2.启动Elasticsearch服务:
a.for Systemd:
# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service
b.for SysV Init:
# chkconfig --add elasticsearch
# service elasticsearch start

等待Elasticsearch服务器完成启动非常重要。使用以下命令检查当前状态,该命令应该给出如下所示的响应:

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

{
  "name" : "Zr2Shu_",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "M-W_RznZRA-CXykh_oJsCQ",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "053779d",
    "build_date" : "2018-07-20T05:20:23.451332Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
3.为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 @-
注意:建议编辑默认配置以提高Elasticsearch的性能。为此,请参阅 Elasticsearch调优
Logstash
Logstash是收集,解析和转发数据到Elasticsearch的工具,用于索引和存储Wazuh服务器生成的所有日志。有关更多信息,请参阅 Logstash
  1. 安装Logstash包:
# yum install logstash-6.6.0
2.下载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.con
    
如果您使用CentOS-6 / RHEL-6或Amazon AMI(logstash像服务管理器一样使用Upstart并需要修复,请参阅 此错误 ),请按照 以下步骤操作
  1. 编辑文件/etc/logstash/startup.options,将第30行从LS_GROUP = logstash更改为LS_GROUP = ossec
  2. 通过运行命令 /usr/share/logstash/bin/system-install,并使用新参数更新服务
  3. 重新启动Logstash
4.启用并启动Logstash服务:
a.for Systemd:
# systemctl daemon-reload
# systemctl enable logstash.service
# systemctl start logstash.service
b.for SysV Init:
# chkconfig --add logstash
# service logstash start
注意:如果您在不同的系统(分布式体系结构)上运行Wazuh服务器和Elastic Stack服务器,则在Filebeat和Logstash之间配置加密非常重要。为此,请参阅 为Filebeat和Logstash设置SSL
Kibana

Kibana是一个灵活,直观的Web界面,用于可视化存储在Elasticsearch中的事件和信息。在Kibana上查找更多信息。

  1. 安装Kibana包:
# yum install kibana-6.6.0
2.为Kibana安装Wazuh应用程序插件:
# 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.2_6.6.0.zip

Kibana插件安装过程可能需要几分钟。请耐心等待。

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

server.host:"0.0.0.0"

注意:建议为Kibana设置Nginx代理,以便使用SSL加密并启用身份验证。可以在为Kibana设置SSL和身份验证中找到设置代理的说明。

4.启动Kibana服务:

a.for Systemd:

# systemctl daemon-reload
# systemctl enable kibana.service
# systemctl start kibana.service
b.for SysV Init:
# chkconfig --add kibana
# service kibana start
5.(可选)禁用Elasticsearch更新源:

建议禁用Elasticsearch更新源,以防止升级到较新的Elastic Stack版本,为此,请使用以下命令:

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

使用Debian软件包安装Elastic Stack

DEB包适用于Debian,Ubuntu和其他基于Debian的系统。

注意:下面的许多命令都需要以root用户权限执行。

Preparation

1.Logstash和Elasticsearch需要Oracle Java JRE或OpenJDK:

a.对于 Debian >= 8/Jessie or Ubuntu >= 16.04/Xenial:
    # apt-get update
   # apt-get install openjdk-8-jre
a.
对于Debian <8 / Jessie:
# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
# apt-get update
# apt-get install oracle-java8-installer
b.对于Ubuntu <16.04 / Xenial:
#
add-apt-repository ppa:webupd8team / java

apt-get update

apt-get install oracle-java8-installer
2.安装Elastic存储库及其GPG密钥:
# apt-get install curl apt-transport-https
# curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
# echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-6.x.list
# apt-get update

Elasticsearch

Elasticsearch是一个高度可扩展的全文搜索和分析引擎。有关更多信息,请参阅Elasticsearch

  1. 安装Elasticsearch包:
# apt-get install elasticsearch=6.6.0
2.启动Elasticsearch服务:
a.for Systemd:
# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service
b.for SysV Init:
# update-rc.d elasticsearch defaults 95 10
# service elasticsearch start

等待Elasticsearch服务器完成启动是非常重要。使用以下命令检查当前状态,该命令应该给出如下所示的响应:

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

{
  "name" : "Zr2Shu_",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "M-W_RznZRA-CXykh_oJsCQ",
  "version" : {
    "number" : "6.6.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "053779d",
    "build_date" : "2018-07-20T05:20:23.451332Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
3.为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 @-

注意:建议编辑默认配置以提高Elasticsearch的性能。为此,请参阅Elasticsearch调优

Logstash

Logstash是收集,解析和转发数据到Elasticsearch的工具,用于索引和存储Wazuh服务器生成的所有日志。有关更多信息,请参阅Logstash

  1. 安装Logstash包:
# apt-get install logstash=1:6.6.0-1
2.下载Logstash的Wazuh配置文件:
a.本地配置(仅在单主机架构中):
# 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
b.远程配置(仅在分布式架构中):
# curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/logstash/01-wazuh-remote.conf
3. 启用并启动Logstash服务:
a.for Systemd:
# systemctl daemon-reload
# systemctl enable logstash.service
# systemctl start logstash.service
b.for SysV Init:
# update-rc.d logstash defaults 95 10
# service logstash start

注意:如果您在不同的系统(分布式体系结构)上运行Wazuh服务器和Elastic Stack服务器,则在Filebeat和Logstash之间配置加密非常重要。为此,请参阅为Filebeat和Logstash设置SSL

Kibana

Kibana是一个灵活,直观的Web界面,用于可视化存储在Elasticsearch中的事件和信息。在Kibana上查找更多信息。

  1. 安装Kibana包:
# apt-get install kibana=6.6.0
  1. 为Kibana安装Wazuh应用程序插件:
# 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.2_6.6.0.zip

Kibana插件安装过程可能需要几分钟。请耐心等待

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

server.host: "0.0.0.0"

注意:建议为Kibana设置Nginx代理,以便使用SSL加密并启用身份验证。可以在为Kibana设置SSL和身份验证中找到设置代理的说明。

4.并启动Kibana服务:

a.for Systemd:

# systemctl daemon-reload
# systemctl enable kibana.service
# systemctl start kibana.service
b. for SysV Init:

# update-rc.d kibana defaults 95 10
# service kibana start
5.(可选)禁用Elasticsearch更新:

建议禁用Elasticsearch更新源,以防止升级到较新的Elastic Stack版本,因为可能会撤消应用程序的更改。为此,请使用以下命令:

# sed -i "s/^deb/#deb/" /etc/apt/sources.list.d/elastic-6.x.list
# apt-get update

或者,您可以将程序包状态设置为hold,这将停止更新(尽管您仍然可以手动升级它)

# echo "elasticsearch hold" | sudo dpkg --set-selections
# echo "kibana hold" | sudo dpkg --set-selections
# echo "logstash hold" | sudo dpkg --set-selections

安装Wazuh代理

Wazuh代理程序在您要监控的主机上运行。它是多平台的,并提供以下功能:

  • 日志和数据收集,
  • 文件完整性监控,
  • rootkit和恶意软件检测
  • 安全策略监测

此外,它还与Wazuh manger 进行通信,通过加密和认证的通道实时地发送数据。

安装Wazuh代理有多种选择,具体取决于操作系统以及是否希望从源代码构建。请参阅下表并选择如何继续执行:

类型描述
RPM包在CentOS / RHEL / Fedora上安装Wazuh agnet
DEB包在Debian / Ubuntu上安装Wazuh agent
Windows安装程序在Windows上安装Wazuh agent

注意:使用Puppet,Chef,SCCM或Ansible等自动化工具可以更轻松地将agnet部署到大量服务器或端点上。如果要在更大的环境中部署Wazuh,请考虑探索这些方法。

使用RPM软件包安装Wazuh agent

RPM软件包适合安装在Red Hat,CentOS和其他基于RPM的系统上。

注意:下面的许多命令都需要以root用户权限执行

添加Wazuh存储库

安装Wazuh代理的第一步是将Wazuh存储库添加到您的系统。或者,如果您想直接下载wazuh-agent软件包,或查看兼容版本,可以从这里开始。根据您的发行版运行以下命令来设置更新源:

CentOS 6 / RHEL 6,CentOS 7 / RHEL 7,Fedora 22或更高版本以及Amazon Linux

# 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

CentOS 5 / RHEL 5

# cat > /etc/yum.repos.d/wazuh.repo <<\EOF
[wazuh_repo]
gpgcheck=1
gpgkey=http://packages.wazuh.com/key/GPG-KEY-WAZUH-5
enabled=1
name=Wazuh repository
baseurl=http://packages.wazuh.com/3.x/yum/5/$basearch/
protect=1
EOF

SUSE 12

# rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
# cat > /etc/zypp/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

SUSE 11

# rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH-5
# cat > /etc/zypp/repos.d/wazuh.repo <<\EOF
[wazuh_repo]
gpgcheck=1
gpgkey=http://packages.wazuh.com/key/GPG-KEY-WAZUH-5
enabled=1
name=Wazuh repository
baseurl=http://packages.wazuh.com/3.x/yum/5/$basearch/
protect=1
EOF

安装Wazuh agent

  1. 在终端上,按如下方式安装Wazuh agent:
  • 使用yum包安装:

    # yum install wazuh-agent
    
  • 使用zypper包安装

    # zypper install wazuh-agent
    
2.(可选)禁用Wazuh存储库:

建议禁用Wazuh更新源以防止意外升级。为此,请使用以下命令:

  • 使用yum包管理器:

    # sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo
    
  • 使用zypper包管理器:

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

使用DEB包安装Wazuh agent

DEB包适用于Debian,Ubuntu和其他基于Debian的系统。

注意:下面的许多命令都需要以root用户权限执行

添加Wazuh存储库

安装Wazuh代理的第一步是将Wazuh存储库添加到您的服务器。或者,如果您希望直接下载wazuh-agent软件包,可以在此处找到它。

  1. 要执行此过程中,curl,apt-transport-https和lsb-release软件包必须安装在系统上。如果它们没有被安装,请使用以下命令安装它们:
# apt-get install curl apt-transport-https lsb-release
2.安装Wazuh存储库GPG密钥
# curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -
3.添加存储库:
# echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
4.更新包
# apt-get update

安装Wazuh agent

  1. 在您的终端上,安装Wazuh agent
# apt-get install wazuh-agent
2.(可选)禁用Wazuh更新:

建议禁用Wazuh存储库以防止意外升级。为此,请使用以下命令:

# sed -i "s/^deb/#deb/" /etc/apt/sources.list.d/wazuh.list
# apt-get update

或者,您可以将程序包状态设置为hold,这将停止更新(尽管您仍然可以手动升级它)

# echo "wazuh-agent hold" | sudo dpkg --set-selections

在Windows上安装Wazuh agent

注意:您将需要管理员权限才能执行此安装

在Windows计算机上安装Wazuh agent的第一步是从软件包列表中下载Windows安装程序。下载完成后,可以使用以下两种方法之一安装Windows代理:

使用GUI

要从GUI安装Windows agent,请运行下载的文件,然后按照安装向导中的步骤操作。如果您不确定如何选择,只需使用默认选项安装即可。

安装后,agent 会使用图形用户界面进行配置,打开日志文件或启动和停止服务。

默认情况下,所有agent的配置文件将在:C:\Program Files(x86)\ossec-agent

注意:现在已安装agent程序,下一步是注册并配置它以与mangent通信。有关此过程的更多信息,请访问用户手册

使用命令

注意:必须使用管理员权限运行进行自动安装

要从命令中安装Windows agent,请使用以下命令运行安装程序(该/q参数用与无人参与安装):

wazuh-agent-3.8.2-1.msi /q

要卸载 agent,将需要原始MSI文件来执行自动卸载

msiexec.exe /x wazuh-agent-3.8.2-1.msi /qn

您可以使用以下参数来自动安装authd注册agent:

选项描述
APPLICATIONFOLDER设置安装路径。默认C:\Program Files (x86)\ossec-agent.
ADDRESS指定管理器IP地址或主机名。此选项还接受以分号分隔的IP或主机名列表。
SERVER_PORT指定管理器连接端口。
PROTOCOL设置管理器和代理之间的通信协议。接受UDP和TCP。默认为UDP。
AUTHD_SERVER指定Authd IP地址。
AUTHD_PORT指定Authd连接端口。
PASSWORD设置Authd密码。
NOTIFY_TIME设置管理器检查与agent 之间连接的时间。
TIME_RECONNECT设置重新连接尝试之前的时间(以秒为单位)。
CERTIFICATE指定授权路径证书。
PEM指定证书路径。
KEY指定密钥路径。
AGENT_NAME指定代理的名称。默认情况下将是计算机名称。
GROUP将指定的组分配给代理。
/ l installer.log生成安装过程的日志。
/ l * v installer.log生成安装过程的日志,包括详细消息。

下面是一些安装和注册Windows agent 的示例

使用带密码注册:

wazuh-agent-3.8.2-1.msi /q ADDRESS="192.168.1.1" AUTHD_SERVER="192.168.1.1" PASSWORD="TopSecret" AGENT_NAME="W2012"

使用带密码注册并分配组:

azuh-agent-3.8.2-1.msi /q ADDRESS="192.168.1.1" AUTHD_SERVER="192.168.1.1" PASSWORD="TopSecret" GROUP="my-group"

使用带CA注册的相对路径。它将在您的APPLICATIONFOLDER文件夹中搜索:

wazuh-agent-3.8.2-1.msi /q ADDRESS="192.168.1.1" AUTHD_SERVER="192.168.1.1" AGENT_NAME="W2019" CERTIFICATE="rootCA.pem"

包含空格的CA,证书或密钥的绝对路径可以写成如下所示:

wazuh-agent-3.8.2-1.msi /q ADDRESS="192.168.1.1" AUTHD_SERVER="192.168.1.1" KEY="C:\Progra~2\sslagent.key" PEM="C:\Progra~2\sslagent.cert"

数字“2”表示将在第二次出现“Progra”时搜索文件,因此,将在文件夹“C:\Program Files (x86)””中搜索密钥和证书。如果此数字为“1”,则将在“Program Files”中搜索。

注意:要通过SSL验证agent,必须同时使用KEY和PEM选项。请参阅带SSL验证主机部分。

使用带协议注册

wazuh-agent-3.8.2-1.msi /q ADDRESS="192.168.1.1" AUTHD_SERVER="192.168.1.1" AGENT_NAME="W2016" PROTOCOL="TCP"

注意:在早于Windows Server 2008或Windows 7的Windows版本中,在Wazuh管理器上ossec-authd必须使用-a标志运行程序,或者在auth配置上设置<ssl_auto_negotiate>选项以避免兼容性错误。

可选配置

本节为与建立高效,稳定和安全的Wazuh环境相关的最佳实践提供指导。在这里,您将找到有关如何在分布式体系结构中设置SSL通信的信息(Wazuh服务器与Elastic Stack集群通信),如何使用Nginx为Kibana设置安全 agent 以及如何向Web用户添加身份验证接口。

内容

为Filebeat和Logstash设置SSL

如果您在单独的系统和服务器(分布式体系结构)上运行Wazuh服务器和Elastic Stack ,则在Filebeat和Logstash之间配置SSL加密非常重要。(这不适用于单服务器体系结构)

注意:下面的许多命令都需要以root用户权限执行

生成自签名SSL证书

  1. 生成SSL证书和密钥,如下所示:

    在安装了Logstash服务器计算机上,创建OpenSSL示例配置文件的副本。文件位置可能因操作系统而异:

    1. 在Debian或Ubuntu上:

      # cp /etc/ssl/openssl.cnf custom_openssl.cnf
      
    2. 在CentOS或Red Hat上:

      # cp /etc/pki/tls/openssl.cnf custom_openssl.cnf
      

注意:通常,您将在Elastic Stack服务器中运行Logstash服务器,或者,如果已在其中一个节点中设置了分布式Elasticsearch集群,则运行Logstash服务器。

2.编辑自定义配置文件custom_openssl.cnf

找到该部分并添加如下所示的命令行,其中包含您的Elastic服务器的IP地址:

[ v3_ca ] subjectAltName = IP: YOUR_SERVER_IP 例如: [ v3_ca ] subjectAltName = IP: 192.168.1.2 3.生成SSL证书和密钥:
# openssl req -x509 -batch -nodes -days 365 -newkey rsa:2048 -keyout /etc/logstash/logstash.key -out /etc/logstash/logstash.crt -config custom_openssl.cnf
4.
您可以删除自定义配置文件:
# rm custom_openssl.cnf

配置Logstash服务器

新生成的SSL证书和密钥分别位于/etc/logstash/logstash.crt/etc/logstash/logstash.key。接下来,配置Logstash以使用此新密钥与Filebeat进行通信。

  1. 编辑文件/etc/logstash/conf.d/01-wazuh.conf并取消注释与SSL相关的行。现在输入以下命令:

    input {
        beats {
            port => 5000
            codec => "json_lines"
            ssl => true
            ssl_certificate => "/etc/logstash/logstash.crt"
            ssl_key => "/etc/logstash/logstash.key"
        }
    }
    
  2. 重新启动Logstash。该命令取决于OS init系统:

    1. for Systemd:

      # systemctl restart logstash.service
      
    2. for  SysV Init:

      # service logstash restart
      

配置Filebeat

配置Filebeat以验证Logstash服务器的证书。

  1. 安装了Filebeat 的计算机(Wazuh服务器)上,获取Logstash服务器的SSL证书文件/etc/logstash/logstash.crt并将其复制到/etc/filebeat/logstash.crt

    下面是一个示例,可用于将SSL证书从Logstash服务器复制到安装了Filebeat的Wazuh服务器:

    # scp root@LOGSTASH_SERVER_IP:/etc/logstash/logstash.crt /etc/filebeat
    
  2. 编辑文件/etc/filebeat/filebeat.yml,并取消注释与SSL内部相关的行,如下所示:

    output:
     logstash:
       hosts: ["192.168.1.2:5000"]
       ssl:
         certificate_authorities: ["/etc/filebeat/logstash.crt"]
    
  3. 重新启动Filebeat。该命令取决于OS init系统:

a.for Systemd:
# systemctl restart logstash.service
b.for SysV Init:
# service logstash restart

注意:有关更多详细信息,请参阅 Elastic的“ 与Logstash保护通信”指南。

为Kibana设置SSL和身份验证

默认情况下,Kibana(包括Wazuh应用程序)与最终用户系统上的Web浏览器之间的通信未加密。强烈建议将Kibana配置为使用SSL加密并启用身份验证。在本节中,我们将介绍如何使用NGINX设置完成此操作。

NGINX是一种流行的开源Web服务器和反向代理,以其高性能,稳定性,丰富的功能集,简单的配置和低资源消耗而着称。在此示例中,我们将其用作反向代理,以向最终用户提供对Kibana的加密和经过身份验证的访问。

注意:下面的许多命令都需要以root用户权限执行。Kibana Web界面的默认端口是5601。本案例将使80和443端口可用于HTTP / HTTPS访问。

用于Kibana的NGINX SSL代理(基于RPM的发行版)

  1. 安装NGINX:
    a.对于CentOS:
# cat > /etc/yum.repos.d/nginx.repo <<\EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
EOF

# yum install ngin
 b.对于RHEL:
# cat > /etc/yum.repos.d/nginx.repo <<\EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1
EOF

# yum install nginx

注意:有关更多信息,请参阅NGINX:官方Red Hat / CentOS软件包

2.安装SSL证书和私钥:

a.如果您拥有有效的签名证书,请将密钥文件<ssl_key>和证书文件复制到适当的位置:

# MKDIR -p的/ etc / PKI / TLS /证书的/ etc / PKI / TLS /私人
 # CP <ssl_pem> /etc/pki/tls/certs/kibana-access.pem
 # CP <ssl_key>的/ etc / PKI / TLS /private/kibana-access.key
b.如果您没有有效的签名证书,请按如下方式创建自签名证书。请记住将字段设置为您的服务器名称。例如,如果您的服务器是,您将执行以下操作:
# mkdir -p /etc/pki/tls/certs /etc/pki/tls/private
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/kibana-access.key -out /etc/pki/tls/certs/kibana-access.pem
  Generating a 2048 bit RSA private key
  ...........+++
  ................+++
  writing new private key to '/etc/pki/tls/private/kibana-access.key'
  -----
  You are about to be asked to enter information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.
  There are quite a few fields but you can leave some blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) [AU]: US
  State or Province Name (full name) [Some-State]: California
  Locality Name (eg, city) []: San Jose
  Organization Name (eg, company) [Internet Widgits Pty Ltd]: Example Inc.
  Organizational Unit Name (eg, section) []: section
  Common Name (e.g. server FQDN or YOUR name) []: example.com
  Email Address []: example@mail.com
3.将NGINX配置为Kibana的HTTPS反向代理:
# cat > /etc/nginx/conf.d/default.conf <<\EOF
server {
    listen 80;
    listen [::]:80;
    return 301 https://$host$request_uri;
}

server {
    listen 443 default_server;
    listen            [::]:443;
    ssl on;
    ssl_certificate /etc/pki/tls/certs/kibana-access.pem;
    ssl_certificate_key /etc/pki/tls/private/kibana-access.key;
    access_log            /var/log/nginx/nginx.access.log;
    error_log            /var/log/nginx/nginx.error.log;
    location / {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/conf.d/kibana.htpasswd;
        proxy_pass http://kibana-server-ip:5601/;
    }
}
EOF

注意:我们配置Nginx以封装Kibana服务器的IP地址。此配置允许将Kibana请求重定向到HTTPS。使用此配置时,建议编辑文件/etc/kibana/kibana.yml以将字段设置server.host为localhost。必须重新启动Kibana服务才能应用此更改。

4.如果正在使用SELinux,则允许NGINX连接到Kibana端口:

# semanage port -a -t http_port_t -p tcp 5601

注意:这假设您已安装policycoreutils-python来管理SELinux。

通过htpasswd启用身份验证

  1. 安装httpd-tools包
# yum install httpd-tools
2.生成.htpasswd文件,确保替换wazuh为您选择的用户名,与auth_basic_user_file匹配:
# htpasswd -c /etc/nginx/conf.d/kibana.htpasswd wazuh
3.重启NGINX:
a.for Systemd:
# systemctl restart nginx
b. for SysV Init:
# service nginx restart

现在,通过HTTPS访问Kibana Web界面。它将提示您输入在上述步骤中创建的用户名和密码。

警告:如果您遇到权限问题或获得502代码错误,请尝试执行以下命令:

 setsebool -P httpd_can_network_connect 1

用于Kibana的NGINX SSL代理(基于Debian的发行版)

  1. 安装NGINX:
# apt-get install nginx
2.安装SSL证书和私钥:
a.如果您拥有有效的签名证书,请将密钥文件<ssl_key>和证书文件复制<ssl_pem>到适当的位置:
# mkdir -p /etc/ssl/certs /etc/ssl/private
# cp <ssl_pem> /etc/ssl/certs/kibana-access.pem
# cp <ssl_key> /etc/ssl/private/kibana-access.key
b.如果您没有有效的签名证书,请按如下方式创建自签名证书:
# mkdir -p /etc/ssl/certs /etc/ssl/private
# openssl req -x509 -batch -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/kibana-access.key -out /etc/ssl/certs/kibana-access.pem
  Generating a 2048 bit RSA private key
  .............+++
  ..+++
  writing new private key to '/etc/ssl/private/kibana-access.key'
  -----
3.将NGINX配置为Kibana的HTTPS反向代理:
# cat > /etc/nginx/sites-available/default <<\EOF
server {
    listen 80;
    listen [::]:80;
    return 301 https://$host$request_uri;
}

server {
    listen 443 default_server;
    listen            [::]:443;
    ssl on;
    ssl_certificate /etc/ssl/certs/kibana-access.pem;
    ssl_certificate_key /etc/ssl/private/kibana-access.key;
    access_log            /var/log/nginx/nginx.access.log;
    error_log            /var/log/nginx/nginx.error.log;
    location / {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/conf.d/kibana.htpasswd;
        proxy_pass http://kibana-server-ip:5601/;
    }
}
EOF

注意:我们配置Nginx以封装Kibana服务器的IP地址。此配置允许将Kibana请求重定向到HTTPS。使用此配置时,建议编辑文件/etc/kibana/kibana.yml以将字段设置server.host为localhost。必须重新启动Kibana服务才能应用此更改。

通过htpasswd启用身份验证

  1. 安装apache2-utils包:
# apt-get install apache2-utils
2.使用您选择的用户名生成.htpasswd替换<user>下面的文件:
# htpasswd -c /etc/nginx/conf.d/kibana.htpasswd <user>
3.重启NGINX:
a.For Systemd:
# systemctl restart nginx
b.For SysV Init:
# service nginx restart

现在,通过HTTPS访问Kibana Web界面。它将提示您输入在上述步骤中创建的用户名和密码。

保护Wazuh API

默认情况下,Wazuh Kibana App和Wazuh API之间的通信未加密。强烈建议您按照以下步骤保护Wazuh API:

  1. 更改默认凭据:

默认情况下,您可以通过键入用户“foo”和密码“bar”来访问Wazuh API,但是,您可以按如下方式创建新凭据:

# cd /var/ossec/api/configuration/auth
# node htpasswd -c user myUserName

然后,您需要重新启动wazuh-api和wazuh-manager服务才能使更改生效。

2.启用HTTPS:

要启用HTTPS,您需要生成或提供证书。您可以学习如何生成自己的证书或使用脚本自动生成证书:
/var/ossec/api/scripts/configure_api.sh
3.绑定到localhost:
如果您不需要从外部访问API,则应将API绑定到 localhost 使用配置文件/var/ossec/api/configuration/config.js中 的选项的config.host 。

Elasticsearch调整

本指南总结了允许优化Elasticsearch的相关配置。

1.Memory locking

2.Shards and replicas

Memory locking

当系统交换内存时,Elasticsearch的性能很差。对于节点的运行状况而言,任何JVM都不会交互到磁盘是至关重要的。

在本示例中,我们将展示如何将bootstrap.memory_lock设置为true,以便Elasticsearch将进程地址空间锁定到RAM中。这可以防止任何Elasticsearch内存被溢出。

  1. 设置bootstrap.memory_lock

取消注释或将此行添加到文件中/etc/elasticsearch/elasticsearch.yml:

bootstrap.memory_lock: true
2.编辑系统资源的限制

配置系统设置的位置取决于您选择用于Elasticsearch安装的软件包和操作系统。

  • 在使用systemd的情况下,需要通过systemd指定系统限制。为此,请创建执行命令的文件夹:
# mkdir -p /etc/systemd/system/elasticsearch.service.d/

然后,在新目录中,添加一个名为elasticsearch.conf文件,并指定该文件中的设置

[Service]
LimitMEMLOCK=infinity

在其他情况下,编辑/etc/sysconfig/elasticsearch(RPM)或/etc/default/elasticsearch(Debian )并正确设置:

MAX_LOCKED_MEMORY=unlimited
3.Limit memory

如果Elasticsearch尝试分配的内存超过可用内存,则先前的配置可能会导致节点不稳定甚至节点挂掉。JVM堆限制将有助于限制内存使用并防止出现这种情况。

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

  • 使用不超过可用RAM的50%。
  • 使用不超过32 GB。

此外,重要的是要考虑主机上运行的操作系统,服务和软件的内存使用情况。

默认情况下,Elasticsearch配置有1 GB的内存。您可以使用以下/etc/elasticsearch/jvm.options文件通过JVM标志更改内存大小:

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms4g
-Xmx4g

警告:确保min(Xms)和max(Xmx)大小相同,以防止JVM内存在运行时调整大小,因为这是一个非常重要的过程。

4.重启Elasticsearch

最后,重启Elasticsearch服务:

a.for Systemd:

# systemctl daemon-reload
# systemctl restart elasticsearch
b.for SysV Init:
# service elasticsearch restart

启动Elasticsearch后,您可以通过检查mlockall下一个请求的输出中的值来查看是否已成功应用此设置:

# curl "http://localhost:9200/_nodes?filter_path=**.mlockall&pretty"

{
  "nodes" : {
    "sRuGbIQRRfC54wzwIHjJWQ" : {
      "process" : {
        "mlockall" : true
      }
    }
  }
}

如果该"mlockall"字段的输出为false,则请求失败。您还会在日志(位于)中找到无法锁定JVM内存的行/var/log/elasticsearch/elasticsearch.log。

参考:

Shards and replicas

Elasticsearch提供了将索引拆分为多个称为分片的段的功能。每个分片本身都是一个功能齐全且独立的“索引”,可以托管在集群中的任何节点上。分片很重要,主要有两个原因:

  • 您可以水平拆分/缩放内容卷
  • 您可以跨分片区分发和并行化操作,从而提高性能和吞吐量。

此外,Elasticsearch允许您将索引的分片的一个或多个副本转换成所谓的副本分片或简称副本。复制很重要,主要有两个原因:

  • 它在碎片或节点出现故障时提供高可用性
  • 它允许您扩展搜索量和吞吐量,因为可以在所有副本上并行执行搜索。

警告:可以在创建索引时为每个索引定义分片和副本的数量。创建索引后,您可以动态更改副本数,但是,您无法在事后更改分片数。

我的索引应该有多少个分片?

由于在没有重建索引的情况下无法重新设置(更改分片数),因此应仔细考虑在创建第一个索引之前需要多少分片。您在安装中计划的节点数将影响您应该计划的分片数。通常,通过使用与节点相同数量的分片来实现最佳性能。因此,具有三个节点的群集应该具有三个分片,而具有一个节点的群集将仅需要一个分片。

我的索引应该有多少个副本?

让我们看看如何设置具有三个节点和三个分片的集群的一些选项:

  • 无副本:每个节点都有一个分片。如果节点发生故障,我们将留下两个分片的不完整索引。
  • 一个副本:每个节点有一个分片和一个副本。如果节点出现故障,我们仍然会有一个完整的索引。
  • 两个副本:每个节点有一个分片和两个副本(完整索引)。通过此设置,即使两个节点发生故障,群集仍可以正常运行。这似乎是最好的解决方案,但它确实增加了存储要求。

设置分片和副本的数量

使用RPMDebian软件包的默认安装Elastic Stack 将为每个索引配置五个主分片和一个副本。

如果要更改这些设置,则需要编辑Elasticsearch模板。在以下示例中,分片和副本的正确值在仅包含一个节点的群集中配置。

警告:如果已创建索引,则必须在编辑模板后重新编辑索引

  1. 下载Wazuh Elasticsearch模板:
# curl https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/elasticsearch/wazuh-elastic6-template-alerts.json -o w-elastic-template.json
2.编辑模板以设置一个没有副本的分片:
# nano w-elastic-template.json

{
  "order": 0,
  "template": "wazuh-alerts-3.x-*",
  "settings": {
    "index.refresh_interval": "5s",
    "number_of_shards" :   1,
    "number_of_replicas" : 0
  },
  "mappings": {
  "...": "..."
  }
}
3.加载模板:
# curl -X PUT "http://localhost:9200/_template/wazuh" -H 'Content-Type: application/json' -d @w-elastic-template.json

{ "acknowledged" : true }
4.可选。确认您的配置已成功更新:
# curl "http://localhost:9200/_template/wazuh?pretty&filter_path=wazuh.settings"

{
  "wazuh" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "1",
        "number_of_replicas" : "0",
        "refresh_interval" : "5s"
      }
    }
  }
}

更改副本数量

可以使用Elasticsearch API动态更改副本数。

在具有一个节点的群集中,副本数应设置为零:

# curl -X PUT "http://localhost:9200/wazuh-alerts-*/_settings?pretty" -H 'Content-Type: application/json' -d'
{
  "settings" : {
    "number_of_replicas" : 0
  }
}
'

{ "acknowledged" : true }

请注意,我们假设您的目标索引模式是“wazuh-alerts- *”,但是,可以使用不同的索引模式。您可以使用以下命令查看当前索引的完整列表:

# curl "http://localhost:9200/_cat/indices"

参考:

Search Guard

Search Guard可用于通过使用不同的行业标准身份验证技术来保护您的Elasticsearch集群,例如Kerberos,LDAP/Active Directory,JSON Web令牌,TLS证书和代理身份验证 SSO。

无论您使用何种身份验证方法,基本流程如下:

  • 用户想要访问Elasticsearch集群,例如通过发出简单查询。

  • Search Guard从请求中检索用户的凭据

    • 如何检索凭据取决于身份验证方法。例如,可以从HTTP基本身份验证头,JSON Web令牌或Kerberos票证中提取它们。
  • Search Guard根据配置的身份验证后端对凭据进行身份验证。

  • Search Guard通过从配置的授权后端检索用户角色的列表来授权用户

    • 从授权后端检索的角色称为后端角色。
    • 例如,可以从LDAP / AD,JSON Web令牌或Search Guard内部用户数据库中获取角色。
  • Search Guard将用户和后端角色映射到Search Guard角色。

  • Search Guard确定与Search Guard角色关联的权限,并决定是否允许用户执行的操作。

  • 如果您使用的是文档和字段级安全性,则还可以根据文档和单个字段应用精细化的权限。

为Logstash设置Search Guard

我们的默认配置不使用Logstash的身份验证,因此我们需要正确配置它。编辑Logstash配置文件(位于/etc/logstash/conf.d/01-wazuh.conf):

1.停止Logstash服务:

# systemctl stop logstash
2.查找输出部分并将其替换为以下内容:
output {
    elasticsearch {
        hosts => ["ELASTICSEARCH_HOST:9200"]
        index => "wazuh-alerts-3.x-%{+YYYY.MM.dd}"
        document_type => "wazuh"
        user => logstash
        password => logstash
        ssl => true
        ssl_certificate_verification => false
    }
}
3.重新启动Logstash。
# systemctl restart logstash

警告:必须对所有Logstash配置应用此配置,替换特定字段(如主机或索引),具体取决于您的Logstash位置和要求。

为Elasticsearch设置Search Guard

目前,不支持同时使用X-Pack安全性。如果您的环境当前正在使用X-Pack安全功能,则必须先将其禁用,然后再继续阅读本示例:

对于Elasticsearch,您需要在所有节点中编辑文件/etc/elasticsearch/elasticsearch.yml,并添加以下命令:

xpack.security.enabled: false

现在重启Elasticsearch服务:

# systemctl restart elasticsearch

Search Guard必须与 Elastic stack中的任何其他组件一样适合Elasticsearch版本。Search Guard的版本控制略有不同,请在Search Guard版本中查看您的版本

Search Guard的版本控制语法如下:

com.floragunn:search-guard-6:<elastic_version>-<searchguard_version>

本文档是为我们最新支持的版本设计的,它是6.5.4,所以我们的正确的版本设置:

com.floragunn:search-guard-6:6.5.4-24.0

由于Search Guard是一个插件,我们必须像其他Elasticsearch插件安装它:

sudo -u elasticsearch \
/usr/share/elasticsearch/bin/elasticsearch-plugin install \
-b com.floragunn:search-guard-6:6.5.4-24.0

Search Guard附带一个演示配置,它作为新手很有用,所以让我们安装演示配置:

$ cd /usr/share/elasticsearch/plugins/search-guard-6/tools/
$ chmod a+x install_demo_configuration.sh
# ./install_demo_configuration.sh
Install demo certificates? [y/N] y
Initialize Search Guard? [y/N] y
Enable cluster mode? [y/N] y

重启Elasticsearch服务:

# systemctl restart elasticsearch

您可以使用下一个请求检查它是否按预期执行(Search Guard需要大约两分钟来创建其内部索引,因此请耐心等待):

$ curl -k -u admin:admin https://<ELASTICSEARCH_HOST>:9200/_searchguard/authinfo?pretty
{
"user" : "User [name=admin, roles=[admin], requestedTenant=null]",
"user_name" : "admin",
"user_requested_tenant" : null,
"remote_address" : "10.0.0.4:46378",
"backend_roles" : [
    "admin"
],
"custom_attribute_names" : [
    "attr.internal.attribute1",
    "attr.internal.attribute2",
    "attr.internal.attribute3"
],
"sg_roles" : [
    "sg_all_access",
    "sg_own_index"
],
"sg_tenants" : {
    "admin_tenant" : true,
    "admin" : true
},
"principal" : null,
"peer_certificates" : "0",
"sso_logout_url" : null
}

设置Search Guard角色

Search Guard使用核心角色。Search Guard用户角色使用核心角色。最后,Search Guard用户使用用户角色。

  • 角色文件
    • /usr/share/elasticsearch/plugins/search-guard-6/sgconfig/sg_roles.yml
    • Search Guard在引擎下使用核心角色
  • 角色映射
    • /usr/share/elasticsearch/plugins/search-guard-6/sgconfig/sg_roles_mapping.yml
    • Search Guard用户使用的角色。这些角色可以组合多个核心角色。
  • 内部用户
    • /usr/share/elasticsearch/plugins/search-guard-6/sgconfig/sg_internal_users.yml
    • 这些是所有组件将使用的用户。每个组件使用具有自己角色的不同用户。

Logstash角色

Logstash有自己的预定义用户和自己的预定义角色。由于Wazuh使用wazuh-alerts-3.x- *前缀创建自定义Elasticsearch索引,因此必须将该索引前缀添加到Logstash角色。

  1. 编辑Logstash角色,位于/usr/share/elasticsearch/plugins/search-guard-6/sgconfig/sg_roles.yml
sg_logstash:
    cluster:
        - CLUSTER_MONITOR
        - CLUSTER_COMPOSITE_OPS
        - indices:admin/template/get
        - indices:admin/template/put
    indices:
        'logstash-*':
            '*':
                - CRUD
                - CREATE_INDEX
        '*beat*':
            '*':
                - CRUD
                - CREATE_INDEX
        'wazuh-alerts-3?x-*':
            '*':
                - CRUD
                - CREATE_INDEX

注意:用于Search Guard角色的点被替换,3?x实际上意思是3.x

2.应用更改:

# /usr/share/elasticsearch/plugins/search-guard-6/tools/sgadmin.sh \
-cd /usr/share/elasticsearch/plugins/search-guard-6/sgconfig -icl -key \
/etc/elasticsearch/kirk-key.pem -cert /etc/elasticsearch/kirk.pem -cacert \
/etc/elasticsearch/root-ca.pem -h <ELASTICSEARCH_HOST> -nhnv

警告:在生产环境中,不建议使用-nhnv标识,因为它忽略了证书问题。

3.重新启动Elasticsearch和Logstash服务:

# systemctl restart elasticsearch
# systemctl restart logstash

此时,您可以使用user:password 身份验证和加密通信来保护您的Elasticsearch集群。这意味着必须对指向某个Elasticsearch节点的任何Logstash进行身份验证。此外,对Elasticsearch API的任何请求都必须使用https plus user:password 身份验证。

为Kibana设置Search Guard

目前,不支持同时使用X-Pack安全性。如果您的环境当前正在使用任何X-Pack安全功能,则必须先将其禁用,然后再继续阅读本示例。

对于Kibana,您需要编辑文件/etc/kibana/kibana.yml并添加以下行:

xpack.security.enabled:false

现在重启Kibana服务:

# systemctl restart kibana

Kibana也需要Search Guard插件。插件版本控制就像Elasticsearch插件版本一样,这意味着你必须完全适合你的Kibana版本。

  1. 像其他安装组件一样安装:
$ sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install https://search.maven.org/remotecontent?filepath=com/floragunn/search-guard-kibana-plugin/6.5.4-17/search-guard-kibana-plugin-6.5.4-17.zip
2. 编辑Kibana配置文件,它位于/etc/kibana/kibana.yml,添加以下行:
# Elasticsearch URL
elasticsearch.url: "https://<ELASTICSEARCH_HOST>:9200"

# Credentials
elasticsearch.username: "admin"
elasticsearch.password: "admin"

# Disable SSL verification because we use self-signed demo certificates
elasticsearch.ssl.verificationMode: none

# Whitelist the Search Guard Multi Tenancy Header
elasticsearch.requestHeadersWhitelist: [ "Authorization" , "sgtenant" ]

现在,您可以像往常一样访问Kibana UI,它将提示您登录,您可以使用现有的admin的用户访问它。

接下来的步骤我们将学习如何定义新的Kibana UI用户以及如何根据他们的需要为所有用户定义特定角色。

有关详细信息,请参阅Kibana Search Guard插件

Kibana UI和Wazuh应用程序

Wazuh应用程序需要管理.wazuh和.wazuh-version索引才能正常工作。服务器端使用索引.wazuh-version。

警告:只需从Elasticsearch集群中的一个主节点执行

Wazuh app用户

1.在/usr/share/elasticsearch/plugins/search-guard-6/sgconfig/sg_roles.yml中创建新的Search Guard核心角色

sg_wazuh_admin:
  cluster:
    - indices:data/read/mget
    - indices:data/read/msearch
    - indices:data/read/search
    - indices:data/read/field_caps
    - CLUSTER_COMPOSITE_OPS
  indices:
    '?kiban*':
      '*':
        - MANAGE
        - INDEX
        - READ
        - DELETE
    '?wazuh':
      '*':
        - MANAGE
        - INDEX
        - READ
        - DELETE
    '?wazuh-version':
      '*':
        - MANAGE
        - INDEX
        - READ
        - DELETE

    'wazuh-alerts-3?x-*':
      '*':
        - indices:admin/mappings/fields/get
        - indices:admin/validate/query
        - indices:data/read/search
        - indices:data/read/msearch
        - indices:data/read/field_stats
        - indices:data/read/field_caps
        - READ
        - SEARCH

    'wazuh-monitoring*':
      '*':
        - indices:admin/mappings/fields/get
        - indices:admin/validate/query
        - indices:data/read/search
        - indices:data/read/msearch
        - indices:data/read/field_stats
        - indices:data/read/field_caps
        - READ
        - SEARCH
2.为您的密码创建哈希
bash /usr/share/elasticsearch/plugins/search-guard-6/tools/hash.sh -p yourpassword
3.使用步骤2中的哈希在/usr/share/elasticsearch/plugins/search-guard-6/sgconfig/sg_internal_users.yml中创建新用户。
wazuhadmin:
  hash: $2a$12$VcCDgh2NDk07JGN0rjGbM.Ad41qVR/YFJcgHp0UGns5JDymv..TOG
  roles:
    - wazuhadmin_role
3.在/usr/share/elasticsearch/plugins/search-guard-6/sgconfig/sg_roles_mapping.yml中设置Search Guard角色的角色映射
sg_wazuh_admin:
  backendroles:
    - wazuhadmin_role
4.应用更改:
# /usr/share/elasticsearch/plugins/search-guard-6/tools/sgadmin.sh \
-cd /usr/share/elasticsearch/plugins/search-guard-6/sgconfig -icl -key \
/etc/elasticsearch/kirk-key.pem -cert /etc/elasticsearch/kirk.pem -cacert \
/etc/elasticsearch/root-ca.pem -h <ELASTICSEARCH_HOST> -nhnv

Kibana简要总结

现在你有两个Kibana用户:

  • Kibana服务器使用Search Guard中预定义的管理员用户(/etc/kibana/kibana.yml)。
  • Kibana UI wazuhadmin用户可以看到所有并修改.wazuh索引。

它是如何进入Wazuh应用程序?

主要区别在于您现在必须在进入Kibana之前登录。另请注意,如果不允许用户使用某些索引,则不能在Kibana上使用它们。

自动插入Wazuh API

如果您想更快地在我们的某个应用程序上添加Wazuh API凭据,您可以执行以下命令之一,具体取决于您使用的应用程序:

Kibana应用程序

# curl -X POST "http://<ELASTICSEARCH_IP>:9200/.wazuh/wazuh-configuration/1513629884013" -H 'Content-Type: application/json' -d'
{
  "api_user": "<WAZUH_API_USERNAME>",
  "api_password": "<WAZUH_API_PASSWORD>",
  "url": "<WAZUH_API_URL>",
  "api_port": "<WAZUH_API_PORT>",
  "insecure": "true",
  "component": "API",
  "cluster_info" : {
    "manager" : "<WAZUH_MANAGER_HOSTNAME>",
    "cluster" : "<WAZUH_MANAGER_CLUSTER_NAME>",
    "status" : "<WAZUH_MANAGER_CLUSTER_STATUS>"
  },
  "extensions" : {
    "audit" : true,
    "pci" : true,
    "gdpr" : true,
    "oscap" : true,
    "ciscat" : false,
    "aws" : false,
    "virustotal" : false,
    "osquery" : false
  }

请注意以下事项:

  1. <ELASTICSEARCH_IP>是Elasticsearch主机的URL 。
  2. cURL命令(1513629884013)上使用的数字是一个随机数,用于将Wazuh API条目标识为唯一。如果要添加更多API,则必须使用其他编号。
  3. <WAZUH_API_USERNAME>和<WAZUH_API_PASSWORD>表示要存储在应用程序中的Wazuh API凭据。
  4. API密码必须以base64格式存储。使用将以正确的格式返回密码以供使用:echo -n '<WAZUH_API_PASSWORD>' | base64
  5. <WAZUH_API_URL>和<WAZUH_API_PORT>是Wazuh API 的完整IP地址和端口。URL必须包含http://或https://,具体取决于当前配置。
  6. <WAZUH_MANAGER_HOSTNAME>是安装Wazuh管理器的实例的主机名。您只需在管理器主机上运行该命令即可获取此信息。
  7. <WAZUH_MANAGER_CLUSTER_NAME>是Wazuh集群的名称。它是在文件ossec.conf上配置的。如果您没有使用Wazuh群集,请使用Disabled。
  8. <WAZUH_MANAGER_CLUSTER_STATUS>是Wazuh集群的状态。使用enabled或disabled取决于您的配置。

Splunk app

# curl -X POST "http://<SPLUNK_IP>:<SPLUNK_PORT>/en-US/custom/SplunkAppForWazuh/manager/add_api?url=<WAZUH_API_URL>&portapi=<WAZUH_API_PORT>&userapi=<WAZUH_API_USERNAME>&passapi=<WAZUH_API_PASSWORD>"
  1. <SPLUNK_IP>是安装应用程序的Splunk实例的主机名或IP地址。
  2. <SPLUNK_PORT>是安装应用程序的Splunk实例的端口。默认情况下,它是8000。
  3. <WAZUH_API_URL>,<WAZUH_API_PORT>,<WAZUH_API_USERNAME>和<WAZUH_API_PASSWORD>代表Wazuh API凭证存储上的应用程序。请记住,Wazuh API URL必须包含http://或https://,具体取决于当前配置

安装包列表:

manage,agent以及API

操作系统版本系统位数SHA512校验和MD5校验和
基于Debian3.8.232位wazuh-agent_3.8.2-1_i386.deb45fd4bf6210c21a9eb183ac6c9845ef380eb2da8c7a6c64c065866c0430036f01c8eb41c1caad7afc7a17d2016a2023c9415afa845b311d3144497b6a78dee23d514d81444da3bb1a1310cc073daf57a
wazuh-manager_3.8.2-1_i386.deb6339a1fd455f7fdc982899cdae39974528379c8d68689f3959fb5a76bea244940f136fd5c858678ea7f1722d17f22dfcf8b039c4766230bb61f4f7ab1c4b817e475685576e13a04a862e64f4b8ef678f
64位wazuh-agent_3.8.2-1_amd64.deb8328534c96c12d2df29a37c120200a0bce7de1142d5b1706cb767d541d87de0e6777a08cda9d3a010c26032e72d7255fb12ff486b4dbf48782776537deb9b4557a800037ed34070fe84b6b9fd1aa85f4
wazuh-manager_3.8.2-1_amd64.deb5f44124d3fcbf8f89a8f056f1f0837a1684ad86c2f81281044aa0cf653d429f932574a24a916f2e75c1f998109d8730c497ec4823f6021eb5ec1ac6a5098a64411d0fca5514f33d0a5292aa5769c4453
wazuh-api_3.8.2-1_amd64.deb83dc3e6c71cb670b0b2c4883941152df8b6e93729830106c6f91bef47601663f238508db4f3146c61d074a586fe4f50cf6c5baf1ec2b98b42c46110cfb2be634a6a5a2f4b7d679e02f1b26e3ba929fb7
基于RPM3.8.232位wazuh-agent-3.8.2-1.i386.rpmd2f1b7c622f12f7da682f14453f04d346df3f77b740f204b5638b736cb9bb48ebf28c502d6e705f76f39b170b65241706220a3cb08ca315244658f9e10a7f09fc711eceea1963aa783f349d3dad6ae93
wazuh-manger-3.8.2-1.i386.rpm4d90284fad80431b47393d954d2ca5575a426753abc2f5e6e698d551ba248823fcbe6f0760e982fa6dabafe59d77b8c0d78fe952e34cebb16654869b5b923a57928cca5405556858798fbb0cd3bcc6be
64位wazuh-agent-3.8.2-1.x86_64.rpm3db04f90da1701a7ff92a12e0472d78c70d2e9d9d96f075f1c2aff62a80d094acfada805b1a9edd8ac10e8eb2577470b0165171451e7a76bc44902f4b30d5b14d97f9ded99047f9c2afbe058f72aaf89
wazuh-manager,3.8.2-1.x86_64.rpm9d59fbf7a058df01e275b810f2741551283e379b36618348b1da931d46a0ef35085fa36167d772d94de8aad40715702a91e2ef0ad04917601131963d7871665592d64e9edbcddf75f570bdb732ea1e18
wazuh-API 3.8.2-1.x86_64.rpmb2d9ea714cd7f98458a33508f7b1014cf3b447f1ab532481d4a1ae70f6bcd31a3f1647b03949058dec2892ec8061c1ce81895a3a34c607403c06d61abe2c540f7a9fa1664a7fdceb0f84c6152cfbc518

CentOS 5

RedHat 5

SUSE 11

3.8.232位wazuh-agent-3.8.2-1.el5.i386.rpm0ce0cc21542388fb39421a0cb1dab8b42c7d2bb1b6afead90281bddecfadc5761f24f6805fce09c0b16a50180b6921ddb535335e3189f28b00f90060a7e322b832b575cde448e1747fb0a350bd6786bb
wazuh-manger,3.8.2-1.el5.i386.rpm1504c72235aebffe29ccfddc3a5f8588e66237ac6bbc47070f50ce2778136b06e8ec3aac5e3cfe9da9d90cf34b8118abecf8c2a182b4a7c6d2139737c7293d67d737aab2d84ebb5d0cd9ce4d447a3aeb
64位wazuh-agent-3.8.2-1.el5.x86_64.rpm131a69e9e4bc3a59d51d3382db58002b997cfad02da774cb34aaf577c20c031b4f57301b38b36f916bc6991e6f6acc66b58855b0a3746b4d3c2fb229cf29f9f8769cc8a89088109b1e491ffdcb0dbf05
wazuh-manager,3.8.2-1.el5.x86_64.rpma15c12be503be01b977d12b9b679ca834e54b19bc7615ef82b95de4267211c33344abc13ac908f0fae326ad06c86bd02602c05bcb6109c2a28cd6ba83f68c85adb57dfc16a05a8eec8bbc2c09a6d0613
windows3.8.232/64位wazuh-agnet-3.8.2-1.msi753af161918bc3cc7fc8d3de9fc73103b54cc15453af202955e885d423293182a50e7bf5612adc2c00fdd5656698aaa94aa4618176d138ba93dd46e519dbca17dd0b534e98b645eb1e43477b85013580
Mac OS X.3.8.264位wazuh-manager-3.8.2-1.pkg605bcd645a518321016d33c4c0108152862581882997575b2eb3b1682a6341a807e7f92bc6f4ed483ed608cfd765be6db021a39eb3f91f310223441cadebaf1e73bc5e724f16981130f3064a8355b700
HP-UX 11.313.8.2Itaniumwazuh-agent-3.8.2-1-HPUX-11v3-ia64.tar26ce466f8c9657289383550d6277ccbffc8eb758456f57cbe8a1fc1260f1cb4cd702edec33633cf53b1d2fca6bf7e7fed3584aa07513039708c20cd2efcdeb282c8633fb24cbf53b869238a78073f4ad
Solaris 103.8.2I386wazuh-agent_v3.8.2-SOL10,i386.pkga4a2ba591a39a382a9f8723f6b415138f4c44a18bc17956689e1bbbd1cfe2662871cbebc0e52dbee35ca590a2f183f4c93024c1a92c7e5785e5e397deb38b68750c407237f6d5d496365ef30e1411c79
SPARCwazuh-agent_v3.8.2-SOL10,sparc.pkg67d9e915a144de85c9198a76b7b97e0744b1de2cafdf31c872c2c229fd66f5e7d5b62b7a8a7651e766f304142172e9aa021eb80a4201c5b3566d828e5929123600510447e6d9e8d7f5623bd29d356986
Solaris 113.8.2I386wazuh-agent_v3.8.2-sol11-i386.p5p9bc17cb642e590d2d1bfb6a9a3260012ac585507aa6ddb37786e4faa9254a953dca181fdfb574db523b7a915b0fe308ebb3ef9fd69f04c1f3a7e885f04abfc7d24aaf35aba94c8191c0b23263559d749
SPARCwazuh-agent_v3.8.2-sol11-sparc.p5pc72100439bed144d34e589662e63dced353711df21f2e0a66b4100ad45c71aa2b6e2a5f1dcb86a2895c25ed74e9e12268f3478420440296937a2ede8934870769225474a36629b86181273fbf9cbcbfe
AIX 5.3或更高版本3.8.2LPARswazuh-agent-3.8.2-1.aix.ppc.rpm3f8da3a0deefb705c1ddad42d2fdb1240cfadd16f62285c4f7092cf327383e66f0314a0137cfb475261007cfd715c35692af9612b3d092e5941ce3de6111c5992ea0dcec1066366873942bb89575af27
注意: 基于RPM的软件包包括CentOS / RHEL 6或更高版本,Fedora 22或更高版本,SLES 12和Amazon Linux 。

Kibana和Splunk app

产品版本WazuhSHA512校验和MD5校验和
Elastic Stack6.6.03.8.2wazuhapp-3.8.2_6.6.0.zip0df564008cfb328c719a2847d3356dc620024535de65bb7b05204e7041d9037c7a71fff3ca544a00af3283589a2b2a4a74cdebbdb204194861f73a3f097a21ca35ab8d3dcd0db78e67e50ecc283cf6b4
Splunk的7.2.33.8.2v3.8.2_7.2.3.tar.gz443a16de801ff36170f36886083c6370efb3e10725dae8086e09aa986cd83471ba3f593d2e451a3204caf446201fefb0a4b95de3ede4189621ab9277b350c3e48cf2be3aa7f64c440e3b64f41547f961

虚拟机

系统系统位数VM格式版本软件包SHA512校验和MD5校验和
CentOS 764位OVA3.8.2wazuh3.8.2_6.5.489386f5e0a314aef7def25fe6a46f408b014fd112df448a17784684c9ba0a253bcc5caac4e0e7ab3cf3780b8e5b7a8f9682926531cde88b01b6f94bb625160a0dc40d69a1634271cc270bc5afd9e9539
OVF3.8.2wazuh3.8.2_6.5.4-disk1a4f85d0fce81ca6020bcc1d8c88de31ec2300ec9ae6f114df225022ecb26ae7208deabe4dfb5ac41f05bc78e22e4d5a8b12311fb3d4b401e8c3fcadfe035e68600b257363d54d9d62a8ce0b4c1f1a61f
wazuh3.8.2_6.5.4.ovf70a283c171dfac191

兼容性

Wazuh软件可以安装在许多操作系统中,但根据您的需要,某些系统可能不兼容。此外,不同的Wazuh产品之间也有特定的兼容性要求。为了帮助您,请检查以下兼容性。

操作系统兼容性

manager

下面显示了Wazuh manger的兼容性表。由于其稳定性和与Wazuh模块的完全兼容性,建议使用CentOS / RHEL 7作为Wazuh管理器的操作系统。

操作系统Wazuh版
3.8.x3.7.x3.6.x3.5.x3.4.x3.3.x3.2.x3.1.03.0.02.1.12.1.0
Debian Wheezy / 7
Debian Jessie / 8
Debian Stretch / 9
Ubuntu Precise / 12.04
Ubuntu Trusty / 14.04
Ubuntu Vivid / 15.04
Ubuntu Wily / 15.10 *
Ubuntu Xenial / 16.04
Ubuntu Yakkety / 16.10
Ubuntu Zesty / 17.04
Ubuntu Artful / 17.10
Ubuntu Bionic / 18.04
CentOS 5 / RHEL 5 *
CentOS 6 / RHEL 6 **
CentOS 7 / RHEL 7
Fedora(> = 22)

(*)在这些系统中,Wazuh API不可用。

(**)要在CentOS 6中运行群集,请查看在CentOS 6中 运行群集部分

注意:该集群自Wazuh v3.0起可用,并且在CentOS 5 / RHEL 5上不起作用。

agent

在此表中,您可以查看我们支持的操作系统列表,其中可以安装Wazuh agent

操作系统Wazuh版
3.8.x3.7.x3.6.x3.5.03.4.03.3.13.3.03.2.43.2.33.2.23.2.13.2.03.1.03.0.02.1.x
Debian Wheezy/7 or newer
Ubuntu Precise / 12.04或更新版本
CentOS 5 / RHEL 5
CentOS / RHEL 6或更新版本
Fedora 22或更新版本
Windows XP 2003或更高版本
Windows Server 2008或更高版本
Mac OS X.
HP-UX 11.31
Solaris 10 - i386
Solaris 11 - i386
Solaris 10 - Sparc
Solaris 11 - Sparc
AIX 5
AIX 6
AIX 7
Suse 11
Suse 12
Amazon Linux

产品兼容性

当使用Wazuh软件的全栈(这意味着,wazuh-managerwazuh-agentwazuh-apiwazuh-app),也有为了不同的兼容性要求,使得正常运行。

manager和agent

当agent具有与管manager相同或更旧的版本时,agent和manager之间的兼容性得到保证。

agent版本manger版本
3.8.03.7.23.7.13.7.03.6.13.6.03.5.03.4.03.3.13.3.03.2.43.2.33.2.23.2.13.2.03.1.03.0.02.1.12.1.0
3.8.0
3.7.2
3.7.1
3.7.0
3.6.1
3.6.0
3.5.0
3.4.0
3.3.1
3.3.0
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
3.1.0
3.0.0
2.1.1
2.1.0

注意:Wazuh manager也与OSSEC agent兼容,但请记住,并非所有功能都可用。

manger和API

API需要与major.minor manager相同的版本才能兼容。

API版本Manager 版本
3.8.x3.7.x3.6.x的3.5.x的3.4.x3.3.x3.2.x中3.1.X3.0.x的2.1.x的
3.8.x
3.7.x
3.6.x的
3.5.x的
3.4.x
3.3.x
3.2.x中
3.1.X
3.0.x的
2.1.x的

API和Kibana应用程序

Kibana的Wazuh应用程序需要兼容两种不同的产品:

  • 使用Wazuh API,它需要相同的major.minor版本。
  • 使用Elastic Stack,它只与完全相同的版本兼容。
App versionElastic Stack versionAPI version
3.8.x3.7.x3.6.x3.5.x3.4.x3.3.x3.2.x3.1.x3.0.x2.1.1
3.8.x6.5.4 to 6.6.0
3.7.x6.4.2 to 6.5.4*
3.6.x6.3.2 to 6.4.3*
3.5.x6.3.2 to 6.4.0*
3.4.x6.3.1 to 6.3.2*
3.3.x6.2.4 to 6.3.1*
3.2.x6.1.0 to 6.2.4*
3.1.x6.1.0 to 6.1.3*
3.0.x6.0.0 to 6.1.0*
2.1.15.6.5

(*)在这些Wazuh应用程序版本中,Elastic Stack有不同的兼容版本。

您可以在Kibana存储库中找到有关Wazuh应用程序的更多信息,您可以在其中查看Wazuh应用程序和Elastic Stack版本之间更详细的兼容性.

API和Splunk应用程序

Wazuh的Splunk应用程序需要兼容两种不同的产品:

  • 使用Wazuh API,它需要相同的major.minor版本。
  • 使用Splunk,它只与完全相同的版本兼容。
App versionSplunk versionAPI version
3.8.x3.7.x3.6.x3.5.x3.4.x3.3.x3.2.x3.1.x3.0.x2.1.1
3.8.x7.2.3
3.7.x7.2.0 to 7.2.1*
3.6.x7.1.2 to 7.1.3*
3.5.x7.1.2
3.4.x7.1.2
3.3.x7.1.1
3.2.x7.0.3 to 7.1.1*

(*)在这些Wazuh应用程序版本中,Splunk有不同的兼容版本。

您可以在Wazuh应用程序存储库中找到更多信息,您可以在其中查看用于Wazuh和Splunk版本的Splunk应用程序之间的更详细的兼容性.

1. 安装Elasticsearch和Kibana 首先,您需要安装Elasticsearch和Kibana。您可以按照以下步骤在CentOS上进行安装: 1.1 下载和安装Elasticsearch ``` sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo vi /etc/yum.repos.d/elasticsearch.repo # 输入以下内容 [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md sudo yum install elasticsearch sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service ``` 1.2 下载和安装Kibana ``` sudo vi /etc/yum.repos.d/kibana.repo # 输入以下内容 [kibana-7.x] name=Kibana repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md sudo yum install kibana sudo systemctl enable kibana.service sudo systemctl start kibana.service ``` 2. 安装Wazuh 2.1 下载和安装Wazuh ``` sudo vi /etc/yum.repos.d/wazuh.repo # 输入以下内容 [wazuh_repo] gpgcheck=1 gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH enabled=1 name=Wazuh repository baseurl=https://packages.wazuh.com/4.x/yum/ sudo yum install wazuh-manager sudo systemctl enable wazuh-manager.service sudo systemctl start wazuh-manager.service ``` 2.2 安装Wazuh API ``` sudo yum install wazuh-api sudo systemctl enable wazuh-api.service sudo systemctl start wazuh-api.service ``` 3. 配置Wazuh 3.1 配置Wazuh API ``` sudo vi /var/ossec/api/configuration/api.yaml # 修改以下内容 # 修改password为您的密码 # 修改host为您的IP地址 auth: enabled: yes type: basic username: wazuh password: password server: host: 0.0.0.0 port: 55000 ``` 3.2 配置Wazuh Agent 在每个要监视的主机上安装Wazuh Agent。请按照以下步骤操作: ``` sudo rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH sudo vi /etc/yum.repos.d/wazuh.repo # 输入以下内容 [wazuh_repo] gpgcheck=1 gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH enabled=1 name=Wazuh repository baseurl=https://packages.wazuh.com/4.x/yum/ sudo yum install wazuh-agent sudo /var/ossec/bin/agent-auth -m IP地址 -A 密钥 ``` 将IP地址替换为Wazuh Manager的IP地址,将密钥替换为从Wazuh Manager获取的密钥。 4. 访问Wazuh 现在,您可以通过访问http://Wazuh_Manager_IP:5601来访问Kibana。在Kibana中,您可以查看Wazuh的日志和警报。 5. 配置防火墙 如果您启用了防火墙,则需要允许以下端口: ``` sudo firewall-cmd --permanent --add-port=55000/tcp sudo firewall-cmd --permanent --add-port=1514/tcp sudo firewall-cmd --permanent --add-port=1514/udp sudo firewall-cmd --permanent --add-port=514/tcp sudo firewall-cmd --permanent --add-port=514/udp sudo firewall-cmd --reload ``` 6. 安装Filebeat 如果您想将Wazuh日志和警报发送到Elasticsearch,则需要安装Filebeat。按照以下步骤安装Filebeat: ``` sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch sudo vi /etc/yum.repos.d/elastic.repo # 输入以下内容 [elastic-7.x] name=Elastic repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md sudo yum install filebeat sudo systemctl enable filebeat.service sudo systemctl start filebeat.service ``` 7. 配置Filebeat 7.1 配置Filebeat输入 ``` sudo vi /etc/filebeat/modules.d/ossec.yml # 修改以下内容 - module: ossec syslog: enabled: true # 修改以下内容为您的Wazuh Manager的IP地址 var.syslog_host: "Wazuh_Manager_IP" var.syslog_port: "514" ``` 7.2 配置Filebeat输出 ``` sudo vi /etc/filebeat/filebeat.yml # 修改以下内容 output.elasticsearch: hosts: ["localhost:9200"] username: "elastic" password: "password" index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" ``` 将localhost:9200替换为Elasticsearch的IP地址和端口,将elastic和password替换为Elasticsearch的用户名和密码。 7.3 启动Filebeat ``` sudo systemctl restart filebeat.service ``` 现在,Wazuh的日志和警报将被发送到Elasticsearch。您可以在Kibana中查看它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渗透测试中心

各位师傅,觉得文章不错可支持下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值