部署Wazuh Agent常用的环境变量
Linux系统下的常用环境变量:
- WAZUH_MANAGER
- WAZUH_MANAGER_PORT
- WAZUH_PROTOCOL
- WAZUH_REGISTRATION_SERVER
- WAZUH_REGISTRATION_PORT
- WAZUH_REGISTRATION_PASSWORD
- WAZUH_KEEP_ALIVE_INTERVAL
- WAZUH_TIME_RECONNECT
- WAZUH_REGISTRATION_CA
- WAZUH_REGISTRATION_CERTIFICATE
- WAZUH_REGISTRATION_KEY
- WAZUH_AGENT_NAME
- WAZUH_AGENT_GROUP
- ENROLLMENT_DELAY
变量参数的详细说明,可以参见:https://documentation.wazuh.com/current/user-manual/reference/ossec-conf/client.html
其它操作系统环境,请参见:https://documentation.wazuh.com/current/user-manual/deployment-variables/deployment-variables.html
使用示例:
WAZUH_MANAGER="10.0.0.2" WAZUH_REGISTRATION_PASSWORD="TopSecret" \
WAZUH_AGENT_NAME="yum-agent" yum install wazuh-agent
WAZUH_MANAGER="10.0.0.2" WAZUH_REGISTRATION_SERVER="10.0.0.2" WAZUH_REGISTRATION_PASSWORD="TopSecret" \
WAZUH_AGENT_GROUP="my-group" yum install wazuh-agent
WAZUH_MANAGER="10.0.0.2" WAZUH_REGISTRATION_SERVER="10.0.0.2" WAZUH_AGENT_NAME="yum-agent" \
WAZUH_REGISTRATION_CA="rootCA.pem" yum install wazuh-agent
WAZUH_MANAGER="10.0.0.2,10.0.0.3" WAZUH_REGISTRATION_SERVER="10.0.0.2" \
WAZUH_AGENT_NAME="yum-agent" yum install wazuh-agent
WAZUH_MANAGER "10.0.0.2" WAZUH_REGISTRATION_SERVER "10.0.0.2" WAZUH_REGISTRATION_KEY "/var/ossec/etc/sslagent.key" \
WAZUH_REGISTRATION_CERTIFICATE "/var/ossec/etc/sslagent.cert" yum install wazuh-agent
Wazuh agent 注册
Agent 注册是将Wazuh Agent注册为Wazuh安全管理服务的授权成员的过程。
Agent 注册包含以下工作:
- Wazuh manager可以批准Agent注册并为其生成唯一密钥。
- 使用密钥加密manager和agent之间的通信。
- 验证与manager通信的agent的身份。
注册方法:
- 通过agent配置进行注册:一旦指定了manager的IP地址,agent将能够自动请求密钥并将其导入。这是推荐的注册方法。
- 通过manager API进行注册:用户需要先从manager API请求密钥,然后手动将其导入agent以完成注册过程。
依赖条件:
- 已安装并正在运行的Wazuh manager服务。
- 在用户需要注册的主机节点上安装并运行Wazuh agent。
- 放行从Wazuh agent到Wazuh manager服务的出站连接。
以下端口可配置:
- 1514/TCP for agent communication.
- 1515/TCP for enrollment via automatic agent request.
- 55000/TCP for enrollment via manager API.
/var/ossec/etc/ossec.conf配置文件,
配置标签: <client>
<server>
<address>MANAGER_IP</address>
</server>
</client>
- 以上配置将允许agent连接到manager并自动获取一个密钥。
可选地,使用下面更加定制化的配置方法:
/var/ossec/etc/ossec.conf配置文件,配置标签:
<client>
<enrollment>
<agent_name>EXAMPLE_NAME</agent_name>
<groups>GROUP1,GROUP2,GROUP3</groups>
</enrollment>
</client>
- 在完成agent注册的同时,可以指定agent name, groups属性设置。
以上配置变更,需要重启agent服务以生效:
systemctl restart wazuh-agent
通过manager API进行agent注册的方法,实际上是将上面自动注册的步骤拆解并由人工方式完成,包括了登录接口获取token、请求获取key密钥以及在agent本地导入密钥等操作步骤,详情可参见:https://documentation.wazuh.com/current/user-manual/agent-enrollment/via-manager-API/index.html 。
Wazuh agent 注册的附加安全选项
注:以下安全选项不支持API注册方式。
增加密码认证
manager服务节点的 /var/ossec/etc/ossec.conf文件,增加auth标签:
<auth>
<use_password>yes</use_password>
</auth>
manager服务节点增加/var/ossec/etc/authd.pass文件,用于维护一个密码参数:
echo "<CUSTOM_PASSWORD>" > /var/ossec/etc/authd.pass
chmod 644 /var/ossec/etc/authd.pass
chown root:wazuh /var/ossec/etc/authd.pass
systemctl restart wazuh-manager
注:如果未维护一个authd.pass的文件,则在重启manager服务后会在 /var/ossec/logs/ossec.log中打印一个随机密码,需要注意的是该随机密码在重启manager服务时会随之变化。
在Wazuh agent侧增加密码文件 /var/ossec/etc/authd.pass:
echo "<CUSTOM_PASSWORD>" > /var/ossec/etc/authd.pass
chmod 644 /var/ossec/etc/authd.pass
chown root:wazuh /var/ossec/etc/authd.pass
增加访问manager服务时的身份验证
如果在部署Wazuh服务时已经一次性制作好了所有服务组件的证书文件,那可以跳过制作manager服务证书的步骤。
否则,请参考下面链接为manager服务生成一份证书文件:
https://documentation.wazuh.com/current/user-manual/agent-enrollment/security-options/manager-identity-verification.html
设置agent服务在注册时引用根证书 /var/ossec/etc/ossec.conf:
<client>
<server>
<address>MANAGER_IP</address>
</server>
<enrollment>
<server_ca_path>/path/to/rootCA.pem</server_ca_path>
</enrollment>
</client>
增加访问agent服务时的身份验证
如果在部署Wazuh服务时已经一次性制作好了所有服务组件的证书文件,那可以跳过制作agent证书的步骤。
否则,请参考下面链接为Wazuh agent生成一份证书文件:
https://documentation.wazuh.com/current/user-manual/agent-enrollment/security-options/agent-identity-verification.html
Wazuh manager节点:
需确认部署了/var/ossec/etc/rootCA.pem证书文件。
需要在/var/ossec/etc/ossec.conf中增加引用agent证书的配置参数:
<auth>
<ssl_agent_ca>/var/ossec/etc/rootCA.pem</ssl_agent_ca>
</auth>
Wazuh agent节点:
将agent证书 sslagent.cert 、sslagent.key部署到agent节点上一份。
在agent节点 /var/ossec/etc/ossec.conf中增加引用证书文件的配置参数:
<client>
<server>
<address>MANAGER_IP</address>
</server>
<enrollment>
<agent_certificate_path>CERTIFICATE_PATH</agent_certificate_path>
<agent_key_path>KEY_PATH</agent_key_path>
</enrollment>
</client>
在变更配置和重启服务后,如果出现服务异常或报错,那么优先通过查看日志 /var/ossec/logs/ossec.log 进行原因分析。
管理Wazuh agent
查看与删除agent
查看所有agents的命令: /var/ossec/bin/agent_control -l
查看连接状态的agents的命令:/var/ossec/bin/manage_agents -l
此外,也可以登录Wazuh web界面,在Agents标签页中查看和管理agents。
删除agents的命令:/var/ossec/bin/manage_agents,需人工交互式选择并确认
或者可以免确认式操作,删除指定ID的agent:
/var/ossec/bin/manage_agents -r 001
Wazuh agent的分组配置
有两种方式配置agent的分组功能,一个是本地配置方式,另一个是通过远程集中配置的方式,后一方式更有利于灵活、高效的对agents进行分组管理。
我们接下来,主要介绍远程集中配置agent分组的方法。
将ID为002的agent加入到名为dbms的分组中:
/var/ossec/bin/agent_groups -a -i 002 -g dbms
查看dbms组中有哪些agents:
/var/ossec/bin/agent_groups -l -g dbms
当创建了一个新的分组后,会生成以下相应的组配置文件,我们针对该组配置文件做的变更会自动同步到组内所有的agents节点上去:
/var/ossec/etc/shared/dbms/agent.conf
- 这个组配置文件变更信息的分发同步操作并不是实时的,但会在20min内完成
将一个agent加入到多个分组的方法:
/var/ossec/bin/agent_groups -a -i 001 -g webserver
/var/ossec/bin/agent_groups -a -i 001 -g apache
查询一个agent属于哪些分组的方法:
/var/ossec/bin/agent_groups -s -i 001
- 注意,当agent从属于多个分组时,越是排位在后面的分组,其优先级越高
重置agent的分组设置的方法:
/var/ossec/bin/agent_groups -a -f -i 001 -g apache
- 增加了一个-f参数,会完全覆盖掉旧有的分组信息
查看指定agent分组信息的数据同步状态:
/var/ossec/bin/agent_groups -S -i 001
查看服务配置信息
登录web控制台后,可以查看接入管理的agents配置参数信息,可以查看和管理manager配置信息,以及对接受管理的agents做管理。