NetworkServer enterprise improvement

This commit is contained in:
fbsanchez 2019-10-09 19:13:11 +02:00
parent 40076b0a55
commit 9cb2a0e1a1
2 changed files with 86 additions and 4 deletions

View File

@ -202,6 +202,7 @@ our @EXPORT = qw(
pandora_get_module_phone_tags
pandora_get_module_email_tags
pandora_get_os
pandora_get_os_by_id
pandora_input_password
pandora_is_master
pandora_mark_agent_for_alert_update
@ -5722,6 +5723,66 @@ sub pandora_get_os ($$) {
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
# hash.

View File

@ -102,8 +102,8 @@ sub data_producer ($) {
WHERE server_name = ?
AND tagente_modulo.id_agente = tagente.id_agente
AND tagente.disabled = 0
AND tagente_modulo.id_tipo_modulo > 5
AND tagente_modulo.id_tipo_modulo < 19 '
AND ((tagente_modulo.id_tipo_modulo > 5 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 : ' ') .
'AND tagente_modulo.disabled = 0
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.disabled = 0
AND tagente_modulo.disabled = 0
AND tagente_modulo.id_tipo_modulo > 5
AND tagente_modulo.id_tipo_modulo < 19 '
AND ((tagente_modulo.id_tipo_modulo > 5 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 : ' ') .
'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()))
@ -468,6 +468,11 @@ sub exec_network_module ($$$$) {
my $tcp_rcv = $module->{'tcp_rcv'};
my $timeout = $module->{'max_timeout'};
my $retries = $module->{'max_retries'};
my $target_os = $module->{'custom_integer_1'};
if (!defined($target_os) || "$target_os" eq '0') {
$target_os = $agent_row->{'id_os'};
}
# Use the agent address by default
if (! defined($ip_target) || $ip_target eq '' || $ip_target eq 'auto') {
@ -545,6 +550,22 @@ sub exec_network_module ($$$$) {
$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