diff --git a/pandora_console/extras/mr/67.sql b/pandora_console/extras/mr/67.sql index 8d62be696b..f9e02745c0 100644 --- a/pandora_console/extras/mr/67.sql +++ b/pandora_console/extras/mr/67.sql @@ -1138,4 +1138,10 @@ UPDATE talert_actions SET field2='[PANDORA] Alert FIRED on _agent_ / _module_ / UPDATE `tdiscovery_apps` SET `version` = '1.2' WHERE `short_name` = 'pandorafms.vmware'; +ALTER TABLE `tagente_modulo` ADD COLUMN `ignore_unknown` TINYINT NOT NULL DEFAULT 0; +ALTER TABLE `tpolicy_modules` ADD COLUMN `ignore_unknown` TINYINT NOT NULL DEFAULT 0; + +ALTER TABLE `tagente` ADD COLUMN `ignore_unknown` TINYINT NOT NULL DEFAULT 0; +ALTER TABLE `tmetaconsole_agent` ADD COLUMN `ignore_unknown` TINYINT NOT NULL DEFAULT 0; + COMMIT; diff --git a/pandora_console/godmode/agentes/agent_manager.php b/pandora_console/godmode/agentes/agent_manager.php index 51893ca8a6..1af5e3d780 100644 --- a/pandora_console/godmode/agentes/agent_manager.php +++ b/pandora_console/godmode/agentes/agent_manager.php @@ -1074,6 +1074,17 @@ if (enterprise_installed() === true) { ); } +$tableAdvancedAgent->data['ignore_unknown'][] = html_print_label_input_block( + __('Ignore unknown').ui_print_help_tip(__('This disables the calculation of the unknown state in the agent and any of its modules, so it will never transition to unknown. The state it reflects is the last known status.'), true), + html_print_checkbox_switch( + 'ignore_unknown', + 1, + $ignore_unknown, + true, + false + ) +); + ui_toggle( html_print_table($tableAdvancedAgent, true), diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php index cad6faad62..3da403ef80 100644 --- a/pandora_console/godmode/agentes/configurar_agente.php +++ b/pandora_console/godmode/agentes/configurar_agente.php @@ -232,6 +232,7 @@ if ($create_agent) { $cps = (int) get_parameter_switch('cps', -1); $fixed_ip = (int) get_parameter_switch('fixed_ip', 0); $vul_scan_enabled = (int) get_parameter_switch('vul_scan_enabled', 2); + $ignore_unknown = (int) get_parameter_switch('ignore_unknown', 0); $agent_version = $config['current_package']; $secondary_groups = (array) get_parameter('secondary_groups_selected', ''); $fields = db_get_all_fields_in_table('tagent_custom_fields'); @@ -300,6 +301,7 @@ if ($create_agent) { 'cps' => $cps, 'fixed_ip' => $fixed_ip, 'vul_scan_enabled' => $vul_scan_enabled, + 'ignore_unknown' => $ignore_unknown, 'agent_version' => $agent_version, ] ); @@ -1016,6 +1018,7 @@ if ($update_agent) { $satellite_server = (int) get_parameter('satellite_server', 0); $fixed_ip = (int) get_parameter_switch('fixed_ip', 0); $vul_scan_enabled = (int) get_parameter_switch('vul_scan_enabled', 2); + $ignore_unknown = (int) get_parameter_switch('ignore_unknown', 0); $security_vunerability = (int) get_parameter_switch('security_vunerability', 0); $security_hardening = (int) get_parameter_switch('security_hardening', 0); $security_monitoring = (int) get_parameter_switch('security_monitoring', 0); @@ -1150,6 +1153,7 @@ if ($update_agent) { 'satellite_server' => $satellite_server, 'fixed_ip' => $fixed_ip, 'vul_scan_enabled' => $vul_scan_enabled, + 'ignore_unknown' => $ignore_unknown, ]; if ($config['metaconsole_agent_cache'] == 1) { @@ -1383,6 +1387,7 @@ if ($id_agente) { $satellite_server = (int) $agent['satellite_server']; $fixed_ip = (int) $agent['fixed_ip']; $vul_scan_enabled = (int) $agent['vul_scan_enabled']; + $ignore_unknown = (int) $agent['ignore_unknown']; if (strpos($agent['agent_version'], '(')) { $agent_version = (int) explode('.', explode('(', $agent['agent_version'])[0])[2]; } else { @@ -1633,6 +1638,7 @@ if ($update_module === true || $create_module === true) { $custom_id = (string) get_parameter('custom_id'); $history_data = (int) get_parameter('history_data'); + $ignore_unknown = (int) get_parameter('ignore_unknown'); $dynamic_interval = (int) get_parameter('dynamic_interval'); $dynamic_max = (int) get_parameter('dynamic_max'); $dynamic_min = (int) get_parameter('dynamic_min'); @@ -1841,6 +1847,7 @@ if ($update_module) { 'max_retries' => $max_retries, 'custom_id' => $custom_id, 'history_data' => $history_data, + 'ignore_unknown' => $ignore_unknown, 'dynamic_interval' => $dynamic_interval, 'dynamic_max' => $dynamic_max, 'dynamic_min' => $dynamic_min, @@ -2042,6 +2049,7 @@ if ($create_module) { 'id_modulo' => $id_module, 'custom_id' => $custom_id, 'history_data' => $history_data, + 'ignore_unknown' => $ignore_unknown, 'dynamic_interval' => $dynamic_interval, 'dynamic_max' => $dynamic_max, 'dynamic_min' => $dynamic_min, diff --git a/pandora_console/godmode/agentes/module_manager_editor.php b/pandora_console/godmode/agentes/module_manager_editor.php index a52813fbf3..5fc4f12809 100644 --- a/pandora_console/godmode/agentes/module_manager_editor.php +++ b/pandora_console/godmode/agentes/module_manager_editor.php @@ -305,6 +305,7 @@ if ($id_agent_module) { $max_retries = $module['max_retries']; $custom_id = $module['custom_id']; $history_data = $module['history_data']; + $ignore_unknown = $module['ignore_unknown']; $dynamic_interval = $module['dynamic_interval']; $dynamic_max = $module['dynamic_max']; $dynamic_min = $module['dynamic_min']; @@ -443,6 +444,7 @@ if ($id_agent_module) { $plugin_parameter = ''; $custom_id = ''; $history_data = 1; + $ignore_unknown = 0; $dynamic_interval = 0; $dynamic_min = 0; $dynamic_max = 0; diff --git a/pandora_console/godmode/agentes/module_manager_editor_common.php b/pandora_console/godmode/agentes/module_manager_editor_common.php index c396634f67..fbc0499e75 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_common.php +++ b/pandora_console/godmode/agentes/module_manager_editor_common.php @@ -645,6 +645,15 @@ if ($disabledBecauseInPolicy) { ); } +$table_simple->data['caption_ignore_unknown'][0] = __('Ignore unknown').ui_print_help_tip(_('This disables the module\'s state calculation to unknown, so it will never transition to unknown. The state it reflects is the last known status.'), true); +$table_simple->data['ignore_unknown'][0] = html_print_checkbox_switch( + 'ignore_unknown', + 1, + $ignore_unknown, + true, + false +); + // Business Logic for Advanced Part. global $__code_from; // Code comes from module_editor. @@ -1426,7 +1435,7 @@ if ($__code_from === 'modules') { $throw_unknown_events_check = policy_module_is_disable_type_event($__id_pol_mod, EVENTS_GOING_UNKNOWN); } -$table_advanced->data['caption_discard_unknown'][0] = __('Discard unknown events'); +$table_advanced->data['caption_discard_unknown'][0] = __('Discard unknown events').ui_print_help_tip(__('With this mode, the unknown state will be detected, but it will not generate events.'), true); $table_advanced->data['discard_unknown'][0] = html_print_checkbox_switch( 'throw_unknown_events', 1, diff --git a/pandora_console/godmode/massive/massive_edit_agents.php b/pandora_console/godmode/massive/massive_edit_agents.php index 25b04e7c48..82698266a1 100755 --- a/pandora_console/godmode/massive/massive_edit_agents.php +++ b/pandora_console/godmode/massive/massive_edit_agents.php @@ -194,6 +194,10 @@ if ($update_agents) { $values['safe_mode_module'] = '0'; } + if (get_parameter('ignore_unknown', '') != '') { + $values['ignore_unknown'] = get_parameter('ignore_unknown'); + } + $secondary_groups_added = (array) get_parameter( 'secondary_groups_added', [] @@ -1183,6 +1187,24 @@ $table->data[7][1] .= html_print_select( true ); +$table->data[8][0] = __('Ignore unknown').ui_print_help_tip(_('This disables the calculation of the unknown state in the agent and any of its modules, so it will never transition to unknown. The state it reflects is the last known status.'), true); +$table->data[8][1] = html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'ignore_unknown', + '', + '', + '', + '', + true, + false, + false, + 'w100p' +); + ui_toggle(html_print_table($table, true), __('Advanced options')); unset($table); diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index 156ca507d8..4711821c52 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -1319,7 +1319,7 @@ $table->data[29][0] = html_print_label_input_block( ); $table->data[29][1] = html_print_label_input_block( - __('Discard unknown events'), + __('Discard unknown events').ui_print_help_tip(__('With this mode, the unknown state will be detected, but it will not generate events.'), true), html_print_select( [ '' => __('No change'), @@ -1544,6 +1544,26 @@ $table->data[40][0] = html_print_label_input_block( ) ); +$table->data[40][1] = html_print_label_input_block( + __('Ignore unknown').ui_print_help_tip(_('This disables the module\'s state calculation to unknown, so it will never transition to unknown. The state it reflects is the last known status.'), true), + html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'ignore_unknown', + '', + '', + '', + '', + true, + false, + false, + 'w100p' + ) +); + echo '