Merge branch 'ent-4769-modulos-ssh-php-perl' into ent-EDF

This commit is contained in:
fbsanchez 2019-10-29 16:56:01 +01:00
commit 383967f68a
23 changed files with 1250 additions and 475 deletions

View File

@ -0,0 +1,9 @@
START TRANSACTION;
INSERT INTO `ttipo_modulo` VALUES
(34,'remote_cmd', 10, 'Remote execution, numeric data', 'mod_remote_cmd.png'),
(35,'remote_cmd_proc', 10, 'Remote execution, boolean data', 'mod_remote_cmd_proc.png'),
(36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'),
(37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png');
COMMIT;

View File

@ -1654,7 +1654,12 @@ INSERT INTO tmodule VALUES (8, 'Wux module');
-- Table `ttipo_modulo` -- Table `ttipo_modulo`
-- --------------------------------------------------------------------- -- ---------------------------------------------------------------------
INSERT INTO ttipo_modulo VALUES (25,'web_analysis', 8, 'Web analysis data', 'module-wux.png'); INSERT INTO `ttipo_modulo` VALUES
(25,'web_analysis', 8, 'Web analysis data', 'module-wux.png'),
(34,'remote_cmd', 10, 'Remote execution, numeric data', 'mod_remote_cmd.png'),
(35,'remote_cmd_proc', 10, 'Remote execution, boolean data', 'mod_remote_cmd_proc.png'),
(36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'),
(37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png');
-- --------------------------------------------------------------------- -- ---------------------------------------------------------------------
-- Table `tdashboard` -- Table `tdashboard`
@ -2293,3 +2298,4 @@ CREATE TABLE `tdeployment_hosts` (
FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`) FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`)
ON UPDATE CASCADE ON DELETE SET NULL ON UPDATE CASCADE ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

View File

@ -13,7 +13,8 @@ switch ($_GET['module']) {
$sql = sprintf( $sql = sprintf(
'SELECT id_tipo, descripcion 'SELECT id_tipo, descripcion
FROM ttipo_modulo FROM ttipo_modulo
WHERE categoria between 3 and 5 ' WHERE categoria between 3 and 5
OR categoria = 10 '
); );
break; break;

View File

@ -1330,7 +1330,7 @@ if ($update_module || $create_module) {
// Change double quotes by single. // Change double quotes by single.
$snmp_oid = preg_replace('/"/', ''', $snmp_oid); $snmp_oid = preg_replace('/"/', ''', $snmp_oid);
if (empty($snmp_oid)) { if (empty($snmp_oid) === true) {
// The user did not set any OID manually but did a SNMP walk. // The user did not set any OID manually but did a SNMP walk.
$snmp_oid = (string) get_parameter('select_snmp_oid'); $snmp_oid = (string) get_parameter('select_snmp_oid');
} }
@ -1339,18 +1339,30 @@ if ($update_module || $create_module) {
// New support for snmp v3. // New support for snmp v3.
$tcp_send = (string) get_parameter('snmp_version'); $tcp_send = (string) get_parameter('snmp_version');
$plugin_user = (string) get_parameter('snmp3_auth_user'); $plugin_user = (string) get_parameter('snmp3_auth_user');
$plugin_pass = io_input_password((string) get_parameter('snmp3_auth_pass')); $plugin_pass = io_input_password(
(string) get_parameter('snmp3_auth_pass')
);
$plugin_parameter = (string) get_parameter('snmp3_auth_method'); $plugin_parameter = (string) get_parameter('snmp3_auth_method');
$custom_string_1 = (string) get_parameter('snmp3_privacy_method'); $custom_string_1 = (string) get_parameter('snmp3_privacy_method');
$custom_string_2 = io_input_password((string) get_parameter('snmp3_privacy_pass')); $custom_string_2 = io_input_password(
(string) get_parameter('snmp3_privacy_pass')
);
$custom_string_3 = (string) get_parameter('snmp3_security_level'); $custom_string_3 = (string) get_parameter('snmp3_security_level');
} else if ($id_module_type >= 34 && $id_module_type <= 37) {
$tcp_send = (string) get_parameter('command_text');
$custom_string_1 = (string) get_parameter(
'command_credential_identifier'
);
$custom_string_2 = (string) get_parameter('command_os');
} else { } else {
$plugin_user = (string) get_parameter('plugin_user'); $plugin_user = (string) get_parameter('plugin_user');
if (get_parameter('id_module_component_type') == 7) { if (get_parameter('id_module_component_type') == 7) {
$plugin_pass = (int) get_parameter('plugin_pass'); $plugin_pass = (int) get_parameter('plugin_pass');
} else { } else {
$plugin_pass = io_input_password((string) get_parameter('plugin_pass')); $plugin_pass = io_input_password(
(string) get_parameter('plugin_pass')
);
} }
$plugin_parameter = (string) get_parameter('plugin_parameter'); $plugin_parameter = (string) get_parameter('plugin_parameter');

View File

@ -1,16 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Modules
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
require_once 'include/functions_network_components.php'; require_once 'include/functions_network_components.php';
enterprise_include_once('include/functions_local_components.php'); enterprise_include_once('include/functions_local_components.php');
@ -19,18 +35,65 @@ if (is_ajax()) {
$snmp_walk = (bool) get_parameter('snmp_walk'); $snmp_walk = (bool) get_parameter('snmp_walk');
$get_module_component = (bool) get_parameter('get_module_component'); $get_module_component = (bool) get_parameter('get_module_component');
$get_module_components = (bool) get_parameter('get_module_components'); $get_module_components = (bool) get_parameter('get_module_components');
$get_module_local_components = (bool) get_parameter('get_module_local_components'); $get_module_local_components = (bool) get_parameter(
$get_module_local_component = (bool) get_parameter('get_module_local_component'); 'get_module_local_components'
);
$get_module_local_component = (bool) get_parameter(
'get_module_local_component'
);
if ($get_module_component) { if ($get_module_component) {
$id_component = (int) get_parameter('id_module_component'); $id_component = (int) get_parameter('id_module_component');
$component = db_get_row('tnetwork_component', 'id_nc', $id_component); $component = db_get_row('tnetwork_component', 'id_nc', $id_component);
$component['throw_unknown_events'] = network_components_is_disable_type_event($id_component, EVENTS_GOING_UNKNOWN); $component['throw_unknown_events'] = network_components_is_disable_type_event(
$id_component,
EVENTS_GOING_UNKNOWN
);
// Decrypt passwords in the component. // Decrypt passwords in the component.
$component['plugin_pass'] = io_output_password($component['plugin_pass']); $component['plugin_pass'] = io_output_password(
$component['plugin_pass']
);
if ($component['type'] >= 15
&& $component['type'] <= 18
) {
// New support for snmp v3.
$component['snmp_version'] = $component['tcp_send'];
$component['snmp3_auth_user'] = io_safe_output(
$component['plugin_user']
);
// Must use io_output_password.
$component['snmp3_auth_pass'] = io_safe_output(
$component['plugin_pass']
);
$component['snmp3_auth_method'] = io_safe_output(
$component['plugin_parameter']
);
$component['snmp3_privacy_method'] = io_safe_output(
$component['custom_string_1']
);
$component['snmp3_privacy_pass'] = io_safe_output(
$component['custom_string_2']
);
$component['snmp3_security_level'] = io_safe_output(
$component['custom_string_3']
);
} else if ($component['type'] >= 34
&& $component['type'] <= 37
) {
$component['command_text'] = io_safe_output(
$component['tcp_send']
);
$component['command_credential_identifier'] = io_safe_output(
$component['custom_string_1']
);
$component['command_os'] = io_safe_output(
$component['custom_string_2']
);
}
$component['str_warning'] = io_safe_output($component['str_warning']); $component['str_warning'] = io_safe_output($component['str_warning']);
$component['str_critical'] = io_safe_output($component['str_critical']); $component['str_critical'] = io_safe_output($component['str_critical']);
@ -83,33 +146,29 @@ if (is_ajax()) {
$component = db_get_row('tlocal_component', 'id', $id_component); $component = db_get_row('tlocal_component', 'id', $id_component);
foreach ($component as $index => $element) { foreach ($component as $index => $element) {
$component[$index] = html_entity_decode($element, ENT_QUOTES, 'UTF-8'); $component[$index] = html_entity_decode(
$element,
ENT_QUOTES,
'UTF-8'
);
} }
$typeName = local_components_parse_module_extract_value('module_type', $component['data']); $typeName = local_components_parse_module_extract_value(
'module_type',
$component['data']
);
switch ($config['dbtype']) {
case 'mysql':
$component['type'] = db_get_value_sql( $component['type'] = db_get_value_sql(
' '
SELECT id_tipo SELECT id_tipo
FROM ttipo_modulo FROM ttipo_modulo
WHERE nombre LIKE "'.$typeName.'"' WHERE nombre LIKE "'.$typeName.'"'
); );
break;
case 'postgresql': $component['throw_unknown_events'] = !local_components_is_disable_type_event(
case 'oracle': $id_component,
$component['type'] = db_get_value_sql( EVENTS_GOING_UNKNOWN
'
SELECT id_tipo
FROM ttipo_modulo
WHERE nombre LIKE \''.$typeName.'\''
); );
break;
}
$component['throw_unknown_events'] = !local_components_is_disable_type_event($id_component, EVENTS_GOING_UNKNOWN);
echo io_json_mb_encode($component); echo io_json_mb_encode($component);
return; return;
@ -136,7 +195,9 @@ if (is_ajax()) {
$snmp3_auth_method = get_parameter('snmp3_auth_method'); $snmp3_auth_method = get_parameter('snmp3_auth_method');
$snmp3_auth_pass = io_safe_output(get_parameter('snmp3_auth_pass')); $snmp3_auth_pass = io_safe_output(get_parameter('snmp3_auth_pass'));
$snmp3_privacy_method = get_parameter('snmp3_privacy_method'); $snmp3_privacy_method = get_parameter('snmp3_privacy_method');
$snmp3_privacy_pass = io_safe_output(get_parameter('snmp3_privacy_pass')); $snmp3_privacy_pass = io_safe_output(
get_parameter('snmp3_privacy_pass')
);
$snmp_port = get_parameter('snmp_port'); $snmp_port = get_parameter('snmp_port');
$snmpwalk = get_snmpwalk( $snmpwalk = get_snmpwalk(
@ -177,7 +238,7 @@ require_once 'include/functions_exportserver.php';
require_once $config['homedir'].'/include/functions_modules.php'; require_once $config['homedir'].'/include/functions_modules.php';
require_once $config['homedir'].'/include/functions_agents.php'; require_once $config['homedir'].'/include/functions_agents.php';
// Reading a module // Reading a module.
if ($id_agent_module) { if ($id_agent_module) {
$module = modules_get_agentmodule($id_agent_module); $module = modules_get_agentmodule($id_agent_module);
$moduletype = $module['id_modulo']; $moduletype = $module['id_modulo'];
@ -202,19 +263,25 @@ if ($id_agent_module) {
$snmp_community = $module['snmp_community']; $snmp_community = $module['snmp_community'];
$snmp_oid = $module['snmp_oid']; $snmp_oid = $module['snmp_oid'];
// New support for snmp v3 // New support for snmp v3.
$snmp_version = $module['tcp_send']; $snmp_version = $module['tcp_send'];
$snmp3_auth_user = $module['plugin_user']; $snmp3_auth_user = $module['plugin_user'];
$snmp3_auth_pass = io_output_password($module['plugin_pass']); $snmp3_auth_pass = io_output_password($module['plugin_pass']);
// Auth method could be MD5 or SHA // Auth method could be MD5 or SHA.
$snmp3_auth_method = $module['plugin_parameter']; $snmp3_auth_method = $module['plugin_parameter'];
// Privacy method could be DES or AES // Privacy method could be DES or AES.
$snmp3_privacy_method = $module['custom_string_1']; $snmp3_privacy_method = $module['custom_string_1'];
$snmp3_privacy_pass = io_output_password($module['custom_string_2']); $snmp3_privacy_pass = io_output_password($module['custom_string_2']);
// Security level Could be noAuthNoPriv | authNoPriv | authPriv // For Remote cmd fields are reused:
// tcp_send, custom_string_1, custom_string_2.
$command_text = $module['tcp_send'];
$command_credential_identifier = $module['custom_string_1'];
$command_os = $module['custom_string_2'];
// Security level Could be noAuthNoPriv | authNoPriv | authPriv.
$snmp3_security_level = $module['custom_string_3']; $snmp3_security_level = $module['custom_string_3'];
$ip_target = $module['ip_target']; $ip_target = $module['ip_target'];
@ -265,39 +332,39 @@ if ($id_agent_module) {
$id_category = $module['id_category']; $id_category = $module['id_category'];
$cron_interval = explode(' ', $module['cron_interval']); $cron_interval = explode(' ', $module['cron_interval']);
if (isset($cron_interval[4])) { if (isset($cron_interval[4]) === true) {
$minute_from = $cron_interval[0]; $minute_from = $cron_interval[0];
$minute = explode('-', $minute_from); $minute = explode('-', $minute_from);
$minute_from = $minute[0]; $minute_from = $minute[0];
if (isset($minute[1])) { if (isset($minute[1]) === true) {
$minute_to = $minute[1]; $minute_to = $minute[1];
} }
$hour_from = $cron_interval[1]; $hour_from = $cron_interval[1];
$h = explode('-', $hour_from); $h = explode('-', $hour_from);
$hour_from = $h[0]; $hour_from = $h[0];
if (isset($h[1])) { if (isset($h[1]) === true) {
$hour_to = $h[1]; $hour_to = $h[1];
} }
$mday_from = $cron_interval[2]; $mday_from = $cron_interval[2];
$md = explode('-', $mday_from); $md = explode('-', $mday_from);
$mday_from = $md[0]; $mday_from = $md[0];
if (isset($md[1])) { if (isset($md[1]) === true) {
$mday_to = $md[1]; $mday_to = $md[1];
} }
$month_from = $cron_interval[3]; $month_from = $cron_interval[3];
$m = explode('-', $month_from); $m = explode('-', $month_from);
$month_from = $m[0]; $month_from = $m[0];
if (isset($m[1])) { if (isset($m[1]) === true) {
$month_to = $m[1]; $month_to = $m[1];
} }
$wday_from = $cron_interval[4]; $wday_from = $cron_interval[4];
$wd = explode('-', $wday_from); $wd = explode('-', $wday_from);
$wday_from = $wd[0]; $wday_from = $wd[0];
if (isset($wd[1])) { if (isset($wd[1]) === true) {
$wday_to = $wd[1]; $wday_to = $wd[1];
} }
} else { } else {
@ -315,14 +382,17 @@ if ($id_agent_module) {
} }
$module_macros = null; $module_macros = null;
if (isset($module['module_macros'])) { if (isset($module['module_macros']) === true) {
$module_macros = json_decode(base64_decode($module['module_macros']), true); $module_macros = json_decode(
base64_decode($module['module_macros']),
true
);
} }
} else { } else {
if (!isset($moduletype)) { if (isset($moduletype) === false) {
$moduletype = (string) get_parameter('moduletype'); $moduletype = (string) get_parameter('moduletype');
// Clean up specific network modules fields // Clean up specific network modules fields.
$name = ''; $name = '';
$description = ''; $description = '';
$id_module_group = 1; $id_module_group = 1;
@ -374,7 +444,7 @@ if ($id_agent_module) {
$str_critical = ''; $str_critical = '';
$ff_event = 0; $ff_event = 0;
// New support for snmp v3 // New support for snmp v3.
$snmp_version = 1; $snmp_version = 1;
$snmp3_auth_user = ''; $snmp3_auth_user = '';
$snmp3_auth_pass = ''; $snmp3_auth_pass = '';
@ -383,6 +453,11 @@ if ($id_agent_module) {
$snmp3_privacy_pass = ''; $snmp3_privacy_pass = '';
$snmp3_security_level = ''; $snmp3_security_level = '';
// For Remote CMD.
$command_text = '';
$command_credential_identifier = '';
$command_os = '';
$critical_instructions = ''; $critical_instructions = '';
$warning_instructions = ''; $warning_instructions = '';
$unknown_instructions = ''; $unknown_instructions = '';
@ -418,7 +493,9 @@ if ($id_agent_module) {
} }
} }
$is_function_policies = enterprise_include_once('include/functions_policies.php'); $is_function_policies = enterprise_include_once(
'include/functions_policies.php'
);
if ($is_function_policies !== ENTERPRISE_NOT_HOOK) { if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
$relink_policy = get_parameter('relink_policy', 0); $relink_policy = get_parameter('relink_policy', 0);
@ -428,19 +505,32 @@ if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
$policy_info = policies_info_module_policy($id_agent_module); $policy_info = policies_info_module_policy($id_agent_module);
$policy_id = $policy_info['id_policy']; $policy_id = $policy_info['id_policy'];
if ($relink_policy && policies_get_policy_queue_status($policy_id) == STATUS_IN_QUEUE_APPLYING) { if ($relink_policy
ui_print_error_message(__('This policy is applying and cannot be modified')); && policies_get_policy_queue_status($policy_id) == STATUS_IN_QUEUE_APPLYING
) {
ui_print_error_message(
__('This policy is applying and cannot be modified')
);
} else { } else {
$result = policies_relink_module($id_agent_module); $result = policies_relink_module($id_agent_module);
ui_print_result_message($result, __('Module will be linked in the next application')); ui_print_result_message(
$result,
__('Module will be linked in the next application')
);
db_pandora_audit('Agent management', 'Re-link module '.$id_agent_module); db_pandora_audit(
'Agent management',
'Re-link module '.$id_agent_module
);
} }
} }
if ($unlink_policy) { if ($unlink_policy) {
$result = policies_unlink_module($id_agent_module); $result = policies_unlink_module($id_agent_module);
ui_print_result_message($result, __('Module will be unlinked in the next application')); ui_print_result_message(
$result,
__('Module will be unlinked in the next application')
);
db_pandora_audit('Agent management', 'Unlink module '.$id_agent_module); db_pandora_audit('Agent management', 'Unlink module '.$id_agent_module);
} }
@ -452,7 +542,7 @@ $remote_conf = false;
if ($__code_from !== 'policies') { if ($__code_from !== 'policies') {
// Only check in the module editor. // Only check in the module editor.
// Check ACL tags // Check ACL tags.
$tag_acl = true; $tag_acl = true;
// If edit a existing module. // If edit a existing module.
@ -479,12 +569,12 @@ switch ($moduletype) {
$remote_conf = false; $remote_conf = false;
if (enterprise_installed()) { if (enterprise_installed()) {
enterprise_include_once('include/functions_config_agents.php'); enterprise_include_once('include/functions_config_agents.php');
$remote_conf = enterprise_hook('config_agents_has_remote_configuration', [$id_agente]); $remote_conf = enterprise_hook(
'config_agents_has_remote_configuration',
[$id_agente]
);
} }
/*
Categories is an array containing the allowed module types
(generic_data, generic_string, etc) from ttipo_modulo (field categoria) */
$categories = [ $categories = [
0, 0,
1, 1,
@ -503,12 +593,16 @@ switch ($moduletype) {
'config_agents_get_module_from_conf', 'config_agents_get_module_from_conf',
[ [
$id_agente, $id_agente,
io_safe_output(modules_get_agentmodule_name($id_agent_module)), io_safe_output(
modules_get_agentmodule_name($id_agent_module)
),
] ]
); );
} }
enterprise_include('godmode/agentes/module_manager_editor_data.php'); enterprise_include(
'godmode/agentes/module_manager_editor_data.php'
);
} }
break; break;
@ -520,6 +614,10 @@ switch ($moduletype) {
4, 4,
5, 5,
]; ];
if (enterprise_installed()) {
$categories[] = 10;
}
include 'module_manager_editor_common.php'; include 'module_manager_editor_common.php';
include 'module_manager_editor_network.php'; include 'module_manager_editor_network.php';
break; break;
@ -562,9 +660,12 @@ switch ($moduletype) {
include 'module_manager_editor_wmi.php'; include 'module_manager_editor_wmi.php';
break; break;
// WARNING: type 7 is reserved on enterprise // WARNING: type 7 is reserved on enterprise.
default: default:
if (enterprise_include('godmode/agentes/module_manager_editor.php') === ENTERPRISE_NOT_HOOK) { if (enterprise_include(
'godmode/agentes/module_manager_editor.php'
) === ENTERPRISE_NOT_HOOK
) {
ui_print_error_message(sprintf(__('Invalid module type'))); ui_print_error_message(sprintf(__('Invalid module type')));
return; return;
} }
@ -580,7 +681,7 @@ if ($config['enterprise_installed'] && $id_agent_module) {
echo '<h3 id="message" class="error invisible"></h3>'; echo '<h3 id="message" class="error invisible"></h3>';
// TODO: Change to the ui_print_error system // TODO: Change to the ui_print_error system.
echo '<form method="post" id="module_form">'; echo '<form method="post" id="module_form">';
ui_toggle( ui_toggle(
@ -602,12 +703,18 @@ ui_toggle(
if ($moduletype != 13) { if ($moduletype != 13) {
ui_toggle( ui_toggle(
html_print_table($table_new_relations, true).html_print_table($table_relations, true), html_print_table(
$table_new_relations,
true
).html_print_table(
$table_relations,
true
),
__('Module relations') __('Module relations')
); );
} }
// Submit // Submit.
echo '<div class="action-buttons" style="width: '.$table_simple->width.'">'; echo '<div class="action-buttons" style="width: '.$table_simple->width.'">';
if ($id_agent_module) { if ($id_agent_module) {
html_print_submit_button( html_print_submit_button(
@ -659,22 +766,64 @@ ui_require_javascript_file('pandora_modules');
<script language="javascript"> <script language="javascript">
/* <![CDATA[ */ /* <![CDATA[ */
var no_name_lang =` var no_name_lang =`
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No module name provided') ]); ?> <?php
echo ui_print_info_message(
[
'no_close' => true,
'message' => __('No module name provided'),
]
);
?>
`; `;
var no_target_lang =` var no_target_lang =`
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No target IP provided') ]); ?> <?php
echo ui_print_info_message(
[
'no_close' => true,
'message' => __('No target IP provided'),
]
);
?>
`; `;
var no_oid_lang =` var no_oid_lang =`
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No SNMP OID provided') ]); ?> <?php
echo ui_print_info_message(
[
'no_close' => true,
'message' => __('No SNMP OID provided'),
]
);
?>
`; `;
var no_prediction_module_lang =` var no_prediction_module_lang =`
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No module to predict') ]); ?> <?php
echo ui_print_info_message(
[
'no_close' => true,
'message' => __('No module to predict'),
]
);
?>
`; `;
var no_plugin_lang =` var no_plugin_lang =`
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No plug-in provided') ]); ?> <?php
echo ui_print_info_message(
[
'no_close' => true,
'message' => __('No plug-in provided'),
]
);
?>
`; `;
var no_execute_test_from =` var no_execute_test_from =`
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No server provided') ]); ?> <?php
echo ui_print_info_message(
[
'no_close' => true,
'message' => __('No server provided'),
]
);
?>
`; `;
$(document).ready (function () { $(document).ready (function () {
@ -683,11 +832,15 @@ $(document).ready (function () {
$("#module_form").submit(function() { $("#module_form").submit(function() {
if (typeof(check_remote_conf) != 'undefined') { if (typeof(check_remote_conf) != 'undefined') {
if (check_remote_conf) { if (check_remote_conf) {
//Check the name //Check the name.
name = $("#text-name").val(); name = $("#text-name").val();
remote_config = $("#textarea_configuration_data").val(); remote_config = $("#textarea_configuration_data").val();
regexp_name = new RegExp('module_name\\s*' + name.replace(/([^0-9A-Za-z_])/g, "\\$1") +"\n"); regexp_name = new RegExp(
'module_name\\s*' + name.replace(/([^0-9A-Za-z_])/g,
"\\$1"
) +"\n"
);
regexp_plugin = new RegExp('^module_plugin\\s*'); regexp_plugin = new RegExp('^module_plugin\\s*');
@ -698,7 +851,7 @@ $(document).ready (function () {
return true; return true;
} }
else { else {
alert("<?php echo __('Error, The field name and name in module_name in data configuration are different.'); ?>"); alert ("<?php echo __('Error, The field name and name in module_name in data configuration are different.'); ?>");
return false; return false;
} }
} }
@ -720,7 +873,6 @@ $(document).ready (function () {
$("#simple-configuration_data").show(); $("#simple-configuration_data").show();
} }
} }
} }
checkKeepaliveModule(); checkKeepaliveModule();
@ -742,7 +894,11 @@ function handleFileSelect() {
err_msg_3 = "<?php echo __('This browser doesn`t seem to support the files property of file inputs.'); ?>"; err_msg_3 = "<?php echo __('This browser doesn`t seem to support the files property of file inputs.'); ?>";
err_msg_4 = "<?php echo __('Please select a file before clicking Load'); ?>"; err_msg_4 = "<?php echo __('Please select a file before clicking Load'); ?>";
if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { if (!window.File ||
!window.FileReader ||
!window.FileList ||
!window.Blob
) {
$('#mssg_error_div').append(err_msg_1); $('#mssg_error_div').append(err_msg_1);
return; return;
} }
@ -767,7 +923,9 @@ function handleFileSelect() {
} }
function receivedText() { function receivedText() {
document.getElementById('textarea_custom_string_1').appendChild(document.createTextNode(fr.result)); document
.getElementById('textarea_custom_string_1')
.appendChild(document.createTextNode(fr.result));
} }
/* ]]> */ /* ]]> */
</script> </script>

View File

@ -132,7 +132,7 @@ function add_component_selection($id_network_component_type)
require_once 'include/functions_network_components.php'; require_once 'include/functions_network_components.php';
enterprise_include_once('include/functions_policies.php'); enterprise_include_once('include/functions_policies.php');
// If code comes from policies disable export select // If code comes from policies disable export select.
global $__code_from; global $__code_from;
$disabledBecauseInPolicy = false; $disabledBecauseInPolicy = false;
@ -209,8 +209,7 @@ $table_simple->data[0][1] = html_print_input_text_extended(
$largeClassDisabledBecauseInPolicy, $largeClassDisabledBecauseInPolicy,
true true
); );
// $table_simple->data[0][1] = html_print_input_text ('name',
// io_safe_output($name), '', 45, 100, true, $disabledBecauseInPolicy);
if (!empty($id_agent_module) && isset($id_agente)) { if (!empty($id_agent_module) && isset($id_agente)) {
$table_simple->data[0][1] .= '&nbsp;<b>'.__('ID').'</b>&nbsp;&nbsp;'.$id_agent_module.' '; $table_simple->data[0][1] .= '&nbsp;<b>'.__('ID').'</b>&nbsp;&nbsp;'.$id_agent_module.' ';
@ -237,7 +236,13 @@ if ($policy_link != 0) {
} }
$table_simple->data[0][2] = __('Disabled'); $table_simple->data[0][2] = __('Disabled');
$table_simple->data[0][2] .= html_print_checkbox('disabled', 1, $disabled, true, $disabled_enable); $table_simple->data[0][2] .= html_print_checkbox(
'disabled',
1,
$disabled,
true,
$disabled_enable
);
$table_simple->data[0][3] = __('Module group'); $table_simple->data[0][3] = __('Module group');
$table_simple->data[0][3] .= html_print_select_from_sql( $table_simple->data[0][3] .= html_print_select_from_sql(
'SELECT id_mg, name FROM tmodule_group ORDER BY name', 'SELECT id_mg, name FROM tmodule_group ORDER BY name',
@ -260,12 +265,18 @@ if ((isset($id_agent_module) && $id_agent_module) || $id_policy_module != 0) {
$in_policy = strstr($page, 'policy_modules'); $in_policy = strstr($page, 'policy_modules');
if (!$in_policy) { if (!$in_policy) {
// Cannot select the current module to be itself parent // Cannot select the current module to be itself parent.
$module_parent_filter = $id_agent_module ? ['tagente_modulo.id_agente_modulo' => "<>$id_agent_module"] : ''; $module_parent_filter = ($id_agent_module) ? ['tagente_modulo.id_agente_modulo' => "<>$id_agent_module"] : '';
$table_simple->data[1][0] = __('Module parent'); $table_simple->data[1][0] = __('Module parent');
$modules_can_be_parent = agents_get_modules($id_agente, false, $module_parent_filter); $modules_can_be_parent = agents_get_modules(
// If the user cannot have access to parent module, only print the name $id_agente,
if ($parent_module_id != 0 && !in_array($parent_module_id, array_keys($modules_can_be_parent))) { false,
$module_parent_filter
);
// If the user cannot have access to parent module, only print the name.
if ($parent_module_id != 0
&& !in_array($parent_module_id, array_keys($modules_can_be_parent))
) {
$table_simple->data[1][1] = db_get_value( $table_simple->data[1][1] = db_get_value(
'nombre', 'nombre',
'tagente_modulo', 'tagente_modulo',
@ -305,7 +316,11 @@ if (!$edit) {
} }
$table_simple->data[2][1] = '<em>'.modules_get_moduletype_description($id_module_type).' ('.$type_names_hash[$id_module_type].')</em>'; $table_simple->data[2][1] = '<em>'.modules_get_moduletype_description($id_module_type).' ('.$type_names_hash[$id_module_type].')</em>';
$table_simple->data[2][1] .= html_print_input_hidden('type_names', base64_encode(io_json_mb_encode($type_names_hash)), true); $table_simple->data[2][1] .= html_print_input_hidden(
'type_names',
base64_encode(io_json_mb_encode($type_names_hash)),
true
);
} else { } else {
if (isset($id_module_type)) { if (isset($id_module_type)) {
$idModuleType = $id_module_type; $idModuleType = $id_module_type;
@ -313,12 +328,13 @@ if (!$edit) {
$idModuleType = ''; $idModuleType = '';
} }
// Removed web analysis and log4x from select // Removed web analysis and log4x from select.
$sql = sprintf( $sql = sprintf(
'SELECT id_tipo, descripcion, nombre 'SELECT id_tipo, descripcion, nombre, categoria
FROM ttipo_modulo FROM ttipo_modulo
WHERE categoria IN (%s) AND id_tipo NOT IN (24, 25) WHERE categoria IN (%s)
ORDER BY descripcion', AND id_tipo NOT IN (24, 25)
ORDER BY id_tipo ASC',
implode(',', $categories) implode(',', $categories)
); );
@ -326,7 +342,9 @@ if (!$edit) {
$type_names_hash = []; $type_names_hash = [];
$type_description_hash = []; $type_description_hash = [];
if (isset($type_names) && is_array($type_names)) { if (isset($type_names) === true
&& is_array($type_names) === true
) {
foreach ($type_names as $tn) { foreach ($type_names as $tn) {
$type_names_hash[$tn['id_tipo']] = $tn['nombre']; $type_names_hash[$tn['id_tipo']] = $tn['nombre'];
$type_description_hash[$tn['id_tipo']] = $tn['descripcion']; $type_description_hash[$tn['id_tipo']] = $tn['descripcion'];
@ -342,7 +360,7 @@ if (!$edit) {
0, 0,
true, true,
false, false,
true, false,
'', '',
false, false,
false, false,
@ -350,8 +368,12 @@ if (!$edit) {
100 100
); );
// Store the relation between id and name of the types on a hidden field // Store the relation between id and name of the types on a hidden field.
$table_simple->data[2][1] .= html_print_input_hidden('type_names', base64_encode(io_json_mb_encode($type_names_hash)), true); $table_simple->data[2][1] .= html_print_input_hidden(
'type_names',
base64_encode(io_json_mb_encode($type_names_hash)),
true
);
} }
if ($edit_module) { if ($edit_module) {
@ -380,15 +402,32 @@ if ($edit_module) {
$help_header = 'webserver_module_tab'; $help_header = 'webserver_module_tab';
} }
$table_simple->data[2][0] = __('Type').' '.ui_print_help_icon($help_header, true); $table_simple->data[2][0] = __('Type').' ';
$table_simple->data[2][0] .= ui_print_help_icon($help_header, true);
} }
if ($disabledBecauseInPolicy) { if ($disabledBecauseInPolicy) {
$table_simple->data[2][3] .= html_print_input_hidden('id_module_group', $id_module_group, true); $table_simple->data[2][3] .= html_print_input_hidden(
'id_module_group',
$id_module_group,
true
);
} }
$table_simple->data[3][0] = __('Dynamic Threshold Interval'); $table_simple->data[3][0] = __('Dynamic Threshold Interval');
$table_simple->data[3][1] = html_print_extended_select_for_time('dynamic_interval', $dynamic_interval, '', 'None', '0', 10, true, 'width:150px', false, $classdisabledBecauseInPolicy, $disabledBecauseInPolicy); $table_simple->data[3][1] = html_print_extended_select_for_time(
'dynamic_interval',
$dynamic_interval,
'',
'None',
'0',
10,
true,
'width:150px',
false,
$classdisabledBecauseInPolicy,
$disabledBecauseInPolicy
);
$table_simple->data[3][1] .= '<a onclick=advanced_option_dynamic()>'.html_print_image('images/cog.png', true, ['title' => __('Advanced options Dynamic Threshold')]).'</a>'; $table_simple->data[3][1] .= '<a onclick=advanced_option_dynamic()>'.html_print_image('images/cog.png', true, ['title' => __('Advanced options Dynamic Threshold')]).'</a>';
if ($in_policy) { if ($in_policy) {
$table_simple->cellclass[2][2] = 'hide_dinamic'; $table_simple->cellclass[2][2] = 'hide_dinamic';

View File

@ -1,30 +1,50 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
global $config; global $config;
require_once $config['homedir'].'/include/functions_snmp_browser.php'; require_once $config['homedir'].'/include/functions_snmp_browser.php';
$snmp_browser_path = is_metaconsole() ? '../../' : ''; $snmp_browser_path = (is_metaconsole()) ? '../../' : '';
$snmp_browser_path .= 'include/javascript/pandora_snmp_browser.js'; $snmp_browser_path .= 'include/javascript/pandora_snmp_browser.js';
echo "<script type='text/javascript' src='$snmp_browser_path'></script>"; echo "<script type='text/javascript' src='".$snmp_browser_path."'></script>";
// This line does not run with the dinamic loader editor in policies.
// ui_require_javascript_file ('pandora_snmp_browser'); // Define a custom action to save the OID selected
// WARNING REPEAT input hidden errors in console // in the SNMP browser to the form.
// Save some variables for javascript functions html_print_input_hidden(
// html_print_input_hidden ('ajax_url', ui_get_full_url("ajax.php"), false); 'custom_action',
// html_print_input_hidden ('search_matches_translation', __("Search matches"), false); urlencode(
// Define a custom action to save the OID selected in the SNMP browser to the form base64_encode(
html_print_input_hidden('custom_action', urlencode(base64_encode('&nbsp;<a href="javascript:setOID()"><img src="'.ui_get_full_url('images').'/input_filter.disabled.png" title="'.__('Use this OID').'" style="vertical-align: middle;"></img></a>')), false); '&nbsp;<a href="javascript:setOID()"><img src="'.ui_get_full_url('images').'/input_filter.disabled.png" title="'.__('Use this OID').'" style="vertical-align: middle;"></img></a>'
)
),
false
);
$isFunctionPolicies = enterprise_include_once('include/functions_policies.php'); $isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
@ -50,17 +70,15 @@ if (strstr($page, 'policy_modules') === false) {
define('ID_NETWORK_COMPONENT_TYPE', 2); define('ID_NETWORK_COMPONENT_TYPE', 2);
if (empty($update_module_id)) { if (empty($update_module_id)) {
// Function in module_manager_editor_common.php // Function in module_manager_editor_common.php.
add_component_selection(ID_NETWORK_COMPONENT_TYPE); add_component_selection(ID_NETWORK_COMPONENT_TYPE);
} else {
// TODO: Print network component if available
} }
$extra_title = __('Network server module'); $extra_title = __('Network server module');
$data = []; $data = [];
$data[0] = __('Target IP'); $data[0] = __('Target IP');
// show agent_for defect; // Show agent_for defect.
if ($page == 'enterprise/godmode/policies/policy_modules') { if ($page == 'enterprise/godmode/policies/policy_modules') {
if ($ip_target != 'auto' && $ip_target != '') { if ($ip_target != 'auto' && $ip_target != '') {
$custom_ip_target = $ip_target; $custom_ip_target = $ip_target;
@ -100,7 +118,7 @@ if ($page == 'enterprise/godmode/policies/policy_modules') {
$data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true); $data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true);
} }
// In ICMP modules, port is not configurable // In ICMP modules, port is not configurable.
if ($id_module_type >= 6 && $id_module_type <= 7) { if ($id_module_type >= 6 && $id_module_type <= 7) {
$data[2] = ''; $data[2] = '';
$data[3] = ''; $data[3] = '';
@ -148,7 +166,15 @@ if (!$adopt) {
$classdisabledBecauseInPolicy $classdisabledBecauseInPolicy
); );
} else { } else {
$data[1] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true, false); $data[1] = html_print_input_text(
'snmp_community',
$snmp_community,
'',
15,
60,
true,
false
);
} }
$data[2] = _('SNMP version'); $data[2] = _('SNMP version');
@ -213,8 +239,27 @@ $data[1] .= html_print_input_text(
$classdisabledBecauseInPolicy $classdisabledBecauseInPolicy
); );
$data[1] .= '<span class="invisible" id="oid">'; $data[1] .= '<span class="invisible" id="oid">';
$data[1] .= html_print_select([], 'select_snmp_oid', $snmp_oid, '', '', 0, true, false, false, '', $disabledBecauseInPolicy); $data[1] .= html_print_select(
$data[1] .= html_print_image('images/edit.png', true, ['class' => 'invisible clickable', 'id' => 'edit_oid']); [],
'select_snmp_oid',
$snmp_oid,
'',
'',
0,
true,
false,
false,
'',
$disabledBecauseInPolicy
);
$data[1] .= html_print_image(
'images/edit.png',
true,
[
'class' => 'invisible clickable',
'id' => 'edit_oid',
]
);
$data[1] .= '</span>'; $data[1] .= '</span>';
$data[1] .= '</span><span class="right" style="width: 50%; text-align: right">'; $data[1] .= '</span><span class="right" style="width: 50%; text-align: right">';
$data[1] .= html_print_button( $data[1] .= html_print_button(
@ -231,42 +276,50 @@ $table_simple->colspan['snmp_2'][1] = 3;
push_table_simple($data, 'snmp_2'); push_table_simple($data, 'snmp_2');
// Advanced stuff // Advanced stuff.
$data = []; $data = [];
$data[0] = __('TCP send'); $data[0] = __('TCP send');
$data[1] = html_print_textarea('tcp_send', 2, 65, $tcp_send, $disabledTextBecauseInPolicy, true, $largeclassdisabledBecauseInPolicy); $data[1] = html_print_textarea(
'tcp_send',
2,
65,
$tcp_send,
$disabledTextBecauseInPolicy,
true,
$largeclassdisabledBecauseInPolicy
);
$table_simple->colspan['tcp_send'][1] = 3; $table_simple->colspan['tcp_send'][1] = 3;
push_table_simple($data, 'tcp_send'); push_table_simple($data, 'tcp_send');
$data[0] = __('TCP receive'); $data[0] = __('TCP receive');
$data[1] = html_print_textarea('tcp_rcv', 2, 65, $tcp_rcv, $disabledTextBecauseInPolicy, true, $largeclassdisabledBecauseInPolicy); $data[1] = html_print_textarea(
'tcp_rcv',
2,
65,
$tcp_rcv,
$disabledTextBecauseInPolicy,
true,
$largeclassdisabledBecauseInPolicy
);
$table_simple->colspan['tcp_receive'][1] = 3; $table_simple->colspan['tcp_receive'][1] = 3;
push_table_simple($data, 'tcp_receive'); push_table_simple($data, 'tcp_receive');
if ($id_module_type < 8 || $id_module_type > 11) { if ($id_module_type < 8 || $id_module_type > 11) {
// NOT TCP // NOT TCP.
$table_simple->rowstyle['tcp_send'] = 'display: none;'; $table_simple->rowstyle['tcp_send'] = 'display: none;';
$table_simple->rowstyle['tcp_receive'] = 'display: none;'; $table_simple->rowstyle['tcp_receive'] = 'display: none;';
} }
if ($id_module_type < 15 || $id_module_type > 18) { if ($id_module_type < 15 || $id_module_type > 18) {
// NOT SNMP // NOT SNMP.
$table_simple->rowstyle['snmp_1'] = 'display: none'; $table_simple->rowstyle['snmp_1'] = 'display: none';
$table_simple->rowstyle['snmp_2'] = 'display: none'; $table_simple->rowstyle['snmp_2'] = 'display: none';
} }
// For a policy // For a policy.
if (!isset($id_agent_module)) { if (isset($id_agent_module) === false || $id_agent_module === false) {
$snmp3_auth_user = '';
$snmp3_auth_pass = '';
$snmp_version = 1;
$snmp3_privacy_method = '';
$snmp3_privacy_pass = '';
$snmp3_auth_method = '';
$snmp3_security_level = '';
} else if ($id_agent_module === false) {
$snmp3_auth_user = ''; $snmp3_auth_user = '';
$snmp3_auth_pass = ''; $snmp3_auth_pass = '';
$snmp_version = 1; $snmp_version = 1;
@ -274,6 +327,9 @@ if (!isset($id_agent_module)) {
$snmp3_privacy_pass = ''; $snmp3_privacy_pass = '';
$snmp3_auth_method = ''; $snmp3_auth_method = '';
$snmp3_security_level = ''; $snmp3_security_level = '';
$command_text = '';
$command_os = 'inherited';
$command_credential_identifier = '';
} }
$data = []; $data = [];
@ -333,7 +389,22 @@ push_table_simple($data, 'field_snmpv3_row2');
$data = []; $data = [];
$data[0] = __('Auth method'); $data[0] = __('Auth method');
$data[1] = html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'snmp3_auth_method', $snmp3_auth_method, '', '', '', true, false, false, '', $disabledBecauseInPolicy); $data[1] = html_print_select(
[
'MD5' => __('MD5'),
'SHA' => __('SHA'),
],
'snmp3_auth_method',
$snmp3_auth_method,
'',
'',
'',
true,
false,
false,
'',
$disabledBecauseInPolicy
);
$data[2] = __('Security level'); $data[2] = __('Security level');
$data[3] = html_print_select( $data[3] = html_print_select(
[ [
@ -358,13 +429,84 @@ if ($snmp_version != 3) {
push_table_simple($data, 'field_snmpv3_row3'); push_table_simple($data, 'field_snmpv3_row3');
$data = [];
$data[0] = __('Command');
$data[1] = html_print_input_text_extended(
'command_text',
$command_text,
'command_text',
'',
100,
10000,
$disabledBecauseInPolicy,
'',
$largeClassDisabledBecauseInPolicy,
true
);
$table_simple->colspan['row-cmd-row-1'][1] = 3;
push_table_simple($data, 'row-cmd-row-1');
require_once $config['homedir'].'/include/class/CredentialStore.class.php';
$array_credential_identifier = CredentialStore::getKeys('CUSTOM');
$data[0] = __('Credential identifier');
$data[1] = html_print_select(
$array_credential_identifier,
'command_credential_identifier',
$command_credential_identifier,
'',
__('None'),
'',
true,
false,
false,
'',
$disabledBecauseInPolicy
);
$array_os = [
'inherited' => __('Inherited'),
'linux' => __('Linux'),
'windows' => __('Windows'),
];
$data[2] = __('Target OS');
$data[3] = html_print_select(
$array_os,
'command_os',
$command_os,
'',
'',
'',
true,
false,
false,
'',
$disabledBecauseInPolicy
);
push_table_simple($data, 'row-cmd-row-2');
if ($id_module_type !== 34
&& $id_module_type !== 35
&& $id_module_type !== 36
&& $id_module_type !== 37
) {
$table_simple->rowstyle['row-cmd-row-1'] = 'display: none;';
$table_simple->rowstyle['row-cmd-row-2'] = 'display: none;';
}
snmp_browser_print_container(false, '100%', '60%', 'none'); snmp_browser_print_container(false, '100%', '60%', 'none');
?> ?>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready (function () { $(document).ready (function () {
$("#id_module_type").change(function (){ $("#id_module_type").change(function (){
if ((this.value == "17") || (this.value == "18") || (this.value == "16") || (this.value == "15")) { if ((this.value == "17") ||
(this.value == "18") ||
(this.value == "16") ||
(this.value == "15")
) {
if ($("#snmp_version").val() == "3"){ if ($("#snmp_version").val() == "3"){
$("#simple-field_snmpv3_row1").attr("style", ""); $("#simple-field_snmpv3_row1").attr("style", "");
$("#simple-field_snmpv3_row2").attr("style", ""); $("#simple-field_snmpv3_row2").attr("style", "");
@ -379,6 +521,18 @@ $(document).ready (function () {
$("input[name=active_snmp_v3]").val(0); $("input[name=active_snmp_v3]").val(0);
$("input[name=snmp_community]").removeAttr('disabled'); $("input[name=snmp_community]").removeAttr('disabled');
} }
if((this.value == "34") ||
(this.value == "35") ||
(this.value == "36") ||
(this.value == "37")
) {
$("#simple-row-cmd-row-1").attr("style", "");
$("#simple-row-cmd-row-2").attr("style", "");
} else {
$("#simple-row-cmd-row-1").css("display", "none");
$("#simple-row-cmd-row-2").css("display", "none");
}
}); });
$("#snmp_version").change(function () { $("#snmp_version").change(function () {
@ -412,7 +566,8 @@ $(document).ready (function () {
function () { function () {
$(this).css ("width", "auto"); $(this).css ("width", "auto");
$(this).css ("min-width", "180px"); $(this).css ("min-width", "180px");
}); }
);
$("#id_module_type").blur (function () { $("#id_module_type").blur (function () {
$(this).css ("width", "180px"); $(this).css ("width", "180px");
@ -433,7 +588,6 @@ $(document).ready (function () {
}); });
$('#snmp_version').change(function() { $('#snmp_version').change(function() {
$('#snmp_browser_version').val($(this).val()); $('#snmp_browser_version').val($(this).val());
// Display or collapse the SNMP browser's v3 options // Display or collapse the SNMP browser's v3 options
checkSNMPVersion (); checkSNMPVersion ();
}); });

View File

@ -1,17 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars
global $config; global $config;
check_login(); check_login();
@ -32,7 +47,7 @@ require_once $config['homedir'].'/include/functions_categories.php';
enterprise_include_once('meta/include/functions_components_meta.php'); enterprise_include_once('meta/include/functions_components_meta.php');
require_once $config['homedir'].'/include/functions_component_groups.php'; require_once $config['homedir'].'/include/functions_component_groups.php';
// Header // Header.
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
components_meta_print_header(); components_meta_print_header();
$sec = 'advanced'; $sec = 'advanced';
@ -40,15 +55,6 @@ if (defined('METACONSOLE')) {
$id_modulo = (int) get_parameter('id_component_type'); $id_modulo = (int) get_parameter('id_component_type');
$new_component = (bool) get_parameter('new_component'); $new_component = (bool) get_parameter('new_component');
} else { } else {
/*
Hello there! :)
We added some of what seems to be "buggy" messages to the openSource version recently. This is not to force open-source users to move to the enterprise version, this is just to inform people using Pandora FMS open source that it requires skilled people to maintain and keep it running smoothly without professional support. This does not imply open-source version is limited in any way. If you check the recently added code, it contains only warnings and messages, no limitations except one: we removed the option to add custom logo in header. In the Update Manager section, it warns about the 'danger of applying automated updates without a proper backup, remembering in the process that the Enterprise version comes with a human-tested package. Maintaining an OpenSource version with more than 500 agents is not so easy, that's why someone using a Pandora with 8000 agents should consider asking for support. It's not a joke, we know of many setups with a huge number of agents, and we hate to hear that “its becoming unstable and slow” :(
You can of course remove the warnings, that's why we include the source and do not use any kind of trick. And that's why we added here this comment, to let you know this does not reflect any change in our opensource mentality of does the last 14 years.
*/
$id_modulo = (int) get_parameter('id_component_type'); $id_modulo = (int) get_parameter('id_component_type');
$new_component = (bool) get_parameter('new_component'); $new_component = (bool) get_parameter('new_component');
if ($id_modulo == 2 || $id_modulo == 4 || $id_modulo == 6) { if ($id_modulo == 2 || $id_modulo == 4 || $id_modulo == 6) {
@ -59,7 +65,6 @@ if (defined('METACONSOLE')) {
$help_header = 'network_component_tab'; $help_header = 'network_component_tab';
} }
ui_print_page_header( ui_print_page_header(
__('Module management').' &raquo; '.__('Network component management'), __('Module management').' &raquo; '.__('Network component management'),
'', '',
@ -73,7 +78,6 @@ if (defined('METACONSOLE')) {
$sec = 'gmodules'; $sec = 'gmodules';
} }
$type = (int) get_parameter('type'); $type = (int) get_parameter('type');
$name = (string) get_parameter('name'); $name = (string) get_parameter('name');
$description = (string) get_parameter('description'); $description = (string) get_parameter('description');
@ -120,7 +124,7 @@ $history_data = (bool) get_parameter('history_data');
// Don't read as (float) because it lost it's decimals when put into MySQL // Don't read as (float) because it lost it's decimals when put into MySQL
// where are very big and PHP uses scientific notation, p.e: // where are very big and PHP uses scientific notation, p.e:
// 1.23E-10 is 0.000000000123 // 1.23E-10 is 0.000000000123.
$post_process = (string) get_parameter('post_process', 0.0); $post_process = (string) get_parameter('post_process', 0.0);
$unit = (string) get_parameter('unit'); $unit = (string) get_parameter('unit');
@ -151,9 +155,16 @@ $snmp3_auth_user = (string) io_safe_output(get_parameter('snmp3_auth_user'));
$snmp3_auth_pass = io_input_password((string) get_parameter('snmp3_auth_pass')); $snmp3_auth_pass = io_input_password((string) get_parameter('snmp3_auth_pass'));
$snmp3_auth_method = (string) get_parameter('snmp3_auth_method'); $snmp3_auth_method = (string) get_parameter('snmp3_auth_method');
$snmp3_privacy_method = (string) get_parameter('snmp3_privacy_method'); $snmp3_privacy_method = (string) get_parameter('snmp3_privacy_method');
$snmp3_privacy_pass = io_input_password((string) get_parameter('snmp3_privacy_pass')); $snmp3_privacy_pass = io_input_password(
(string) get_parameter('snmp3_privacy_pass')
);
$snmp3_security_level = (string) get_parameter('snmp3_security_level'); $snmp3_security_level = (string) get_parameter('snmp3_security_level');
$command_text = (string) get_parameter('command_text');
$command_credential_identifier = (string) get_parameter(
'command_credential_identifier'
);
$command_os = (string) get_parameter('command_os');
$throw_unknown_events = get_parameter('throw_unknown_events', false); $throw_unknown_events = get_parameter('throw_unknown_events', false);
// Set the event type that can show. // Set the event type that can show.
@ -163,11 +174,19 @@ $disabled_types_event = json_encode($disabled_types_event);
$create_component = (bool) get_parameter('create_component'); $create_component = (bool) get_parameter('create_component');
$update_component = (bool) get_parameter('update_component'); $update_component = (bool) get_parameter('update_component');
$delete_component = (bool) get_parameter('delete_component'); $delete_component = (bool) get_parameter('delete_component');
$duplicate_network_component = (bool) get_parameter('duplicate_network_component'); $duplicate_network_component = (bool) get_parameter(
'duplicate_network_component'
);
$delete_multiple = (bool) get_parameter('delete_multiple'); $delete_multiple = (bool) get_parameter('delete_multiple');
$multiple_delete = (bool) get_parameter('multiple_delete', 0); $multiple_delete = (bool) get_parameter('multiple_delete', 0);
$create_network_from_module = (bool) get_parameter('create_network_from_module', 0); $create_network_from_module = (bool) get_parameter(
$create_network_from_snmp_browser = (bool) get_parameter('create_network_from_snmp_browser', 0); 'create_network_from_module',
0
);
$create_network_from_snmp_browser = (bool) get_parameter(
'create_network_from_snmp_browser',
0
);
if ($duplicate_network_component) { if ($duplicate_network_component) {
$source_id = (int) get_parameter('source_id'); $source_id = (int) get_parameter('source_id');
@ -182,29 +201,20 @@ if ($duplicate_network_component) {
__('Could not be created') __('Could not be created')
); );
// List unset for jump the bug in the pagination (TODO) that the make another // List unset for jump the bug in the pagination
// copy for each pass into pages. // that the make another copy for each pass into pages.
unset($_GET['source_id']); unset($_GET['source_id']);
unset($_GET['duplicate_network_component']); unset($_GET['duplicate_network_component']);
$id = 0; $id = 0;
} }
if ($create_component) { $custom_string_1 = '';
$custom_string_1 = ''; $custom_string_2 = '';
$custom_string_2 = ''; $custom_string_3 = '';
$custom_string_3 = '';
$name_check = db_get_value(
'name',
'tnetwork_component',
'name',
$name
);
// remote_snmp = 15 if ($type >= 15 && $type <= 18) {
// remote_snmp_proc = 18 // New support for snmp v3.
if ($type >= 15 && $type <= 18) {
// New support for snmp v3
$tcp_send = $snmp_version; $tcp_send = $snmp_version;
$plugin_user = $snmp3_auth_user; $plugin_user = $snmp3_auth_user;
$plugin_pass = $snmp3_auth_pass; $plugin_pass = $snmp3_auth_pass;
@ -212,13 +222,19 @@ if ($create_component) {
$custom_string_1 = $snmp3_privacy_method; $custom_string_1 = $snmp3_privacy_method;
$custom_string_2 = $snmp3_privacy_pass; $custom_string_2 = $snmp3_privacy_pass;
$custom_string_3 = $snmp3_security_level; $custom_string_3 = $snmp3_security_level;
} else if ($type >= 34 && $type <= 37) {
$tcp_send = $command_text;
$custom_string_1 = $command_credential_identifier;
$custom_string_2 = $command_os;
}
if ($create_component) {
$name_check = db_get_value( $name_check = db_get_value(
'name', 'name',
'tnetwork_component', 'tnetwork_component',
'name', 'name',
$name $name
); );
}
if ($name && !$name_check) { if ($name && !$name_check) {
$id = network_components_create_network_component( $id = network_components_create_network_component(
@ -283,13 +299,16 @@ if ($create_component) {
} }
if ($id === false || !$id) { if ($id === false || !$id) {
db_pandora_audit('Module management', 'Fail try to create network component'); db_pandora_audit(
'Module management',
'Fail try to create network component'
);
ui_print_error_message(__('Could not be created')); ui_print_error_message(__('Could not be created'));
include_once 'godmode/modules/manage_network_components_form.php'; include_once 'godmode/modules/manage_network_components_form.php';
return; return;
} }
db_pandora_audit('Module management', "Create network component #$id"); db_pandora_audit('Module management', 'Create network component #'.$id);
ui_print_success_message(__('Created successfully')); ui_print_success_message(__('Created successfully'));
$id = 0; $id = 0;
} }
@ -297,23 +316,6 @@ if ($create_component) {
if ($update_component) { if ($update_component) {
$id = (int) get_parameter('id'); $id = (int) get_parameter('id');
$custom_string_1 = '';
$custom_string_2 = '';
$custom_string_3 = '';
// $name_check = db_get_value ('name', 'tnetwork_component', 'name', $name);
if ($type >= 15 && $type <= 18) {
// New support for snmp v3
$tcp_send = $snmp_version;
$plugin_user = $snmp3_auth_user;
$plugin_pass = $snmp3_auth_pass;
$plugin_parameter = $snmp3_auth_method;
$custom_string_1 = $snmp3_privacy_method;
$custom_string_2 = $snmp3_privacy_pass;
$custom_string_3 = $snmp3_security_level;
// $name_check = db_get_value ('name', 'tnetwork_component', 'name', $name);
}
if (!empty($name)) { if (!empty($name)) {
$result = network_components_update_network_component( $result = network_components_update_network_component(
$id, $id,
@ -380,14 +382,14 @@ if ($update_component) {
if ($result === false || !$result) { if ($result === false || !$result) {
db_pandora_audit( db_pandora_audit(
'Module management', 'Module management',
"Fail try to update network component #$id" 'Fail try to update network component #'.$id
); );
ui_print_error_message(__('Could not be updated')); ui_print_error_message(__('Could not be updated'));
include_once 'godmode/modules/manage_network_components_form.php'; include_once 'godmode/modules/manage_network_components_form.php';
return; return;
} }
db_pandora_audit('Module management', "Update network component #$id"); db_pandora_audit('Module management', 'Update network component #'.$id);
ui_print_success_message(__('Updated successfully')); ui_print_success_message(__('Updated successfully'));
$id = 0; $id = 0;
@ -401,12 +403,12 @@ if ($delete_component) {
if ($result) { if ($result) {
db_pandora_audit( db_pandora_audit(
'Module management', 'Module management',
"Delete network component #$id" 'Delete network component #'.$id
); );
} else { } else {
db_pandora_audit( db_pandora_audit(
'Module management', 'Module management',
"Fail try to delete network component #$id" 'Fail try to delete network component #'.$id
); );
} }
@ -433,12 +435,12 @@ if ($multiple_delete) {
if ($result) { if ($result) {
db_pandora_audit( db_pandora_audit(
'Module management', 'Module management',
"Multiple delete network component: $str_ids" 'Multiple delete network component:'.$str_ids
); );
} else { } else {
db_pandora_audit( db_pandora_audit(
'Module management', 'Module management',
"Fail try to delete network component: $str_ids" 'Fail try to delete network component:'.$str_ids
); );
} }
@ -451,7 +453,10 @@ if ($multiple_delete) {
$id = 0; $id = 0;
} }
if ($id || $new_component || $create_network_from_module || $create_network_from_snmp_browser) { if ($id || $new_component
|| $create_network_from_module
|| $create_network_from_snmp_browser
) {
include_once $config['homedir'].'/godmode/modules/manage_network_components_form.php'; include_once $config['homedir'].'/godmode/modules/manage_network_components_form.php';
return; return;
} }
@ -558,7 +563,7 @@ foreach ($component_groups as $component_group_key => $component_group_val) {
} }
} }
// Only show component groups with local components // Only show component groups with local components.
if ($num_components == 0 && $num_components_childs == 0) { if ($num_components == 0 && $num_components_childs == 0) {
unset($component_groups[$component_group_key]); unset($component_groups[$component_group_key]);
} }
@ -622,7 +627,11 @@ if ($search_string != '') {
$filter[] = '(name LIKE '."'%".$search_string."%'".'OR description LIKE '."'%".$search_string."%'".'OR tcp_send LIKE '."'%".$search_string."%'".'OR tcp_rcv LIKE '."'%".$search_string."%'".')'; $filter[] = '(name LIKE '."'%".$search_string."%'".'OR description LIKE '."'%".$search_string."%'".'OR tcp_send LIKE '."'%".$search_string."%'".'OR tcp_rcv LIKE '."'%".$search_string."%'".')';
} }
$total_components = network_components_get_network_components(false, $filter, 'COUNT(*) AS total'); $total_components = network_components_get_network_components(
false,
$filter,
'COUNT(*) AS total'
);
$total_components = $total_components[0]['total']; $total_components = $total_components[0]['total'];
ui_pagination($total_components, $url); ui_pagination($total_components, $url);
$filter['offset'] = (int) get_parameter('offset'); $filter['offset'] = (int) get_parameter('offset');
@ -651,7 +660,13 @@ unset($table);
$table->width = '100%'; $table->width = '100%';
$table->head = []; $table->head = [];
$table->class = 'info_table'; $table->class = 'info_table';
$table->head['checkbox'] = html_print_checkbox('all_delete', 0, false, true, false); $table->head['checkbox'] = html_print_checkbox(
'all_delete',
0,
false,
true,
false
);
$table->head[0] = __('Module name'); $table->head[0] = __('Module name');
$table->head[1] = __('Type'); $table->head[1] = __('Type');
$table->head[3] = __('Description'); $table->head[3] = __('Description');
@ -669,12 +684,21 @@ foreach ($components as $component) {
$data = []; $data = [];
if ($component['max'] == $component['min'] && $component['max'] == 0) { if ($component['max'] == $component['min'] && $component['max'] == 0) {
$component['max'] = $component['min'] = __('N/A'); $component['max'] = __('N/A');
$component['min'] = __('N/A');
} }
$data['checkbox'] = html_print_checkbox_extended('delete_multiple[]', $component['id_nc'], false, false, '', 'class="check_delete"', true); $data['checkbox'] = html_print_checkbox_extended(
'delete_multiple[]',
$component['id_nc'],
false,
false,
'',
'class="check_delete"',
true
);
$data[0] = '<a href="index.php?sec='.$sec.'&'.'sec2=godmode/modules/manage_network_components&'.'id='.$component['id_nc'].'&pure='.$pure.'">'; $data[0] = '<a href="index.php?sec='.$sec.'&sec2=godmode/modules/manage_network_components&id='.$component['id_nc'].'&pure='.$pure.'">';
$data[0] .= io_safe_output($component['name']); $data[0] .= io_safe_output($component['name']);
$data[0] .= '</a>'; $data[0] .= '</a>';
$data[1] = ui_print_moduletype_icon($component['type'], true); $data[1] = ui_print_moduletype_icon($component['type'], true);
@ -702,6 +726,10 @@ foreach ($components as $component) {
['title' => __('Plug-in module')] ['title' => __('Plug-in module')]
); );
break; break;
default:
// Not possible.
break;
} }
$data[3] = "<span style='font-size: 8px'>".mb_strimwidth(io_safe_output($component['description']), 0, 60, '...').'</span>'; $data[3] = "<span style='font-size: 8px'>".mb_strimwidth(io_safe_output($component['description']), 0, 60, '...').'</span>';
@ -719,13 +747,32 @@ if (isset($data)) {
echo "<form method='post' action='index.php?sec=".$sec.'&sec2=godmode/modules/manage_network_components&search_id_group=0search_string=&pure='.$pure."'>"; echo "<form method='post' action='index.php?sec=".$sec.'&sec2=godmode/modules/manage_network_components&search_id_group=0search_string=&pure='.$pure."'>";
html_print_input_hidden('multiple_delete', 1); html_print_input_hidden('multiple_delete', 1);
html_print_table($table); html_print_table($table);
ui_pagination($total_components, $url, 0, 0, false, 'offset', true, 'pagination-bottom'); ui_pagination(
$total_components,
$url,
0,
0,
false,
'offset',
true,
'pagination-bottom'
);
echo "<div style='float: right; margin-left: 5px;'>"; echo "<div style='float: right; margin-left: 5px;'>";
html_print_submit_button(__('Delete'), 'delete_btn', false, 'class="sub delete"'); html_print_submit_button(
__('Delete'),
'delete_btn',
false,
'class="sub delete"'
);
echo '</div>'; echo '</div>';
echo '</form>'; echo '</form>';
} else { } else {
ui_print_info_message(['no_close' => true, 'message' => __('There are no defined network components') ]); ui_print_info_message(
[
'no_close' => true,
'message' => __('There are no defined network components'),
]
);
} }
echo '<form method="post" action="'.$url.'">'; echo '<form method="post" action="'.$url.'">';
@ -744,7 +791,12 @@ html_print_select(
'', '',
'' ''
); );
html_print_submit_button(__('Create'), 'crt', false, 'class="sub next" style="margin-left: 5px;"'); html_print_submit_button(
__('Create'),
'crt',
false,
'class="sub next" style="margin-left: 5px;"'
);
echo '</div>'; echo '</div>';
echo '</form>'; echo '</form>';
@ -752,9 +804,7 @@ enterprise_hook('close_meta_frame');
?> ?>
<script type="text/javascript"> <script type="text/javascript">
$( document ).ready(function() { $( document ).ready(function() {
$('[id^=checkbox-delete_multiple]').change(function(){ $('[id^=checkbox-delete_multiple]').change(function(){
if($(this).parent().parent().hasClass('checkselected')){ if($(this).parent().parent().hasClass('checkselected')){
$(this).parent().parent().removeClass('checkselected'); $(this).parent().parent().removeClass('checkselected');
@ -766,16 +816,21 @@ enterprise_hook('close_meta_frame');
$('[id^=checkbox-all_delete]').change(function(){ $('[id^=checkbox-all_delete]').change(function(){
if ($("#checkbox-all_delete").prop("checked")) { if ($("#checkbox-all_delete").prop("checked")) {
$('[id^=checkbox-delete_multiple]').parent().parent().addClass('checkselected'); $('[id^=checkbox-delete_multiple]')
$(".check_delete").prop("checked", true); .parent()
.parent()
.addClass('checkselected');
$(".check_delete")
.prop("checked", true);
} }
else{ else{
$('[id^=checkbox-delete_multiple]').parent().parent().removeClass('checkselected'); $('[id^=checkbox-delete_multiple]')
.parent()
.parent()
.removeClass('checkselected');
$(".check_delete").prop("checked", false); $(".check_delete").prop("checked", false);
} }
}); });
}); });
</script> </script>

View File

@ -1,17 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars
global $config; global $config;
check_login(); check_login();
@ -26,12 +41,18 @@ if (! check_acl($config['id_user'], 0, 'PM')) {
} }
$create_network_from_module = get_parameter('create_network_from_module'); $create_network_from_module = get_parameter('create_network_from_module');
$create_network_from_snmp_browser = get_parameter('create_network_from_snmp_browser', 0); $create_network_from_snmp_browser = get_parameter(
'create_network_from_snmp_browser',
0
);
$pure = get_parameter('pure', 0); $pure = get_parameter('pure', 0);
if ($create_network_from_module) { if ($create_network_from_module) {
$id_agentmodule = get_parameter('create_module_from'); $id_agentmodule = get_parameter('create_module_from');
$data_module = db_get_row_filter('tagente_modulo', ['id_agente_modulo' => $id_agentmodule]); $data_module = db_get_row_filter(
'tagente_modulo',
['id_agente_modulo' => $id_agentmodule]
);
$name = $data_module['nombre']; $name = $data_module['nombre'];
$description = $data_module['descripcion']; $description = $data_module['descripcion'];
@ -139,16 +160,25 @@ if (isset($id)) {
$each_ff = $component['each_ff']; $each_ff = $component['each_ff'];
if ($type >= 15 && $type <= 18) { if ($type >= 15 && $type <= 18) {
// New support for snmp v3 // New support for snmp v3.
$snmp_version = $component['tcp_send']; $snmp_version = $component['tcp_send'];
$snmp3_auth_user = $component['plugin_user']; $snmp3_auth_user = $component['plugin_user'];
$snmp3_auth_pass = io_output_password($component['plugin_pass']); $snmp3_auth_pass = io_output_password($component['plugin_pass']);
$snmp3_auth_method = $component['plugin_parameter']; $snmp3_auth_method = $component['plugin_parameter'];
$snmp3_privacy_method = $component['custom_string_1']; $snmp3_privacy_method = $component['custom_string_1'];
$snmp3_privacy_pass = io_output_password($component['custom_string_2']); $snmp3_privacy_pass = io_output_password(
$component['custom_string_2']
);
$snmp3_security_level = $component['custom_string_3']; $snmp3_security_level = $component['custom_string_3'];
} else if ($type >= 34 && $type <= 37) {
$command_text = $component['tcp_send'];
$command_credential_identifier = $component['custom_string_1'];
$command_os = $component['custom_string_2'];
} }
} else if (isset($new_component) && $new_component && !$create_network_from_snmp_browser) { } else if (isset($new_component)
&& $new_component
&& !$create_network_from_snmp_browser
) {
$name = ''; $name = '';
$snmp_oid = ''; $snmp_oid = '';
$description = ''; $description = '';
@ -204,21 +234,13 @@ if (isset($id)) {
$snmp3_privacy_pass = ''; $snmp3_privacy_pass = '';
$snmp3_auth_method = ''; $snmp3_auth_method = '';
$snmp3_security_level = ''; $snmp3_security_level = '';
$command_text = '';
$command_os = 'inherited';
$command_credential_identifier = '';
} }
} }
if ($create_network_from_snmp_browser) {
}
/*
* $id_component_type has these values:
* 6 - Module WMI
* 4 - Plugin component
* 2 - network component
*
* You can see this values in file godmode/modules/manage_network_components.php
* in the last lines (in the call function "html_print_select").
*/
$table = new stdClass(); $table = new stdClass();
if ($id_component_type == 6) { if ($id_component_type == 6) {
@ -243,6 +265,10 @@ if ($id_component_type == 6) {
4, 4,
5, 5,
]; ];
if (enterprise_installed()) {
$categories[] = 10;
}
include $config['homedir'].'/godmode/modules/manage_network_components_form_common.php'; include $config['homedir'].'/godmode/modules/manage_network_components_form_common.php';
include $config['homedir'].'/godmode/modules/manage_network_components_form_network.php'; include $config['homedir'].'/godmode/modules/manage_network_components_form_network.php';
} else { } else {
@ -253,7 +279,7 @@ echo '<form name="component" method="post">';
$table->width = '100%'; $table->width = '100%';
$table->class = 'databox filters'; $table->class = 'databox filters';
// $table came from manage_network_components_form_common.php
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
if ($id) { if ($id) {
$table->head[0] = __('Update Network Component'); $table->head[0] = __('Update Network Component');
@ -295,57 +321,74 @@ ui_require_javascript_file('pandora_modules');
function type_change () { function type_change () {
// type 1-4 - Generic_xxxxxx // type 1-4 - Generic_xxxxxx
if ((document.component.type.value > 0) && (document.component.type.value < 5)) { if ((document.component.type.value > 0) && (document.component.type.value < 5)) {
$("input[name=snmp_community]")
$("input[name=snmp_community]").css({backgroundColor: '#ddd !important'}); .css({backgroundColor: '#ddd '});
$("input[name=snmp_community]").attr("disabled", true); $("input[name=snmp_community]").attr("disabled", true);
$("input[name=tcp_rcv]").css({backgroundColor: '#ddd !important'}); $("input[name=tcp_rcv]").css({backgroundColor: '#ddd '});
$("input[name=tcp_rcv]").attr("disabled", true); $("input[name=tcp_rcv]").attr("disabled", true);
<?php <?php
if ($id_component_type != MODULE_WMI) { if ($id_component_type != MODULE_WMI) {
?> ?>
$("input[name=snmp_oid]").css({backgroundColor: '#ddd !important'}); $("input[name=snmp_oid]")
.css({backgroundColor: '#ddd '});
$("input[name=snmp_oid]").attr("disabled", true); $("input[name=snmp_oid]").attr("disabled", true);
$("input[name=tcp_send]").css({backgroundColor: '#ddd !important'}); $("input[name=tcp_send]")
.css({backgroundColor: '#ddd '});
$("input[name=tcp_send]").attr("disabled", true); $("input[name=tcp_send]").attr("disabled", true);
$("input[name=tcp_port]").css({backgroundColor: '#ddd !important'}); $("input[name=tcp_port]")
.css({backgroundColor: '#ddd '});
$("input[name=tcp_port]").attr("disabled", true); $("input[name=tcp_port]").attr("disabled", true);
<?php <?php
} }
?> ?>
$("input[name=snmp3_auth_user]").css({backgroundColor: '#ddd !important'}); $("input[name=snmp3_auth_user]")
.css({backgroundColor: '#ddd '});
$("input[name=snmp3_auth_user]").attr("disabled", true); $("input[name=snmp3_auth_user]").attr("disabled", true);
$("input[name=snmp3_auth_pass]").css({backgroundColor: '#ddd !important'}); $("input[name=snmp3_auth_pass]")
.css({backgroundColor: '#ddd '});
$("input[name=snmp3_auth_pass]").attr("disabled", true); $("input[name=snmp3_auth_pass]").attr("disabled", true);
$("#snmp3_privacy_method").css({backgroundColor: '#ddd !important'}); $("#snmp3_privacy_method").css({backgroundColor: '#ddd '});
$("#snmp3_privacy_method").attr("disabled", true); $("#snmp3_privacy_method").attr("disabled", true);
$("input[name=snmp3_privacy_pass]").css({backgroundColor: '#ddd !important'}); $("input[name=snmp3_privacy_pass]")
.css({backgroundColor: '#ddd '});
$("input[name=snmp3_privacy_pass]").attr("disabled", true); $("input[name=snmp3_privacy_pass]").attr("disabled", true);
$("#snmp3_auth_method").css({backgroundColor: '#ddd !important'}); $("#snmp3_auth_method").css({backgroundColor: '#ddd '});
$("#snmp3_auth_method").attr("disabled", true); $("#snmp3_auth_method").attr("disabled", true);
$("#snmp3_security_level").css({backgroundColor: '#ddd !important'}); $("#snmp3_security_level").css({backgroundColor: '#ddd '});
$("#snmp3_security_level").attr("disabled", true); $("#snmp3_security_level").attr("disabled", true);
$("#command_text").css({backgroundColor: '#ddd '});
$("#command_text").attr("disabled", true);
$("#command_credential_identifier")
.css({backgroundColor: '#ddd '});
$("#command_credential_identifier").attr("disabled", true);
$("#command_os").css({backgroundColor: '#ddd '});
$("#command_os").attr("disabled", true);
} }
// type 15-18- SNMP // type 15-18- SNMP
if ((document.component.type.value > 14) && (document.component.type.value < 19 )) { if ((document.component.type.value > 14) && (document.component.type.value < 19 )) {
document.component.snmp_oid.style.background="#fff"; document.component.snmp_oid.style.background="#fff";
document.component.snmp_oid.style.disabled=false; document.component.snmp_oid.disabled=false;
document.component.snmp_community.style.background="#fff";
document.component.snmp_community.disabled=false; document.getElementById('text-snmp_community').style.background="#fff";
document.getElementById('text-snmp_community').disabled=false;
document.component.snmp_oid.style.background="#fff"; document.component.snmp_oid.style.background="#fff";
document.component.snmp_oid.disabled=false; document.component.snmp_oid.disabled=false;
document.component.tcp_send.style.background="#ddd !important"; document.component.tcp_send.style.background="#ddd ";
document.component.tcp_send.disabled=true; document.component.tcp_send.disabled=true;
document.component.tcp_rcv.style.background="#ddd !important"; document.component.tcp_rcv.style.background="#ddd ";
document.component.tcp_rcv.disabled=true; document.component.tcp_rcv.disabled=true;
document.component.tcp_port.style.background="#fff"; document.component.tcp_port.style.background="#fff";
document.component.tcp_port.disabled=false; document.component.tcp_port.disabled=false;
@ -365,44 +408,97 @@ function type_change () {
document.component.snmp3_security_level.style.background="#fff"; document.component.snmp3_security_level.style.background="#fff";
document.component.snmp3_security_level.disabled=false; document.component.snmp3_security_level.disabled=false;
document.component.command_text.style.background="#ddd";
document.component.command_text.style.disabled=true;
document.component.command_credential_identifier.style.background="#ddd";
document.component.command_credential_identifier.disabled=true;
document.component.command_os.style.background="#ddd";
document.component.command_os.disabled=true;
$("#snmp_version" ).trigger("change"); $("#snmp_version" ).trigger("change");
} }
if ((document.component.type.value >= 34) && (document.component.type.value <= 37 )) {
document.component.snmp_oid.style.background="#ddd";
document.component.snmp_oid.disabled=true;
document.getElementById('text-snmp_community').style.background="#ddd";
document.getElementById('text-snmp_community').disabled=true;
document.component.snmp_oid.style.background="#ddd";
document.component.snmp_oid.disabled=true;
document.component.snmp_version.style.background="#ddd";
document.component.snmp_version.disabled=true;
document.component.tcp_send.style.background="#ddd";
document.component.tcp_send.disabled=true;
document.component.tcp_rcv.style.background="#ddd";
document.component.tcp_rcv.disabled=true;
document.component.tcp_port.style.background="#fff";
document.component.tcp_port.disabled=false;
document.component.snmp3_auth_user.style.background="#ddd ";
document.component.snmp3_auth_user.disabled=true;
document.component.snmp3_auth_pass.background="#ddd ";
document.component.snmp3_auth_pass.disabled=true;
document.component.snmp3_privacy_method.style.background="#ddd ";
document.component.snmp3_privacy_method.disabled=true;
document.component.snmp3_privacy_pass.style.background="#ddd ";
document.component.snmp3_privacy_pass.disabled=true;
document.component.snmp3_auth_method.style.background="#ddd ";
document.component.snmp3_auth_method.disabled=true;
document.component.snmp3_security_level.style.background="#ddd ";
document.component.snmp3_security_level.disabled=true;
document.component.command_text.style.background="#fff";
document.component.command_text.style.disabled=false;
document.component.command_credential_identifier.style.background="#fff";
document.component.command_credential_identifier.disabled=false;
document.component.command_os.style.background="#fff";
document.component.command_os.disabled=false;
}
// type 6-7 - ICMP // type 6-7 - ICMP
if ((document.component.type.value == 6) || (document.component.type.value == 7)) { if ((document.component.type.value == 6) || (document.component.type.value == 7)) {
document.component.snmp_oid.style.background="#ddd !important"; document.component.snmp_oid.style.background="#ddd ";
document.component.snmp_oid.disabled=true; document.component.snmp_oid.disabled=true;
document.component.snmp_community.style.background="#ddd !important"; document.getElementById('text-snmp_community').style.background="#ddd";
document.component.snmp_community.disabled=true; document.getElementById('text-snmp_community').disabled=true;
document.component.snmp_oid.style.background="#ddd !important"; document.component.snmp_oid.style.background="#ddd ";
document.component.snmp_oid.disabled=true; document.component.snmp_oid.disabled=true;
document.component.tcp_send.style.background="#ddd !important"; document.component.tcp_send.style.background="#ddd ";
document.component.tcp_send.disabled=true; document.component.tcp_send.disabled=true;
document.component.tcp_rcv.style.background="#ddd !important"; document.component.tcp_rcv.style.background="#ddd ";
document.component.tcp_rcv.disabled=true; document.component.tcp_rcv.disabled=true;
document.component.tcp_port.style.background="#ddd !important"; document.component.tcp_port.style.background="#ddd ";
document.component.tcp_port.disabled=true; document.component.tcp_port.disabled=true;
document.component.snmp_version.style.background="#ddd !important"; document.component.snmp_version.style.background="#ddd ";
document.component.snmp_version.disabled=true; document.component.snmp_version.disabled=true;
document.component.snmp3_auth_user.style.background="#ddd !important"; document.component.snmp3_auth_user.style.background="#ddd ";
document.component.snmp3_auth_user.disabled=true; document.component.snmp3_auth_user.disabled=true;
document.component.snmp3_auth_pass.background="#ddd !important"; document.component.snmp3_auth_pass.background="#ddd ";
document.component.snmp3_auth_pass.disabled=true; document.component.snmp3_auth_pass.disabled=true;
document.component.snmp3_privacy_method.style.background="#ddd !important"; document.component.snmp3_privacy_method.style.background="#ddd ";
document.component.snmp3_privacy_method.disabled=true; document.component.snmp3_privacy_method.disabled=true;
document.component.snmp3_privacy_pass.style.background="#ddd !important"; document.component.snmp3_privacy_pass.style.background="#ddd ";
document.component.snmp3_privacy_pass.disabled=true; document.component.snmp3_privacy_pass.disabled=true;
document.component.snmp3_auth_method.style.background="#ddd !important"; document.component.snmp3_auth_method.style.background="#ddd ";
document.component.snmp3_auth_method.disabled=true; document.component.snmp3_auth_method.disabled=true;
document.component.snmp3_security_level.style.background="#ddd !important"; document.component.snmp3_security_level.style.background="#ddd ";
document.component.snmp3_security_level.disabled=true; document.component.snmp3_security_level.disabled=true;
document.component.command_text.style.background="#ddd";
document.component.command_text.style.disabled=true;
document.component.command_credential_identifier.style.background="#ddd";
document.component.command_credential_identifier.disabled=true;
document.component.command_os.style.background="#ddd";
document.component.command_os.disabled=true;
} }
// type 8-11 - TCP // type 8-11 - TCP
if ((document.component.type.value > 7) && (document.component.type.value < 12)) { if ((document.component.type.value > 7) && (document.component.type.value < 12)) {
document.component.snmp_oid.style.background="#ddd !important"; document.component.snmp_oid.style.background="#ddd ";
document.component.snmp_oid.disabled=true; document.component.snmp_oid.disabled=true;
document.component.snmp_community.style.background="#ddd !important"; document.getElementById('text-snmp_community').style.background="#ddd ";
document.component.snmp_community.disabled=true; document.getElementById('text-snmp_community').disabled=true;
document.component.tcp_send.style.background="#fff"; document.component.tcp_send.style.background="#fff";
document.component.tcp_send.disabled=false; document.component.tcp_send.disabled=false;
document.component.tcp_rcv.style.background="#fff"; document.component.tcp_rcv.style.background="#fff";
@ -410,27 +506,34 @@ function type_change () {
document.component.tcp_port.style.background="#fff"; document.component.tcp_port.style.background="#fff";
document.component.tcp_port.disabled=false; document.component.tcp_port.disabled=false;
document.component.snmp_version.style.background="#ddd !important"; document.component.snmp_version.style.background="#ddd ";
document.component.snmp_version.disabled=true; document.component.snmp_version.disabled=true;
document.component.snmp3_auth_user.style.background="#ddd !important"; document.component.snmp3_auth_user.style.background="#ddd ";
document.component.snmp3_auth_user.disabled=true; document.component.snmp3_auth_user.disabled=true;
document.component.snmp3_auth_pass.background="#ddd !important"; document.component.snmp3_auth_pass.background="#ddd ";
document.component.snmp3_auth_pass.disabled=true; document.component.snmp3_auth_pass.disabled=true;
document.component.snmp3_privacy_method.style.background="#ddd !important"; document.component.snmp3_privacy_method.style.background="#ddd ";
document.component.snmp3_privacy_method.disabled=true; document.component.snmp3_privacy_method.disabled=true;
document.component.snmp3_privacy_pass.style.background="#ddd !important"; document.component.snmp3_privacy_pass.style.background="#ddd ";
document.component.snmp3_privacy_pass.disabled=true; document.component.snmp3_privacy_pass.disabled=true;
document.component.snmp3_auth_method.style.background="#ddd !important"; document.component.snmp3_auth_method.style.background="#ddd ";
document.component.snmp3_auth_method.disabled=true; document.component.snmp3_auth_method.disabled=true;
document.component.snmp3_security_level.style.background="#ddd !important"; document.component.snmp3_security_level.style.background="#ddd ";
document.component.snmp3_security_level.disabled=true; document.component.snmp3_security_level.disabled=true;
document.component.command_text.style.background="#ddd";
document.component.command_text.style.disabled=true;
document.component.command_credential_identifier.style.background="#ddd";
document.component.command_credential_identifier.disabled=true;
document.component.command_os.style.background="#ddd";
document.component.command_os.disabled=true;
} }
// type 12 - UDP // type 12 - UDP
if (document.component.type.value == 12) { if (document.component.type.value == 12) {
document.component.snmp_oid.style.background="#ddd !important"; document.component.snmp_oid.style.background="#ddd ";
document.component.snmp_oid.disabled=true; document.component.snmp_oid.disabled=true;
document.component.snmp_community.style.background="#ddd !important"; document.getElementById('text-snmp_community').style.background="#ddd ";
document.component.snmp_community.disabled=true; document.getElementById('text-snmp_community').disabled=true;
document.component.tcp_send.style.background="#fff"; document.component.tcp_send.style.background="#fff";
document.component.tcp_send.disabled=false; document.component.tcp_send.disabled=false;
document.component.tcp_rcv.style.background="#fff"; document.component.tcp_rcv.style.background="#fff";
@ -438,20 +541,27 @@ function type_change () {
document.component.tcp_port.style.background="#fff"; document.component.tcp_port.style.background="#fff";
document.component.tcp_port.disabled=false; document.component.tcp_port.disabled=false;
document.component.snmp_version.style.background="#ddd !important"; document.component.snmp_version.style.background="#ddd ";
document.component.snmp_version.disabled=true; document.component.snmp_version.disabled=true;
document.component.snmp3_auth_user.style.background="#ddd !important"; document.component.snmp3_auth_user.style.background="#ddd ";
document.component.snmp3_auth_user.disabled=true; document.component.snmp3_auth_user.disabled=true;
document.component.snmp3_auth_pass.background="#ddd !important"; document.component.snmp3_auth_pass.background="#ddd ";
document.component.snmp3_auth_pass.disabled=true; document.component.snmp3_auth_pass.disabled=true;
document.component.snmp3_privacy_method.style.background="#ddd !important"; document.component.snmp3_privacy_method.style.background="#ddd ";
document.component.snmp3_privacy_method.disabled=true; document.component.snmp3_privacy_method.disabled=true;
document.component.snmp3_privacy_pass.style.background="#ddd !important"; document.component.snmp3_privacy_pass.style.background="#ddd ";
document.component.snmp3_privacy_pass.disabled=true; document.component.snmp3_privacy_pass.disabled=true;
document.component.snmp3_auth_method.style.background="#ddd !important"; document.component.snmp3_auth_method.style.background="#ddd ";
document.component.snmp3_auth_method.disabled=true; document.component.snmp3_auth_method.disabled=true;
document.component.snmp3_security_level.style.background="#ddd !important"; document.component.snmp3_security_level.style.background="#ddd ";
document.component.snmp3_security_level.disabled=true; document.component.snmp3_security_level.disabled=true;
document.component.command_text.style.background="#ddd";
document.component.command_text.style.disabled=true;
document.component.command_credential_identifier.style.background="#ddd";
document.component.command_credential_identifier.disabled=true;
document.component.command_os.style.background="#ddd";
document.component.command_os.disabled=true;
} }
} }
@ -544,8 +654,6 @@ $(document).ready (function () {
$("#snmp3_security_level").attr("disabled", true); $("#snmp3_security_level").attr("disabled", true);
$("input[name=active_snmp_v3]").val(0); $("input[name=active_snmp_v3]").val(0);
$("input[name=snmp_community]").css({backgroundColor: '#fff'});
$("input[name=snmp_community]").removeAttr('disabled');
} }
$("#snmp_version").change(function () { $("#snmp_version").change(function () {
@ -647,8 +755,6 @@ $(document).ready (function () {
$("#snmp3_security_level").attr("disabled", true); $("#snmp3_security_level").attr("disabled", true);
$("input[name=active_snmp_v3]").val(0); $("input[name=active_snmp_v3]").val(0);
$("input[name=snmp_community]").css({backgroundColor: '#fff'});
$("input[name=snmp_community]").removeAttr('disabled');
} }
}); });

View File

@ -77,7 +77,7 @@ $sql = sprintf(
'SELECT id_tipo, descripcion 'SELECT id_tipo, descripcion
FROM ttipo_modulo FROM ttipo_modulo
WHERE categoria IN (%s) WHERE categoria IN (%s)
ORDER BY descripcion', ORDER BY id_tipo ASC',
implode(',', $categories) implode(',', $categories)
); );
$table->data[1][1] = html_print_select_from_sql( $table->data[1][1] = html_print_select_from_sql(

View File

@ -1,17 +1,32 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars
global $config; global $config;
check_login(); check_login();
@ -55,32 +70,94 @@ push_table_row($data, 'snmp_port');
$data = []; $data = [];
$data[0] = __('SNMP Enterprise String'); $data[0] = __('SNMP Enterprise String');
$data[1] = html_print_input_text('snmp_oid', $snmp_oid, '', 30, 400, true); $data[1] = html_print_input_text(
// $table->colspan['snmp_2'][1] = 3; 'snmp_oid',
$snmp_oid,
'',
30,
400,
true
);
$data[2] = __('SNMP community'); $data[2] = __('SNMP community');
$data[3] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true); $data[3] = html_print_input_text(
'snmp_community',
$snmp_community,
'',
15,
60,
true
);
push_table_row($data, 'snmp_2'); push_table_row($data, 'snmp_2');
$data = []; $data = [];
$data[0] = __('Auth user'); $data[0] = __('Auth user');
$data[1] = html_print_input_text('snmp3_auth_user', $snmp3_auth_user, '', 15, 60, true); $data[1] = html_print_input_text(
'snmp3_auth_user',
$snmp3_auth_user,
'',
15,
60,
true
);
$data[2] = __('Auth password'); $data[2] = __('Auth password');
$data[3] = html_print_input_password('snmp3_auth_pass', $snmp3_auth_pass, '', 15, 60, true); $data[3] = html_print_input_password(
$data[3] .= html_print_input_hidden_extended('active_snmp_v3', 0, 'active_snmp_v3_mncfn', true); 'snmp3_auth_pass',
$snmp3_auth_pass,
'',
15,
60,
true
);
$data[3] .= html_print_input_hidden_extended(
'active_snmp_v3',
0,
'active_snmp_v3_mncfn',
true
);
push_table_row($data, 'field_snmpv3_row1'); push_table_row($data, 'field_snmpv3_row1');
$data = []; $data = [];
$data[0] = __('Privacy method'); $data[0] = __('Privacy method');
$data[1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true); $data[1] = html_print_select(
[
'DES' => __('DES'),
'AES' => __('AES'),
],
'snmp3_privacy_method',
$snmp3_privacy_method,
'',
'',
'',
true
);
$data[2] = __('Privacy pass'); $data[2] = __('Privacy pass');
$data[3] = html_print_input_password('snmp3_privacy_pass', $snmp3_privacy_pass, '', 15, 60, true); $data[3] = html_print_input_password(
'snmp3_privacy_pass',
$snmp3_privacy_pass,
'',
15,
60,
true
);
push_table_row($data, 'field_snmpv3_row2'); push_table_row($data, 'field_snmpv3_row2');
$data = []; $data = [];
$data[0] = __('Auth method'); $data[0] = __('Auth method');
$data[1] = html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'snmp3_auth_method', $snmp3_auth_method, '', '', '', true); $data[1] = html_print_select(
[
'MD5' => __('MD5'),
'SHA' => __('SHA'),
],
'snmp3_auth_method',
$snmp3_auth_method,
'',
'',
'',
true
);
$data[2] = __('Security level'); $data[2] = __('Security level');
$data[3] = html_print_select( $data[3] = html_print_select(
[ [
@ -110,12 +187,11 @@ $data[1] = html_print_extended_select_for_post_process(
false, false,
true true
); );
$data[2] = $data[3] = ''; $data[2] = '';
$data[3] = '';
push_table_row($data, 'field_process'); push_table_row($data, 'field_process');
// Advanced stuff.
// Advanced stuff
$data = []; $data = [];
$data[0] = __('TCP send'); $data[0] = __('TCP send');
$data[1] = html_print_textarea('tcp_send', 2, 65, $tcp_send, '', true); $data[1] = html_print_textarea('tcp_send', 2, 65, $tcp_send, '', true);
@ -129,6 +205,64 @@ $data[1] = html_print_textarea('tcp_rcv', 2, 65, $tcp_rcv, '', true);
$table->colspan['tcp_receive'][1] = 3; $table->colspan['tcp_receive'][1] = 3;
push_table_row($data, 'tcp_receive'); push_table_row($data, 'tcp_receive');
$data = [];
$data[0] = __('Command');
$data[1] = html_print_input_text_extended(
'command_text',
$command_text,
'command_text',
'',
100,
10000,
$disabledBecauseInPolicy,
'',
$largeClassDisabledBecauseInPolicy,
true
);
$table->colspan['row-cmd-row-1'][1] = 3;
push_table_row($data, 'row-cmd-row-1');
require_once $config['homedir'].'/include/class/CredentialStore.class.php';
$array_credential_identifier = CredentialStore::getKeys('CUSTOM');
$data[0] = __('Credential identifier');
$data[1] = html_print_select(
$array_credential_identifier,
'command_credential_identifier',
$command_credential_identifier,
'',
__('None'),
'',
true,
false,
false,
'',
$disabledBecauseInPolicy
);
$array_os = [
'inherited' => __('Inherited'),
'linux' => __('Linux'),
'windows' => __('Windows'),
];
$data[2] = __('Target OS');
$data[3] = html_print_select(
$array_os,
'command_os',
$command_os,
'',
'',
'',
true,
false,
false,
'',
$disabledBecauseInPolicy
);
push_table_row($data, 'row-cmd-row-2');
?> ?>
<script type="text/javascript"> <script type="text/javascript">

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -403,6 +403,8 @@ class CredentialStore extends Wizard
{ {
global $config; global $config;
$filter = [];
if ($product !== false) { if ($product !== false) {
$filter['product'] = $product; $filter['product'] = $product;
} }

View File

@ -541,13 +541,13 @@ function configure_modules_form() {
} }
if (data["type"] >= 15 && data["type"] <= 18) { if (data["type"] >= 15 && data["type"] <= 18) {
$("#snmp_version").val(data["tcp_send"]); $("#snmp_version").val(data["snmp_version"]);
$("#text-snmp3_auth_user").val(data["plugin_user"]); $("#text-snmp3_auth_user").val(data["snmp3_auth_user"]);
$("#password-snmp3_auth_pass").val(data["plugin_pass"]); $("#password-snmp3_auth_pass").val(data["snmp3_auth_pass"]);
$("#snmp3_auth_method").val(data["plugin_parameter"]); $("#snmp3_auth_method").val(data["snmp3_auth_method"]);
$("#snmp3_privacy_method").val(data["custom_string_1"]); $("#snmp3_privacy_method").val(data["snmp3_privacy_method"]);
$("#password-snmp3_privacy_pass").val(data["custom_string_2"]); $("#password-snmp3_privacy_pass").val(data["snmp3_privacy_pass"]);
$("#snmp3_security_level").val(data["custom_string_3"]); $("#snmp3_security_level").val(data["snmp3_security_level"]);
if (data["tcp_send"] == "3") { if (data["tcp_send"] == "3") {
$("#simple-field_snmpv3_row1").attr("style", ""); $("#simple-field_snmpv3_row1").attr("style", "");
@ -564,6 +564,14 @@ function configure_modules_form() {
if (data["id_plugin"] != undefined) { if (data["id_plugin"] != undefined) {
$("#id_plugin").trigger("change"); $("#id_plugin").trigger("change");
} }
if (data["type"] >= 34 && data["type"] <= 37) {
$("#command_text").val(data["command_text"]);
$("#command_credential_identifier").val(
data["command_credential_identifier"]
);
$("#command_os").val(data["command_os"]);
}
}, },
"json" "json"
); );

View File

@ -1718,10 +1718,9 @@ if (!empty($result)) {
} }
} }
// End Build List Result // End Build List Result.
//
echo "<div id='monitor_details_window'></div>"; echo "<div id='monitor_details_window'></div>";
// strict user hidden // Strict user hidden.
echo '<div id="strict_hidden" style="display:none;">'; echo '<div id="strict_hidden" style="display:none;">';
html_print_input_text('strict_user_hidden', $strict_user); html_print_input_text('strict_user_hidden', $strict_user);
echo '</div>'; echo '</div>';
@ -1758,7 +1757,7 @@ $('#moduletype').click(function() {
); );
return false; return false;
}); });
$('#ag_group').change (function () { $('#ag_group').change (function () {
strict_user = $('#text-strict_user_hidden').val(); strict_user = $('#text-strict_user_hidden').val();

View File

@ -293,6 +293,10 @@ INSERT INTO `ttipo_modulo` VALUES
(31,'web_proc',9,'Remote HTTP module to check server response','mod_web_proc.png'), (31,'web_proc',9,'Remote HTTP module to check server response','mod_web_proc.png'),
(32,'web_content_data',9,'Remote HTTP module to retrieve numeric data','mod_web_data.png'), (32,'web_content_data',9,'Remote HTTP module to retrieve numeric data','mod_web_data.png'),
(33,'web_content_string',9,'Remote HTTP module to retrieve string data','mod_web_data.png'), (33,'web_content_string',9,'Remote HTTP module to retrieve string data','mod_web_data.png'),
(34,'remote_cmd', 10, 'Remote execution, numeric data', 'mod_remote_cmd.png'),
(35,'remote_cmd_proc', 10, 'Remote execution, boolean data', 'mod_remote_cmd_proc.png'),
(36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'),
(37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png'),
(100,'keep_alive',-1,'KeepAlive','mod_keepalive.png'); (100,'keep_alive',-1,'KeepAlive','mod_keepalive.png');
-- --

View File

@ -275,6 +275,7 @@ sub pandora_load_config {
$pa_config->{"alert_recovery"} = 0; # Introduced on 1.3.1 $pa_config->{"alert_recovery"} = 0; # Introduced on 1.3.1
$pa_config->{"snmp_checks"} = 1; # Introduced on 1.3.1 $pa_config->{"snmp_checks"} = 1; # Introduced on 1.3.1
$pa_config->{"snmp_timeout"} = 8; # Introduced on 1.3.1 $pa_config->{"snmp_timeout"} = 8; # Introduced on 1.3.1
$pa_config->{"rcmd_timeout"} = 30; # Introduced on 7.0.740
$pa_config->{"snmp_trapd"} = '/usr/sbin/snmptrapd'; # 3.0 $pa_config->{"snmp_trapd"} = '/usr/sbin/snmptrapd'; # 3.0
$pa_config->{"tcp_checks"} = 1; # Introduced on 1.3.1 $pa_config->{"tcp_checks"} = 1; # Introduced on 1.3.1
$pa_config->{"tcp_timeout"} = 20; # Introduced on 1.3.1 $pa_config->{"tcp_timeout"} = 20; # Introduced on 1.3.1
@ -782,6 +783,9 @@ sub pandora_load_config {
elsif ($parametro =~ m/^snmp_timeout\s+([0-9]*)/i) { elsif ($parametro =~ m/^snmp_timeout\s+([0-9]*)/i) {
$pa_config->{"snmp_timeout"} = clean_blank($1); $pa_config->{"snmp_timeout"} = clean_blank($1);
} }
elsif ($parametro =~ m/^rcmd_timeout\s+([0-9]*)/i) {
$pa_config->{"rcmd_timeout"} = clean_blank($1);
}
elsif ($parametro =~ m/^tcp_checks\s+([0-9]*)/i) { elsif ($parametro =~ m/^tcp_checks\s+([0-9]*)/i) {
$pa_config->{"tcp_checks"} = clean_blank($1); $pa_config->{"tcp_checks"} = clean_blank($1);
} }

View File

@ -202,6 +202,7 @@ our @EXPORT = qw(
pandora_get_module_phone_tags pandora_get_module_phone_tags
pandora_get_module_email_tags pandora_get_module_email_tags
pandora_get_os pandora_get_os
pandora_get_os_by_id
pandora_input_password pandora_input_password
pandora_is_master pandora_is_master
pandora_mark_agent_for_alert_update pandora_mark_agent_for_alert_update
@ -5721,6 +5722,66 @@ sub pandora_get_os ($$) {
return 10; return 10;
} }
########################################################################
# SUB pandora_get_os_by_id (integer)
# Returns a chain with the name associated to target id_os.
########################################################################
sub pandora_get_os_by_id ($$) {
my ($dbh, $os_id) = @_;
if (! defined($os_id) || !is_numeric($os_id)) {
# Other OS
return 'Other';
}
if ($os_id eq 9) {
return 'Windows';
}
if ($os_id eq 7 ) {
return 'Cisco';
}
if ($os_id eq 2 ) {
return 'Solaris';
}
if ($os_id eq 3 ) {
return 'AIX';
}
if ($os_id eq 5) {
return 'HP-UX';
}
if ($os_id eq 8 ) {
return 'Apple';
}
if ($os_id eq 1 ) {
return 'Linux';
}
if ($os_id eq 1) {
return 'Enterasys';
}
if ($os_id eq 3) {
return 'Octopods';
}
if ($os_id eq 4) {
return 'embedded';
}
if ($os_id eq 5) {
return 'android';
}
if ($os_id eq 4 ) {
return 'BSD';
}
# Search for a custom OS
my $os_name = get_db_value ($dbh, 'SELECT name FROM tconfig_os WHERE id_os = ?', $os_id);
if (defined ($os_name)) {
return $os_name;
}
# Other OS
return 'Other';
}
######################################################################## ########################################################################
# Load module macros (a base 64 encoded JSON document) into the macro # Load module macros (a base 64 encoded JSON document) into the macro
# hash. # hash.

View File

@ -102,8 +102,8 @@ sub data_producer ($) {
WHERE server_name = ? WHERE server_name = ?
AND tagente_modulo.id_agente = tagente.id_agente AND tagente_modulo.id_agente = tagente.id_agente
AND tagente.disabled = 0 AND tagente.disabled = 0
AND tagente_modulo.id_tipo_modulo > 5 AND ((tagente_modulo.id_tipo_modulo > 5 AND tagente_modulo.id_tipo_modulo < 19 )
AND tagente_modulo.id_tipo_modulo < 19 ' OR (tagente_modulo.id_tipo_modulo > 33 AND tagente_modulo.id_tipo_modulo < 38 )) '
. (defined ($network_filter) ? $network_filter : ' ') . . (defined ($network_filter) ? $network_filter : ' ') .
'AND tagente_modulo.disabled = 0 'AND tagente_modulo.disabled = 0
AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
@ -116,8 +116,8 @@ sub data_producer ($) {
AND tagente_modulo.id_agente = tagente.id_agente AND tagente_modulo.id_agente = tagente.id_agente
AND tagente.disabled = 0 AND tagente.disabled = 0
AND tagente_modulo.disabled = 0 AND tagente_modulo.disabled = 0
AND tagente_modulo.id_tipo_modulo > 5 AND ((tagente_modulo.id_tipo_modulo > 5 AND tagente_modulo.id_tipo_modulo < 19 )
AND tagente_modulo.id_tipo_modulo < 19 ' OR (tagente_modulo.id_tipo_modulo > 33 AND tagente_modulo.id_tipo_modulo < 38 )) '
. (defined ($network_filter) ? $network_filter : ' ') . . (defined ($network_filter) ? $network_filter : ' ') .
'AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo 'AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
AND (tagente_modulo.flag = 1 OR ((tagente_estado.last_execution_try + tagente_estado.current_interval) < UNIX_TIMESTAMP())) AND (tagente_modulo.flag = 1 OR ((tagente_estado.last_execution_try + tagente_estado.current_interval) < UNIX_TIMESTAMP()))
@ -468,6 +468,13 @@ sub exec_network_module ($$$$) {
my $tcp_rcv = $module->{'tcp_rcv'}; my $tcp_rcv = $module->{'tcp_rcv'};
my $timeout = $module->{'max_timeout'}; my $timeout = $module->{'max_timeout'};
my $retries = $module->{'max_retries'}; my $retries = $module->{'max_retries'};
my $target_os = pandora_get_os($dbh, $module->{'custom_string_2'});
if ($module->{'custom_string_2'} eq "inherited" ) {
$target_os = $agent_row->{'id_os'};
} elsif (!defined($target_os) || "$target_os" eq '0') {
$target_os = $agent_row->{'id_os'};
}
# Use the agent address by default # Use the agent address by default
if (! defined($ip_target) || $ip_target eq '' || $ip_target eq 'auto') { if (! defined($ip_target) || $ip_target eq '' || $ip_target eq 'auto') {
@ -545,6 +552,22 @@ sub exec_network_module ($$$$) {
$module_result = 1; $module_result = 1;
} }
} }
# -------------------------------------------------------
# CMD Module
# -------------------------------------------------------
elsif (($id_tipo_modulo == 34)
|| ($id_tipo_modulo == 35)
|| ($id_tipo_modulo == 36)
|| ($id_tipo_modulo == 37)) { # CMD Module
$module_data = enterprise_hook('remote_execution_module',[$pa_config, $dbh, $module, $target_os, $ip_target]);
if (!defined($module_data) || "$module_data" eq "") {
$module_result = 1;
} else {
# Success.
$module_result = 0;
}
}
} }
# Write data section # Write data section

View File

@ -657,7 +657,7 @@ sub logger ($$;$) {
if (defined $parent_caller) { if (defined $parent_caller) {
$parent_caller = (split '/', $parent_caller)[-1]; $parent_caller = (split '/', $parent_caller)[-1];
$parent_caller =~ s/\.[^.]+$//; $parent_caller =~ s/\.[^.]+$//;
$parent_caller = " ** " . $parent_caller . " **: "; $parent_caller = " " . $parent_caller . ": ";
} else { } else {
$parent_caller = " "; $parent_caller = " ";
} }