日渐重要的主机安全管理
随着各种数字币风起云涌的发展,原本以运行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 &&sudobash ./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服务:
$ sudobash ./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进行数据的检索与图表化展示。
有两种部署方式:
- All-in-one deployment ,单机部署所有,用于测试或小规模环境。
- Distributed deployment 在这里,我们通过部署一套All-in-one的环境,给大家做一个演示。
注:以下测试,我们都是基于centos7系统展开的。
安装几个工具包
yum installzipunzipcurl
安装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
chmod400 /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
chmod440 /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
EOFWAZUH_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的生产环境分布式部署方案与实践,以及信息安全管理需求的定制化配置模板的设计与实现。
版权归原作者 运维个西瓜 所有, 如有侵权,请联系我们删除。