代理生命周期
注冊代理
一旦代理程序安裝在要監控的計算機上,就必須向Wazuh管理器注冊才能建立通信。這可以通過命令行,Authd或RESTful API完成。
注冊代理將保留在管理器中,直到用戶將其刪除。在任何給定時間內,代理可能有四種不同的狀態,如下圖所示:

代理狀態
- 從未連接:代理已注冊但尚未連接到管理器。
- 待定 身份驗證過程正在等待:管理服務器已收到來自代理的連接請求,但尚未收到任何其他內容。這可能表示防火牆問題。代理將在其連接生命周期中處於此狀態一次。
- 活動:代理已成功連接,現在可以與管理器通信。
- 已斷開連接:如果代理在半小時內未收到來自代理的任何消息,則管理員將認為代理已斷開連接。
刪除代理
從agent主機的管理器中刪除代理程序后,連接生命周期即將結束。這可以通過RESTful API,命令行或Authd完成(如果啟用了force選項)。
強制插入
如果您嘗試添加具有已注冊到其他代理的IP地址的代理,該
manage_agents
命令將返回錯誤。您仍然可以使用-F選項強制添加。列如:
安裝了名為Server1的IP 10.0.0.10 的代理,並且ID為005.如果我們假設必須重新安裝服務器,則必須重新安裝新的代理並將其連接到管理器。在這種情況下,我們可以使用參數-F 0,這意味着將刪除先前的代理(005)(使用備份),並且將使用IP重新創建新代理。新代理將具有新ID:
/var/ossec/bin/manage_agents -n Server1 -a 10.10.10.10 -F 0列出代理
運行 /var/ossec/bin/agent_control 可列出代理的連接狀態:
[root@wazhu-manage ~]# /var/ossec/bin/agent_control -lWazuh agent_control. List of available agents:ID: 000, Name: wazhu-manage (server), IP: 127.0.0.1, Active/LocalID: 001, Name: agent01, IP: 45.77.105.194, ActiveID: 002, Name: agent02, IP: 155.138.165.154, ActiveID: 003, Name: agent03, IP: 45.77.93.54, ActiveID: 004, Name: agent04, IP: 45.77.4.139, ActiveList of agentless devices:刪除代理
運行 /var/ossec/bin/manage_agents 刪除代理
如果要在刪除代理之前進行確認,請使用以下命令:
[root@wazhu-manage ~]# /var/ossec/bin/manage_agents***************************************** Wazuh v3.8.0 Agent manager. ** The following options are available: *****************************************(A)dd an agent (A).(E)xtract key for an agent (E).(L)ist already added agents (L).(R)emove an agent (R).(Q)uit.Choose your action: A,E,L,R or Q: RAvailable agents:ID: 001, Name: agent01, IP: 45.77.105.194ID: 002, Name: agent02, IP: 155.138.165.154ID: 003, Name: agent03, IP: 45.77.93.54ID: 004, Name: agent04, IP: 45.77.4.139Provide the ID of the agent to be removed (or '\q' to quit): 004Confirm deleting it?(y/n): YAgent '004' removed.***************************************** Wazuh v3.8.0 Agent manager. ** The following options are available: *****************************************(A)dd an agent (A).(E)xtract key for an agent (E).(L)ist already added agents (L).(R)emove an agent (R).(Q)uit.Choose your action: A,E,L,R or Q: Q如果您想在沒有確認的情況下刪除代理,請使用以下選項:
# /var/ossec/bin/manage_agents -r 001 **************************************** * Wazuh v3.8.0 Agent manager. * * The following options are available: * **************************************** (A)dd an agent (A). (E)xtract key for an agent (E). (L)ist already added agents (L). (R)emove an agent (R). (Q)uit. Choose your action: A,E,L,R or Q: Available agents: ID: 001, Name: new, IP: any Provide the ID of the agent to be removed (or '\q' to quit): 001 Confirm deleting it?(y/n): y Agent '001' removed. ** You must restart OSSEC for your changes to take effect. manage_agents: Exiting.列出代理連接狀態
請求GET /agents 返回可用代理列表。
注意:GET是curl的默認操作,不需要特別引用。
[root@wazhu-manage ~]# curl -u wazuh-api:wazu123 "http://149.248.9.0:55000/agents?pretty"{"error": 0,"data": {"totalItems": 5,"items": [{"status": "Active","name": "wazhu-manage","ip": "127.0.0.1","manager": "wazhu-manage","node_name": "node01","dateAdd": "2019-01-21 09:58:43","version": "Wazuh v3.8.0","lastKeepAlive": "9999-12-31 23:59:59","os": {"major": "7","name": "CentOS Linux","uname": "Linux |wazhu-manage |3.10.0-957.1.3.el7.x86_64 |#1 SMP Thu Nov 29 14:49:43 UTC 2018 |x86_64","platform": "centos","version": "7","codename": "Core","arch": "x86_64"},"id": "000"},{"status": "Active","configSum": "ab73af41699f13fdd81903b5f23d8d00","group": ["default"],"name": "agent01","mergedSum": "f8d49771911ed9d5c45b03a40babd065","ip": "45.77.105.194","manager": "wazhu-manage","node_name": "node01","dateAdd": "2019-01-22 07:14:26","version": "Wazuh v3.8.0","lastKeepAlive": "2019-01-22 18:11:46","os": {"major": "16","name": "Ubuntu","uname": "Linux |agent01 |4.4.0-137-generic |#163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 |x86_64","platform": "ubuntu","version": "16.04.5 LTS","codename": "Xenial Xerus","arch": "x86_64","minor": "04"},"id": "001"},{"status": "Active","configSum": "ab73af41699f13fdd81903b5f23d8d00","group": ["default"],"name": "agent02","mergedSum": "f8d49771911ed9d5c45b03a40babd065","ip": "155.138.165.154","manager": "wazhu-manage","node_name": "node01","dateAdd": "2019-01-22 09:29:21","version": "Wazuh v3.8.0","lastKeepAlive": "2019-01-22 18:11:39","os": {"major": "16","name": "Ubuntu","uname": "Linux |agent02 |4.4.0-137-generic |#163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 |x86_64","platform": "ubuntu","version": "16.04.5 LTS","codename": "Xenial Xerus","arch": "x86_64","minor": "04"},"id": "002"},{"status": "Active","configSum": "ab73af41699f13fdd81903b5f23d8d00","group": ["default"],"name": "agent03","mergedSum": "f8d49771911ed9d5c45b03a40babd065","ip": "45.77.93.54","manager": "wazhu-manage","node_name": "node01","dateAdd": "2019-01-22 10:15:26","version": "Wazuh v3.8.0","lastKeepAlive": "2019-01-22 18:11:42","os": {"major": "16","name": "Ubuntu","uname": "Linux |agent03 |4.4.0-137-generic |#163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 |x86_64","platform": "ubuntu","version": "16.04.5 LTS","codename": "Xenial Xerus","arch": "x86_64","minor": "04"},"id": "003"},{"status": "Active","configSum": "ab73af41699f13fdd81903b5f23d8d00","group": ["default"],"name": "agent04","mergedSum": "f8d49771911ed9d5c45b03a40babd065","ip": "45.77.4.139","manager": "wazhu-manage","node_name": "node01","dateAdd": "2019-01-22 10:34:01","version": "Wazuh v3.8.0","lastKeepAlive": "2019-01-22 18:11:43","os": {"major": "16","name": "Ubuntu","uname": "Linux |agent04 |4.4.0-137-generic |#163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 |x86_64","platform": "ubuntu","version": "16.04.5 LTS","codename": "Xenial Xerus","arch": "x86_64","minor": "04"},"id": "004"}]}}刪除代理
請求DELETE /agents/:agent_id刪除指定的代理。
[root@wazhu-manage ~]# curl -u wazuh-api:wazuh -X DELETE "http://149.248.9.0:55000/agents/003"{"error":0,"data":{"msg":"All selected agents were removed","affected_agents":["003"]}}
檢查與Manager的連接
在檢查代理與管理器的連接之前,請首先確保代理指向管理器的IP地址。這是ossec.conf
使用<client>
XML標記設置的。有關詳細信息,請參閱客戶端參考。
<ossec_config><client><server><address>149.248.9.0/address><protocol>udp</protocol></server></client></ossec_config>
這將設置149.248.9.0作為Wazuh Manager服務器。完成此操作后,您需要重新啟動代理:
a.For Systemd:
# systemctl restart wazuh-agent
b.For SysV Init:
# service wazuh-agent restart
注冊代理並且已成功連接后,您可以看到連接到管理器的代理列表:
[root@wazhu-manage ~]# /var/ossec/bin/agent_control -lc #代理管理器
Wazuh agent_control. List of available agents:
ID: 000, Name: wazhu-manage (server), IP: 127.0.0.1, Active/Local
ID: 001, Name: agent01, IP: 45.77.105.194, Active
ID: 002, Name: agent02, IP: 155.138.165.154, Active
您還可以通過驗證是否已建立與管理器的UDP連接來檢查代理是否正確連接:
root@agent02:~# netstat -vatunp|grep ossec-agentd #代理客服端上
udp 0 0 155.138.165.154:58599 149.248.9.0:1514 ESTABLISHED 5088/ossec-agentd
結果應與代理和管理器IP地址匹配。
在agent_control部分中,您可以找到有關向管理器注冊的代理的狀態的信息。
分組代理
3.0.0版中的新功能。
配置注冊代理有兩種方法。可以使用ossec.conf文件在本地配置它們,也可以使用集中配置遠程配置它們。如果使用集中式配置,則可以將代理分配給組,每個組具有唯一的配置。這極大地簡化了整個配置過程。
除非另行指定,否則所有新代理都自動屬於“默認”組。在安裝過程中創建此組,並將配置文件放在/var/ossec/etc/shared/default/
文件夾中。這些文件將從管理器推送到屬於該組的所有代理。
1.以下是將代理分配給具有特定配置的組的步驟:
將代理添加到管理器后,使用agent_groups工具或 API將其分配給組。以下方法是將具有ID 002的代理分配給組“test01”示列:
使用agent_groups:
[root@wazhu-manage default]# cd /var/ossec/etc/shared
[root@wazhu-manage shared]# mkdir test01
[root@wazhu-manage shared]# /var/ossec/bin/agent_groups -a -i 002 -g test01
Do you want to add the group 'test01' to the agent '002'? [y/N]: y
Group 'test01' added to agent '002'.
使用API:
# curl -u wazuh-api:wazuh -X PUT "http://localhost:55000/agents/002/group/test01?pretty"
注意:必須在分配代理之前創建和配置該組。
2.可以使用以下命令之一檢查代理程序的組分配:
使用agent_groups:
[root@wazhu-manage shared]# /var/ossec/bin/agent_groups -l -g test01
1 agent(s) in group 'test01':
ID: 002 Name: agent02.
使用API:
[root@wazhu-manage test01]# curl -u wazuh-api:wazuh -X GET "http://localhost:55000/agents/groups/test01?pretty"
{
"error": 0,
"data": {
"totalItems": 1,
"items": [
{
"status": "Active",
"configSum": "1a0e4e4aa11b2b284200925e3026090f",
"group": [
"default",
"test01"
],
"name": "agent02",
"mergedSum": "2bdddd3efec5ffb7ec1486e314c28eb7",
"ip": "155.138.165.154",
"manager": "wazhu-manage",
"node_name": "node01",
"dateAdd": "2019-01-22 09:29:21",
"version": "Wazuh v3.8.0",
"lastKeepAlive": "2019-01-23 02:22:58",
"os": {
"major": "16",
"name": "Ubuntu",
"uname": "Linux |agent02 |4.4.0-137-generic |#163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 |x86_64",
"platform": "ubuntu",
"version": "16.04.5 LTS",
"codename": "Xenial Xerus",
"arch": "x86_64",
"minor": "04"
},
"id": "002"
}
]
}
}
創建組后,agent.conf可以編輯其文件以包含要分配給該組的特定配置。對於此示例,要編輯的文件位於/var/ossec/etc/shared/test01/agent.conf中,並且屬於該組的每個代理都將接收此文件。在連接到管理器的20分鍾內,分配給組的每個代理將從管理器接收“test01”文件夾中包含的agent.conf文件,包括在上一步中修改的文件。管理器將這些文件推送到代理程序所需的時間長度取決於文件的大小,組中的代理程序數以及使用的連接協議。例如,根據網絡帶寬和性能,使用UDP在100個代理上接收10 MB文件夾(不包括merged.mg文件)可能需要8分鍾,但是如果使用TCP,則可能會更快地復制。一旦特定代理屬於某個組,即使它是以其他名稱或ID注冊,它也會自動重新分配給該組。發生這種情況是因為當代理重新注冊時,代理merged.mg發送的校驗和將與向管理員注冊的其他代理的校驗和進行比較。然而,這不是默認的設置,而且,如果需要的話,必須明確地在local_internal_options.conf文件中通過添加選項remoted.guess_agent_group=1進行激活(參見remoted在內部選件)。

多個組
3.7.0版中的新功能。
自Wazuh v3.7.0起,代理可以屬於多個組。代理將從每個組接收所有配置文件。從上次分配的組接收的配置優先於其他組。
管理多個組
此功能專注於以更高的細分級別自定義代理的配置。通過API和agent_groups 列出代理狀態,同時也允許分配/變更/取消分配組,代理管理組。讓我們看一下在現有代理上管理多個組的三個用例。
將多個組分配給代理
將多個組設置為代理很簡單,有三種不同的方法可以將代理分配給一個或多個組:注冊,CLI和API。
在此示例中,代理001已添加到Web服務器和apache組。首先,使用API:
[root@wazhu-manage default]# cd /var/ossec/etc/shared
[root@wazhu-manage shared]# mkdir webserver
[root@wazhu-manage shared]# mkdir apache
[root@wazhu-manage shared]# curl -u wazuh-api:wazuh -X PUT "http://localhost:55000/agents/001/group/webserver?pretty"
{
"error": 0,
"data": "Group 'webserver' added to agent '001'."
}
}
[root@wazhu-manage shared]# curl -u wazuh-api:wazuh -X PUT "http://localhost:55000/agents/001/group/apache?pretty"{"error": 0,"data": "Group 'apache' added to agent '001'."}
之后,我們可以向API詢問代理所屬的組:
[root@wazhu-manage shared]# curl -u wazuh-api:wazuh -X GET "http://localhost:55000/agents/001?pretty" { "error": 0, "data": { "status": "Active", "configSum": "1a0e4e4aa11b2b284200925e3026090f", "group": [ "default", "webserver", "apache" ], "name": "agent01", "mergedSum": "32990d31d5f43a96cf6ca1aa4f1d839b", "ip": "45.77.105.194", "manager": "wazhu-manage", "node_name": "node01", "dateAdd": "2019-01-22 07:14:26", "version": "Wazuh v3.8.0", "lastKeepAlive": "2019-01-23 02:32:46", "os": { "major": "16", "name": "Ubuntu", "uname": "Linux |agent01 |4.4.0-137-generic |#163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 |x86_64", "platform": "ubuntu", "version": "16.04.5 LTS", "codename": "Xenial Xerus", "arch": "x86_64", "minor": "04" }, "id": "001" } }
在這種情況下,當任何配置參數存在沖突時,組apache的遠程配置是三個組中最優先的。
使用agent_groups CLI,代理可以以相同的方式注冊到組:
[root@wazhu-manage shared]# /var/ossec/bin/agent_groups -a -i 001 -g webserverDo you want to add the group 'webserver' to the agent '001'? [y/N]: yAgent '001' already belongs to group 'webserver[root@wazhu-manage shared]# /var/ossec/bin/agent_groups -a -i 001 -g apache Do you want to add the group 'apache' to the agent '001'? [y/N]: y Agent '001' already belongs to group 'apache'.
要在注冊過程中將代理分配給一個或多個組,請使用-G選項注冊代理設置代理將包含在的組:
root@agent01:~# /var/ossec/bin/agent-auth -m 149.248.9.0 -G webserver,apache2019/01/23 02:36:01 agent-auth: INFO: Started (pid: 18442).INFO: No authentication password provided.INFO: Connected to 149.248.9.0:1515INFO: Using agent name as: agent01INFO: Send request to manager. Waiting for reply.INFO: Received response with agent keyINFO: Valid key created. Finished.INFO: Connection closed.
列出組和配置
可以實時了解屬於組的代理,以及根據其所屬的組應用於每個代理的配置和共享文件。
例如,要列出現在可用的組,我們可以對agent_groups運行以下查詢:
[root@wazhu-manage shared]# /var/ossec/bin/agent_groups -l -g webserver 1 agent(s) in group 'webserver': ID: 005 Name: agent01.
同樣容易查詢分配給代理001的組:
[root@wazhu-manage shared]# /var/ossec/bin/agent_groups -s -i 005 The agent 'agent01' with ID '005' belongs to groups: webserver, apache.
組的優先級從左到右增加,最后一個優先級最高。
對多個組進行更改
以同樣的方式可以將多個組分配給代理,可以還原分配並在可用組之間切換。下面顯示了如何取消代理001 的組apache:
# /var/ossec/bin/agent_groups -r -i 001 -g apache -q Group 'apache' unset for agent '001'. # /var/ossec/bin/agent_groups -s -i 001 The agent 'ag-windows-12' with ID '001' has the group: '[u'webserver']'.
也可以在組覆蓋現有分配之間切換:
# /var/ossec/bin/agent_groups -s -i 001 The agent 'ag-windows-12' with ID '001' has the group: '[u'default', u'webserver']'. # /var/ossec/bin/agent_groups -a -f -i 001 -g apache Group 'apache' set to agent '001'. # /var/ossec/bin/agent_groups -s -i 001 The agent 'ag-windows-12' with ID '001' has the group: '[u'apache']'.
該-f
參數重置分配給代理的組,並強制它僅屬於新組。
最后,要檢查單個代理的組配置的同步狀態,可以使用以下兩種方法:
# /var/ossec/bin/agent_groups -S -i 001 The agent '008' sync status is: Agent configuration is synced. # curl -u foo:bar -X GET "http://localhost:55000/agents/001/group/is_sync?pretty" { "error": 0, "data": { "synced": "Agent configuration is synced." } }
agent_groups的其余功能可以在其參考部分找到。對於提供具有類似行為的調用的API也是如此。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">