Wazuh涉及两个主要组件的安装:Wazuh服务器和Elastic Stack。此外,Wazuh agent需要部署到受监视的主机上:
- Wazuh server:运行Wazuh管理器和API。它从已部署的代理收集和分析数据。
- Elastic Stack:运行Elasticsearch引擎,Filebeat和Kibana(包括Wazuh应用程序)。它读取,解析,索引和存储由Wazuh管理器生成的警报数据。
- Wazuh agent:在受监视的主机上运行,收集系统日志和配置数据,并检测入侵和异常。它与Wazuh经理进行交谈,将收集到的数据转发给Wazuh server以进行进一步分析。
添加Wazuh存储库
要设置存储库,请运行以下命令:
# rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
# 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
安装Wazuh管理器
#yum install wazuh-manager
启动服务
#systemctl start wazuh-manager
该过程完成后,您可以使用以下方法检查服务状态:
#systemctl status wazuh-manager
安装Wazuh API
- 为了运行Wazuh API,需要NodeJS> = 4.6.1。如果您没有安装NodeJS或您的版本低于4.6.1,我们建议您添加如下所示的官方NodeJS存储库:
#curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
然后,安装NodeJS:
#yum install nodejs - 安装Wazuh API。如果需要,它将更新NodeJS:
#yum install wazuh-api - 该过程完成后,您可以使用以下方法检查服务状态:
- 对于Systemd:
#systemctl status wazuh-api
安装Filebeat
Filebeat是Wazuh服务器上的工具,可将警报和存档事件安全地转发到Elasticsearch。要安装它:
- 添加弹性存储库及其GPG密钥:
# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
# cat > /etc/yum.repos.d/elastic.repo << EOF
[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
EOF
-
安装Filebeat:
#yum install filebeat-7.9.2 -
从Wazuh存储库下载Filebeat配置文件。这是预先配置的,用于将Wazuh警报转发到Elasticsearch:
#curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh/v3.13.2/extensions/filebeat/7.x/filebeat.yml
#chmod go+r /etc/filebeat/filebeat.yml -
下载Elasticsearch的警报模板:
#curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/v3.13.2/extensions/elasticsearch/7.x/wazuh-template.json
#chmod go+r /etc/filebeat/wazuh-template.json -
下载用于Filebeat的Wazuh模块:
#curl -s https://packages.wazuh.com/3.x/filebeat/wazuh-filebeat-0.1.tar.gz | sudo tar -xvz -C /usr/share/filebeat/module -
编辑文件,/etc/filebeat/filebeat.yml并用YOUR_ELASTIC_SERVER_IPElasticsearch服务器的IP地址或主机名替换。例如:
output.elasticsearch.hosts: [‘http://YOUR_ELASTIC_SERVER_IP:9200’] -
启用并启动Filebeat服务:
- 对于Systemd:
#systemctl daemon-reload
#systemctl enable filebeat.service
#systemctl start filebeat.service
安装Elasticsearch
使用RPM软件包安装Elastic Stack
- 添加弹性存储库及其GPG密钥:
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# cat > /etc/yum.repos.d/elastic.repo << EOF
[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
EOF
Elasticsearch是一个高度可扩展的全文本搜索和分析引擎。
-
安装Elasticsearch软件包:
#yum install elasticsearch-7.9.2 -
默认情况下,Elasticsearch将仅侦听回送接口(本地主机)。通过编辑文件/etc/elasticsearch/elasticsearch.yml并取消注释设置,将Elasticsearch配置为侦听非回送地址network.host。将该值更改为要绑定到的IP:
network.host: <elasticsearch_ip> -
更改network.host选项后,需要进一步配置。在文件中添加或编辑(如果有注释)以下几行/etc/elasticsearch/elasticsearch.yml:
node.name: <node_name>
cluster.initial_master_nodes: ["<node_name>"] -
启用并启动Elasticsearch服务:
-
对于Systemd:
#systemctl daemon-reload
#systemctl enable elasticsearch.service
#systemctl start elasticsearch.service
5.Elasticsearch启动并运行后,建议加载Filebeat模板。在安装Filebeat的位置运行以下命令:
#filebeat setup --index-management -E setup.template.json.enabled=false
Elasticsearch服务在默认端口9200上进行侦听。您可以通过以下请求进行简单检查:
curl http://<elasticsearch_ip>:9200
安装kibana
Kibana是一个灵活直观的Web界面,用于挖掘和可视化Elasticsearch中存储的事件和档案。
1.安装Kibana软件包:
#yum install kibana-7.9.2
-
更新optimize和plugins目录权限:
#chown -R kibana:kibana /usr/share/kibana/optimize
#chown -R kibana:kibana /usr/share/kibana/plugins -
安装适用于Kibana的Wazuh应用程序插件:
- 从URL安装:
#cd /usr/share/kibana/
#sudo -u kibana bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.13.2_7.9.2.zip
- 从URL安装:
默认情况下,Kibana将仅在回送接口(localhost)上侦听,这意味着只能从同一台计算机上对其进行访问。要从外部访问Kibana,请通过编辑文件使其/etc/kibana/kibana.yml取消监听其网络接口IP ,取消注释设置server.host,并将其值更改为:
server.host: “<kibana_ip>”
-
通过编辑文件来设置Elasticsearch节点的URL或IP /etc/kibana/kibana.yml:
elasticsearch.hosts: [“http://<elasticsearch_ip>:9200”] -
对于在Kibana 7.6.X版本上的安装,建议增加Kibana的堆大小以确保安装Kibana的插件:
#cat >> /etc/default/kibana << EOF
NODE_OPTIONS="–max_old_space_size=2048"
EOF -
启用并启动Kibana服务:
-
对于Systemd:
#systemctl daemon-reload
#systemctl enable kibana.service
#systemctl start kibana.service
安装x-pack
Elastic Stack安全功能为正确的人员提供了正确的访问权限。IT,运营和应用程序团队依靠它们来管理目标用户,并阻止恶意行为者,而高管和客户则可以轻松地知道存储在Elastic Stack中的数据是安全的。
配置弹性堆栈以使用加密的连接
1、创建文件/usr/share/elasticsearch/instances.yml,并用您要保护的实例填充它。
#vim /usr/share/elasticsearch/instances.yml
instances:
- name: "wazuh-manager"
ip:
- "192.168.2.40"
- name: "elasticsearch"
ip:
- "192.168.2.40"
- name: "kibana"
ip:
- "192.168.2.40"
2、使用elasticsearch-certutil工具创建证书。该–keep-ca-key修改可能为了保住CA的证书和密钥文件,在未来的扩展这些文件可以被用来签署新的服务器证书的情况下使用。如果不使用此修饰符,则这些文件将被删除,以后的任何证书都将需要一个新的CA,因此,先前的证书将不再有效,需要重新分发。ca.key正确保护文件非常重要。
#/usr/share/elasticsearch/bin/elasticsearch-certutil cert --pem --in instances.yml --out certs.zip --keep-ca-key
3、/usr/share/elasticsearch/certs.zip从上一步中提取生成的文件。您可以使用unzip:
#yum install -y unzip
#unzip /usr/share/elasticsearch/certs.zip -d /usr/share/elasticsearch/
配置Elasticsearch实例
1、创建目录/etc/elasticsearch/certs,然后在其中复制证书颁发机构,证书和密钥。
#cd /usr/share/elasticsearch
#mkdir /etc/elasticsearch/certs/ca -p
#cp ca/ca.crt /etc/elasticsearch/certs/ca
#cp elasticsearch/elasticsearch.crt /etc/elasticsearch/certs
#cp elasticsearch/elasticsearch.key /etc/elasticsearch/certs
#chown -R elasticsearch: /etc/elasticsearch/certs
#chmod -R 770 /etc/elasticsearch/certs
2、在中为传输层和HTTP层添加正确的设置/etc/elasticsearch/elasticsearch.yml。
#vim /etc/elasticsearch/elasticsearch.yml
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /etc/elasticsearch/certs/elasticsearch.key
xpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt
xpack.security.transport.ssl.certificate_authorities: [ “/etc/elasticsearch/certs/ca/ca.crt” ]
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.verification_mode: certificate
xpack.security.http.ssl.key: /etc/elasticsearch/certs/elasticsearch.key
xpack.security.http.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt
xpack.security.http.ssl.certificate_authorities: [ “/etc/elasticsearch/certs/ca/ca.crt” ]
3、重新启动服务:
#systemctl restart elasticsearch
配置Filebeat实例(Wazuh管理器实例)
1、创建目录/etc/filebeat/certs,然后在其中复制证书颁发机构,证书和密钥。
#cd /usr/share/elasticsearch
#mkdir /etc/filebeat/certs/ca -p
#cp ca/ca.crt /etc/filebeat/certs/ca
#cp wazuh-manager/wazuh-manager.crt /etc/filebeat/certs
#cp wazuh-manager/wazuh-manager.key /etc/filebeat/certs
#chmod 770 -R /etc/filebeat/certs
2、在中添加正确的设置/etc/filebeat/filebeat.yml。
#vim /etc/filebeat/filebeat.yml
output.elasticsearch.hosts: [‘192.168.2.40:9200’]
output.elasticsearch.protocol: https
output.elasticsearch.ssl.certificate: “/etc/filebeat/certs/wazuh-manager.crt”
output.elasticsearch.ssl.key: “/etc/filebeat/certs/wazuh-manager.key”
output.elasticsearch.ssl.certificate_authorities: ["/etc/filebeat/certs/ca/ca.crt"]
您可以使用来测试Filebeat输出。filebeat test output
3、重新启动服务:
#systemctl restart filebeat
配置Kibana实例
1、创建目录/etc/kibana/certs,然后在其中复制证书颁发机构,证书和密钥。
#cd /usr/share/elasticsearch
#mkdir /etc/kibana/certs/ca -p
#cp ca/ca.crt /etc/kibana/certs/ca
#cp kibana/kibana.crt /etc/kibana/certs
#cp kibana/kibana.key /etc/kibana/certs
#chown -R kibana: /etc/kibana/certs
#chmod -R 770 /etc/kibana/certs
2、在中添加正确的设置/etc/kibana/kibana.yml。
#vim /etc/kibana/kibana.yml //把原先的elasticsearch.hosts注销掉
elasticsearch.hosts: [“https://192.168.2.40:9200”]
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/ca/ca.crt"]
elasticsearch.ssl.certificate: “/etc/kibana/certs/kibana.crt”
elasticsearch.ssl.key: “/etc/kibana/certs/kibana.key”
server.ssl.enabled: true
server.ssl.certificate: “/etc/kibana/certs/kibana.crt”
server.ssl.key: “/etc/kibana/certs/kibana.key”
3、重启服务
#systemctl restart kibana
为Elasticsearch添加身份验证
1、将下一行添加到中/etc/elasticsearch/elasticsearch.yml。
#vim /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: true
2、重新启动Elasticsearch并等待服务准备就绪。
#systemctl restart elasticsearch
3、为所有Elastic Stack预置角色和用户生成凭证。
#/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
4、至少记下elastic用户的密码。
5、设置Filebeat的凭据。将后两行添加到中/etc/filebeat/filebeat.yml。
#vim /etc/filebeat/filebeat.yml
output.elasticsearch.username: “elastic”
output.elasticsearch.password: “password_generated_for_elastic”
6、重新启动Filebeat。
#systemctl restart filebeat
7、设置Kibana的凭据。将下一行添加到中/etc/kibana/kibana.yml。
#vim /etc/kibana/kibana.yml
xpack.security.enabled: true
elasticsearch.username: “elastic”
elasticsearch.password: “password_generated_for_elastic”
8、重新启动Kibana。
#systemctl restart kibana
您现在可以登录到Kibana Web界面,并使用弹性用户凭证登录: