日渐重要的主机安全管理

随着各种数字币风起云涌的发展,原本以运行Linux系统为主、少有病毒或木马侵扰的企业主机安全管理领域也越发变得不太平起来了,各色人等为了获得“免费”的企业级算力挖币,纷纷打起了企业服务器的主意。企业应用信息安全的管理已经不再满足于仅仅配备几个“网络安全”设备了,仅做到这一点的话,恐怕会连目前的等级保护三级标准也通过不了。
目前一些有实力的大厂都有自研的Linux主机安全管理工具,也有几家专做安全产品企业服务的厂商推出了商用产品,几大公有云厂商的云应用商店里也都将主机安全产品与云防火墙、DDos防护打包提供给客户了。

相较网络安全防护产品而言,主机安全产品的成本投入会更高一些,因为这需要在每个主机上都安装agent节点,计费基本上都是按节点数量收费。对于有一定运营规模的企业来说,使用几百个物理机、虚机或云主机都是很常见的,全面部署商用主机安全产品的成本压力很大。

今天我们给大家介绍的这款开源主机安全产品——Wazuh,是免费的开源软件。其组件遵守GNU通用公共许可证2版和Apache许可证2.0版(ALv2)。Wazuh平台提供XDR和SIEM功能来保护云、容器和服务器工作负载。其中包括日志数据分析、入侵和恶意软件检测、文件完整性监控、配置评估、漏洞检测,以及支持检查对法规遵从性的检测。

几个安全专业名词:

  • XDR(跨层检测与响应)
  • EDR(端点检测与响应)
  • NTA(网络流量分析)
  • SIEM(安全信息与事件管理)

Wazuh的使用场景

  • 日志数据分析
  • Rootkits检测
  • 配置评估
  • 脆弱性检测
  • 容器服务安全
  • 文件完整性监控
  • 主动响应并扼制
  • 系统资源清单管理
  • 云服务安全
  • 法规遵从

Wazuh主要组件

Wazuh解决方案基于部署在受监控端点上的Wazuh agent,以及三个核心组件:Wazuh服务器、Wazuh索引器和Wazuh仪表盘。

  • Wazuh indexer:一个高扩展性的全文检索与分析引擎
  • Wazuh server:用于配置和管理agents,接收agents发送的数据并解析,单实例部署可以支持几百到几千个agents,支持集群模式以提供更大的处理能力。
  • Wazuh dashboard:Web UI,主要用于安全事件、法规遵从、入侵检测、文件完整性监控及配置评估结果的可视化展示,也用于Wazuh的服务配置与状态监控。
  • Wazuh agents:安装在各种类型终端上的软件,支持Linux, Windows, macOS, Solaris, AIX, and HP-UX。提供威胁预防、检测和响应能力。

在这里插入图片描述

除了基于agent的监控功能外,Wazuh平台还可以监控agentless设备,如防火墙、交换机、路由器或IDS等。例如,可以通过Syslog收集系统日志数据,并且可以通过SSH或API定期探测其数据来监视其配置。

Wazuh部署架构

对于业务负载较重的场景,建议将server与indexer分别部署在不同的主机节点,视负载大小还可以选择进行server/indexer的单实例或集群模式部署。

在这里插入图片描述

Wazuh的组件间通信与常用端口

Wazuh agent与Wazuh server的通信

Wazuh server默认监听1514端口,用于处理与agents的通信,默认使用AES加密传输。
接收到的数据会保存到以下默认路径:

  • /var/ossec/logs/archives/archives.json,保存从agents收到的所有事件消息,建议部署cron定时任务以只保持近期数据,避免发生存储空间满的故障
  • /var/ossec/logs/alerts/alerts.json,保存匹配上识别规则的事件消息

Wazuh server与Wazuh indexer的通信

Wazuh server通过TLS加密,使用Filebeat将警报和事件数据发送到Wazuh indexer。Filebeat读取Wazuh server输出数据并将其发送到Wazuh indexer(默认情况下,侦听端口9200/TCP)。一旦数据被Wazuh indexer索引,Wazuh仪表盘将用于进一步信息挖掘和可视化展示。

Wazuh仪表盘查询Wazuh RESTful API(默认情况下监听Wazuh server上的55000/TCP端口),以显示Wazuh server和agent的配置和状态相关信息。

Wazuh使用的服务端口与默认值

在这里插入图片描述

Wazuh的单实例部署与体验

为体验Wazuh的功能,我们可以在测试环境快速部署一个单实例的服务,即Wazuh server, Wazuh indexer 和 Wazuh dashboard都部署在一个主机上面。

主机操作系统建议:CentOS7/8,Ubuntu 16.04/18.04/20.04/22.04

安装Wazuh:

$ curl -sO https://packages.wazuh.com/4.3/wazuh-install.sh && sudo bash ./wazuh-install.sh -a

在需要监控的终端主机上部署Wazuh agent软件,参考方法:https://documentation.wazuh.com/current/installation-guide/wazuh-agent/index.html

安装Linux Wazuh agnet:

rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH

cat > /etc/yum.repos.d/wazuh.repo << EOF
[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=1
EOF
WAZUH_MANAGER="10.0.0.2" yum install wazuh-agent

systemctl daemon-reload
systemctl enable wazuh-agent
systemctl start wazuh-agent

更多部署agent可用的选项请见 Deployment variables for Linux
关于Wazuh agent注册方法请见 Wazuh agent enrollment

禁用Wazuh agent的更新,以避免agent的版本因为不小心而升级为高于server的版本:

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

怎么样删除删除Wazuh服务:

$ sudo bash ./wazuh-install.sh --uninstall

注:如果网络条件差,yum安装报错,可以试下从官网下载相关的rpm包进行安装 https://documentation.wazuh.com/current/installation-guide/packages-list.html

集成部署Wazuh 与 Elastic Stack basic license

实现了Wazuh与Elastic Stack的功能集成,消息数据存储到Elastic并基于Elastic Stack进行数据的检索与图表化展示。

有两种部署方式:

注:以下测试,我们都是基于centos7系统展开的。

安装几个工具包

yum install zip unzip curl

安装Elasticsearch

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

yum install elasticsearch-7.10.2

elastic配置文件:

curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/elasticsearch_all_in_one.yml

安装数字证书:

curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/instances_aio.yml
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --keep-ca-key --out ~/certs.zip

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/ ~/certs.zip

chown -R elasticsearch.elasticsearch /etc/elasticsearch/

注意需要使用到jdk8

设置服务启动方式:

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

创建Elastic Stack pre-built roles and users:

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

检查下安装结果:

curl -XGET https://localhost:9200 -u elastic:<elastic_password> -k

安装Wazuh server

Wazuh server负责从agents收集数据并进行分析,主要包括了Wazuh manager、Wazuh API和Filebeat三个组件。

rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH

cat > /etc/yum.repos.d/wazuh.repo << EOF
[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=1
EOF

安装wazuh-manager:

yum install wazuh-manager

systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager

安装Filebeat:
用于将报警事件和归档消息转发到Elasticsearch存储。

yum install filebeat-7.10.2

filebeat的配置文件:

curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/filebeat_all_in_one.yml

Wazuh报警配置模板:

curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.3/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

更新/etc/filebeat/filebeat.yml配置文件中的密码信息:

output.elasticsearch.password: <elasticsearch_password>

将上面password参数值设置为elastic用户的密码

部署证书:

cp -r /etc/elasticsearch/certs/ca/ /etc/filebeat/certs/
cp /etc/elasticsearch/certs/elasticsearch.crt /etc/filebeat/certs/filebeat.crt
cp /etc/elasticsearch/certs/elasticsearch.key /etc/filebeat/certs/filebeat.key

启动Filebeat:

systemctl daemon-reload
systemctl enable filebeat
systemctl start filebeat

测试安装结果:

filebeat test output

安装Kibana:

yum install kibana-7.10.2

部署证书:

mkdir /etc/kibana/certs/ca -p
cp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/
cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.key
cp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crt
chown -R kibana:kibana /etc/kibana/
chmod -R 500 /etc/kibana/certs
chmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.*

curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.3/tpl/elastic-basic/kibana_all_in_one.yml

编辑/etc/kibana/kibana.yml,更新密码:

elasticsearch.password: <elasticsearch_password>

password参数值设置为elastic用户的密码

mkdir /usr/share/kibana/data
chown -R kibana:kibana /usr/share/kibana

安装Wazuh 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.3.5_7.10.2-1.zip

允许kibana用户使用443端口:

setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node

登录web平台:

URL: https://<wazuh_server_ip>
user: elastic
password: <PASSWORD_elastic>

禁用wazuh,elastic的yum安装源,以避免部分软件包被自动更新而导致出现兼容性问题:

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

安装Wazuh agent

找一个测试机,安装Wazuh agent,用于验证测试相关功能。
https://documentation.wazuh.com/current/installation-guide/wazuh-agent/index.html

rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH

cat > /etc/yum.repos.d/wazuh.repo << EOF
[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=1
EOF

WAZUH_MANAGER="IP-OF-WAZUH-MANAGER" yum install wazuh-agent

请将WAZUH_MANAGER参数值替换为Wazuh-manager主机的IP地址

systemctl daemon-reload
systemctl enable wazuh-agent
systemctl start wazuh-agent

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

登录kibana web平台查看配置结果

从下面的截图可以看到,Wazuh提供的安全管理功能是非常丰富的,有很多维度和层次,图形化界面的展示使用体验也很不错。
在这里插入图片描述
在这里插入图片描述
接下来, 我们还将在后续的文章中继续分享Wazuh的生产环境分布式部署方案与实践,以及信息安全管理需求的定制化配置模板的设计与实现。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐