HIDS之Wazuh的简易部署

作者: jjf012 | 来源:发表于2018-08-24 23:01 被阅读0次

简介

Wazuh是一个安全检测,可见性和合规性开源项目。它诞生于OSSEC HIDS的分支,后来与Elastic Stack和OpenSCAP集成,演变成更全面的解决方案。

大概的运行流程:

  1. 服务器上运行的Agent端会将采集到的各种信息通过加密信道传输到管理端。
  2. 管理端负责分析从代理接收的数据,并在事件与告警规则匹配时触发警报。
  3. LogStash会将告警日志或者监控日志发送到Elasticsearch上面,最后通过Kibana可视化展示日志。

分布式部署:在不同主机上运行Wazuh服务器和Elastic Stack集群(一个或多个服务器)。
单主机架构:在同一系统上运行Wazuh服务器和Elastic Stack
两者的主要差别在于,前者需要使用FileBeatLogstash进行日志传输,后者直接本机读取日志文件。
这里使用单机部署。

官方英文文档

服务端部署

更换软件源

如果网速比较慢的可以更换为国内软件源,默认情况下并不用
yum repolist查看当前使用的源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 备份原来的源
wget http://mirrors.aliyun.com/repo/Centos-7.repo 下载阿里云centos7源
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 下载163 centos7源
mv 你下载的源 /etc/yum.repos.d/CentOS-Base.repo
yum clean all && yum makecache 清理并重建yum缓存

安装软件包

服务器系统CentOS 7.5 64位版,官网下载最新软件包。(官方软件包更新的很快,已经到3.7.2版,当时写的时候还是3.5版,开源的魅力)

https://packages.wazuh.com/3.x/apt/pool/main/w/wazuh-manager/wazuh-manager_3.5.0-1_amd64.deb
https://packages.wazuh.com/3.x/apt/pool/main/w/wazuh-api/wazuh-api_3.5.0-1_amd64.deb
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.2-amd64.deb
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.deb
https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-amd64.deb

yum install epel-release,安装扩展库
然后再安装nodejs、npm,是wazuh-api和Kibana的运行环境。设置好JDK环境变量供elastic stack使用。(具体安装过程官方文档

因为elasticsearch记录的时间是按照服务器自身时间,所以需要校准时间以免错乱(要不然在kibana上看的时间与现实时间差别太大)

yum -y install ntp ntpdate
ntpdate cn.ntp.org.cn
hwclock --systohc #系统时间写入硬件时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime    #linux的时区设置为上海时区

然后rpm -ivh各种包,注意要先安装wazuh-manager,再安装wazuh-api,有了这个api就可以通过http请求进行管理操作了。

  • systemctl enable xxx 设为自启动服务
  • systemctl start xxx 启动指定服务
  • systemctl status xxx 查看服务情况
  • systemctl stop xxx 停止指定服务。

几个步骤要注意:(注意:下面命令中的版本不一定是最新的)

  1. 一个是es安装完毕后建立模板
    curl https://raw.githubusercontent.com/wazuh/wazuh/3.7/extensions/elasticsearch/wazuh-elastic6-template-alerts.json | curl -XPUT 'http://localhost:9200/_template/wazuh' -H 'Content-Type: application/json' -d @-

  2. logstash安装完毕后下载配置文件(这里是elasticsearch和manager没有分离部署,直接读取的本地ossec文件)
    curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/3.7/extensions/logstash/01-wazuh-local.conf

  3. kibana安装完毕后设置环境变量export NODE_OPTIONS="--max-old-space-size=3072",以及安装wazuh app/usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.0_6.5.1.zip

  4. 如果是单机部署则不需要安装filebeat,因为logstash可以直接读取ossec的alert.json

  5. 重新配置wazuh-api的连接密码,在wazuh-app中调用

cd /var/ossec/api/configuration/auth
node htpasswd -c user myUserName
  1. alert.json要设置权限,否则logstash不能读取。usermod -a -G ossec logstash

防火墙开放端口

这里使用firewall-cmd来配置。

[root@localhost ~]# firewall-cmd --list-all #查看规则情况
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

firewall-cmd --add-port=1515/tcp --permanent
1515端口是给agent来获取认证key的,还有1514/udp管理端监听端口,5601/tcp Kibana端口,55000/tcp Wazuh-api 端口看情况开放,--permanent表示永久保存。
最后firewall-cmd --reload重载规则生效。

Agent 注册

所有的软件包
管理端
防火墙要开启1515端口
如果要禁止重复ip或者计算机名注册,需要修改etc/ossec.conf

<auth>
    <force_insert>yes</force_insert>
    <force_time>0</force_time>
</auth>

0表示一旦该项有新的agent过了0秒后删除旧的agent
/var/ossec/bin/ossec-authd 可以用-h查看可用参数
使用密码验证 echo "TopSecret" > /var/ossec/etc/authd.pass
然后bin/ossec-authd -P -a

Windows客户端
这里下载Windows的msi包
bin/agent-auth -m 管理端ip -P "管理端密码"


输入管理ip后保存,然后启动Agent服务。

Linux客户端
centos为例,上一步注册完毕后,需要修改/var/ossec/etc/ossec.confclient节点address

<ossec_config>
  <client>
    <server>
      <address>10.0.0.10</address>
      <protocol>udp</protocol>
    </server>
  </client>
</ossec_config>

保存后systemctl restart wazuh-agent,没有systemctl可以使用service wazuh-agent restart

接下来打开安装好Wazuh App的Kibana,设置好与Wazuh Api的连接,红框表示你之前设置的密码


选择Agent可以看到确实连接成功了


在命令行可以用./bin/agent_control -l查看

错误处置

参考官方

如果看不到告警信息,运行lsof /var/ossec/logs/alerts/alerts.json
单机部署应该能看到ossec-analysisd and java两个进程在读取这个文件。
分布式部署看到ossec-analysisdand filebeat

查看运行日志中记录的错误
查看 Elastic Stack log files:

cat /var/log/elasticsearch/elasticsearch.log | grep -i -E "error|warn"
cat /var/log/filebeat/filebeat | grep -i -E "error|warn"
cat /var/log/logstash/logstash-plain.log | grep -i -E "error|warn"

查看Wazuh app log file:
cat /usr/share/kibana/plugins/wazuh-logs/wazuhapp.log | grep -i -E "error|warn"
查看Wazuh Manager log file:
cat /var/ossec/logs/ossec.log | grep -i -E "error|warn"
根据错误信息去谷歌找解决办法。

相关文章

网友评论

    本文标题:HIDS之Wazuh的简易部署

    本文链接:https://www.haomeiwen.com/subject/lbniiftx.html