前记
主要是最近在做EDR的研究和规则运营嘛~早就想搭一套自己的实验环境了,新年后开工第一周就迫不及待购置了两台云服务器!
惯例,对今天要使用的东西简单的介绍叭:
EDR:终端安全响应系统
Wazuh:强大的开源EDR,能够监视您的基础结构,检测威胁,入侵企图,系统异常,配置不当的应用程序和未经授权的用户操作。它还提供了事件响应和法规遵从性的框架(官方解释)
用户体验:兼容性强,轻松适应各种插件和二次开发,使用人数较多,极为详尽的文档,极其活跃的社区(这个真的是香的离谱,谁用谁知道!)
配置清单
两台国内云服务器,一台4H8G,起名叫大白兔,用于做Wazuh的server端以及ELK搭建
Wazuh版本为4.1.0,ES版本为7.10.0
一台2H4G,起名叫灰小兔,只安装一个Wazuh-agent
要求两台机器相互连通~亲测,只要买到一个地区就可以轻松连通
安装过程
先给大家放一下架构示意图
下面就是具体的安装步骤,其实官方文档就已经很详尽了,但是对于国内云来说还是有一些小的坑,下面会逐步介绍
大白兔安装Wazuh-server
1.添加Wazuh yum存储库
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/4.x/yum/ protect=1 EOF
2.安装和设置Wazuh-server
yum -y install wazuh-manager
systemctl start wazuh-manager
3.配置Wazuh-Manage以允许通过身份验证自动注册新agent
grep "<use_password>" -B7 -A8 /var/ossec/etc/ossec.conf
sed -i 's/<use_password>no/<use_password>yes/' /var/ossec/etc/ossec.conf
grep "<use_password>" -B7 -A8 /var/ossec/etc/ossec.conf
echo "这个地方要写你的密码!!!" > /var/ossec/etc/authd.pass
4.重新启动Wazuh-manager,并确认端口开放正常
systemctl restart wazuh-manager
netstat -natp | egrep "(:1514|:1515)"
这时回显为1514,1515开启则说明安装server端成功!
大白兔安装Filebeat
1.从Elastic和Elastic存储库安装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
2.安装fliebeat
yum -y install filebeat-7.10.0
3.从Wazuh存储库下载Filebeat配置文件。预先配置为将Wazuh警报转发到Elasticsearch
curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh/v4.1.0/extensions/filebeat/7.x/filebeat.yml
chmod go+r /etc/filebeat/filebeat.yml
4.下载Elasticsearch的警报模板
curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/v4.1.0/extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json
5.下载适用于Filebeat的Wazuh模块
curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.1.tar.gz | sudo tar -xvz -C /usr/share/filebeat/module
6.编辑您的Elasticsearch实例的特定IP地址并将其设置为Filebeat配置
sed -i 's/YOUR_ELASTIC_SERVER_IP/x.x.x.x/' /etc/filebeat/filebeat.yml
这里写ES机器地址,因为我们全在大白兔上,所以要写大白兔的内网地址!!
7.启用并启动Filebeat服务
systemctl daemon-reload
systemctl enable filebeat.service
systemctl start filebeat.service
8.禁用Wazuh和Elastic存储库,以防止可能导致与当前安装版本冲突的意外升级
sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo
sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/elastic.repo
大白兔安装Elasticsearch
1.先安装后续会用到的库
yum install zip unzip curl
2.导入GPG密钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
3.添加存储库
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
4.安装Elasticsearch
yum -y install elasticsearch-7.10.0
5.下载文件进行配置elasticsearch.yml
curl -so /etc/elasticsearch/elasticsearch.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.0/resources/elastic-stack/elasticsearch/7.x/elasticsearch.yml
6.配置实例
cat > /usr/share/elasticsearch/instances.yml <</EOF instances: - name: "elasticsearch" ip: - "x.x.x.x" - name: "filebeat" ip: - "x.x.x.x" - name: "kibana" ip: - "x.x.x.x" EOF
因为我们这些组件都在大白兔上,所以我们x.x.x.x的部分统一填大白兔的内网地址!
7.使用elasticsearch-certutil工具创建证书
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --keep-ca-key --out ~/certs.zip
8.创建目录/etc/elasticsearch/certs,然后在其中复制证书颁发机构,证书和密钥
unzip ~/certs.zip -d ~/certs
mkdir /etc/elasticsearch/certs/ca -p
#不晓得为什么这里不加注释会被打成敏感词嘤嘤嘤
cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/
chown -R elasticsearch: /etc/elasticsearch/certs
chmod -R 500 /etc/elasticsearch/certs
chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.*
rm -rf ~/certs/
9.启用并启动Elasticsearch服务
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
10.为所有Elastic Stack预置角色和用户生成凭证
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
这步生成的账号密码信息一定一定要存下来!!!
大白兔安装Kibana
1.安装Kibana
yum install kibana-7.10.0
2.证书放置
这步和上面那步有重复,为了便于大家整体理解,我没有合并操作:
unzip ~/certs.zip -d ~/certs
rm -f ~/certs/ca/ca.key
mkdir /etc/kibana/certs/ca -p
#不晓得为什么这里不加注释会被打成敏感词嘤嘤嘤
cp ~/certs/ca/ca.crt /etc/kibana/certs/ca
cp ~/certs/kibana/* /etc/kibana/certs/
chown -R kibana: /etc/kibana/certs
chmod -R 500 /etc/kibana/certs
chmod 400 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.*
rm -rf ~/certs ~/certs.zip
3.下载Kibana配置文件
curl -so /etc/kibana/kibana.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.0/resources/elastic-stack/kibana/7.x/kibana.yml
我在执行这条命令时会卡住不动,所以果断选择手动配置,网页打开这个yml文件,复制粘贴到/etc/kibana/kibana.yml文件里保存
4.编辑/etc/kibana/kibana.yml文件
server.host: "x.x.x.x" elasticsearch.hosts: ["https://x.x.x.x:9200"] elasticsearch.password: "上一步在安装ES生成用户里的elastic的密码"
x.x.x.x为大白兔的内网地址,密码是之前让大家记住的密码~
5.更新optimize和plugins目录权限
我就是从这一步开始和官方文档出现了极大的偏差,就好像略过了几步一样
chown -R kibana:kibana /usr/share/kibana/optimize
这里报错报没有此文件夹可以和我一样先新建一个文件夹
mkdir /usr/share/kibana/optimize
再执行上面那步修改权限的操作
chown -R kibana:kibana /usr/share/kibana/plugins
6.安装Wazuh Kibana插件
插件的安装必须从Kibana主目录完成
cd /usr/share/kibana
sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.1.0_7.10.0-1.zip
这个插件的github地址在这里~
https://github.com/wazuh/wazuh-kibana-app
拉到下面有Wazuh和ELK各版本对应的包的下载地址,需要的自行查看~一定要对应嗷~
7.将Kibana的套接字链接到特权端口443
setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node
8.编辑文件/usr/share/kibana/optimize/wazuh/config/wazuh.yml
很神奇的是,我现在就没有这个文件,所以我就touch了这个文件,然后在里面写入
hosts: - default: url: https://x.x.x.xport: 55000 username: wazuh password: wazuh run_as: false
x.x.x.x为大白兔的内网地址
8.启用并启动Kibana服务
systemctl daemon-reload
systemctl enable kibana
systemctl start kibana
9.呐~现在就可以访问Web界面了!
打开浏览器输入https://x.x.x.x,这里的x.x.x.x为大白兔的公网地址
账号为elastic,密码为之前初始化生成的密码,就可以登录进去了!!
此时在下这里就已经没有报错了!
但是不管你们存在什么样子的报错,主要就是使用
journalctl -u kibana
查看报错信息,调试一般是各个yml文件的配置问题~
到这里,大白兔的配置就配好啦~
灰小兔安装Wazuh-agent
1.添加Wazuh yum存储库
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/4.x/yum/ protect=1 EOF
2.安装并启动Wazuh-agent
WAZUH_MANAGER="x.x.x.x" WAZUH_REGISTRATION_PASSWORD="你自己在安装server设置的密码" /
x.x.x.x填大白兔的内网地址嗷~
WAZUH_PROTOCOL="tcp" yum -y install wazuh-agent
systemctl start wazuh-agent
3.验证代理已正确连接
grep ^status /var/ossec/var/run/ossec-agentd.state
当回显为
status='connected'
时表示Wazuh-agent安装成功!连接server端也成功!
最后的验证!
1.在大白兔上执行
/var/ossec/bin/agent_control -l
可以看到灰小兔的主机名~
2.在WEB界面上可以看到多了一台agent!
至此就安装好啦~Wazuh+ELK,呐~祝大家玩的愉快!

内蒙古 1F
这配置在阿里云上跑得起来吗?
福建省宁德市福安市 2F
国内云服务器连通性真这么稳?我上次搞内网互通折腾半天🤔
江苏省南通市 3F
前几天刚试过Wazuh 4.2,发现和4.1的filebeat配置有点不一样
韩国 4F
又是证书又是权限的,光看步骤就头大了hhh
韩国 5F
大白兔灰小兔这命名也太可爱了吧!666
台湾省台北市 6F
ES和Kibana装一块儿内存吃得消不?4H8G会不会卡?
辽宁省沈阳市 7F
按这个流程走了一遍,卡在kibana插件安装那步,求问有人遇到吗?
北京市 8F
感觉还行,就是文档链接好多都打不开啊
台湾省 9F
手动建optimize目录这步救我命了,官方文档真坑
北京市 10F
wazuh-agent连不上server,密码确认没错但一直status=disconnected,有老哥知道咋整?
江苏省南通市 11F
这个指南太实用了,收藏备用!
日本 12F
配置步骤写得挺清楚,适合新手入门
北京市 13F
Kibana插件安装那步我卡了好久,后来发现是权限问题
印度 14F
有没有人试过在腾讯云上部署?
湖南省张家界市 15F
内存8G够用吗?感觉ES比较吃资源
湖南省长沙市 16F
灰小兔这名字起得挺萌的233
中国 17F
证书配置那块儿有点复杂,新手可能比较难搞
越南 18F
我之前也在云上搭过,结果被防火墙坑惨了
四川省遂宁市 19F
这个和商业版EDR比起来怎么样?
湖南省株洲市 20F
起名叫大白兔和灰小兔也太可爱了叭!
印度 21F
@豆包 这配置看着就头疼
荷兰 B1
@ 夏目雨 新手看着是有点复杂,不过跟着官方文档一步步来,踩几个坑就熟悉了。
广东省广州市 22F
agent注册密码要记牢,我就因为输错重装了一次
印度 23F
期待后续的使用体验分享
上海市 24F
起名大白兔灰小兔太萌了哈哈
宁夏银川市 B1
@ 璀璨星团 哈哈,给服务器起个有趣的名字干活都开心点~
北京市 25F
配置过程中遇到报错,journalctl -u kibana确实很有用
日本 26F
两台服务器在同一区域就能内网互通?那还挺方便的
四川省南充市 27F
4.1版本现在还能用吗?要不要升级到新版?
印度 28F
配置步骤好详细,跟着搭一遍试试
宁夏银川市 B1
@ 暮雪白头 动手试试看,有问题随时交流~