$_aux_agents = Asset_host::get_related_hids_agents($conn, $asset_id, $sensor_id);
    $agent_key = md5(strtoupper($sensor_id) . '#' . $agent_id);
    unset($_aux_agents[$agent_key]);
    if (!empty($_aux_agents)) {
        $validation_errors['asset_id'] = sprintf(_("Unable to connect HIDS agent to '%s'. This asset already has an agent deployed. If you want to deploy a new agent, please review <a class=\"bold_red\" href=\"https://www.alienvault.com/help/redirect/usm/connect_agent\" target=\"_blank\">how to manage agent connections</a> and try again"), Asset_host::get_name_by_id($conn, $asset_id));
    }
    $db->close();
}
if (is_array($validation_errors) && !empty($validation_errors)) {
    $validation_errors['html_errors'] = "<div style='text-align: left;'>" . _('The following errors occurred') . ":</div>\n                                         <div style='padding-left:15px; text-align: left;'>" . implode('<br/>', $validation_errors) . "</div>";
    $data['status'] = 'error';
    $data['data'] = $validation_errors;
} else {
    $data['status'] = 'success';
    $data['data'] = _('Your changes have been saved');
    try {
        Ossec_agent::link_to_asset($sensor_id, $agent_id, $asset_id);
        $db = new ossim_db();
        $conn = $db->connect();
        $agents = Asset_host::get_related_hids_agents($conn, $asset_id, $sensor_id);
        $agent_key = md5(strtoupper($sensor_id) . '#' . $agent_id);
        $agent_info = array('ip_cidr' => $agents[$agent_key]['ip_cidr'], 'host_id' => $asset_id);
        $data['asset'] = array('id' => $asset_id, 'name' => Asset_host::get_name_by_id($conn, $asset_id), 'actions' => Ossec_agent::get_actions($agent_id, $agent_info));
        $db->close();
    } catch (Exception $e) {
        $data['status'] = 'error';
        $data['data'] = _('An unexpected error occurred. Unable to connect asset to HIDS agent. Please try again') . '.<br/><br/>' . sprintf(_('Reason: %s'), $e->getMessage());
    }
}
echo json_encode($data);
exit;
Beispiel #2
0
            $e_msg = _('Error! Sensor not allowed');
            Av_exception::throw_error(Av_exception::USER_ERROR, $e_msg);
        }
    } else {
        $e_msg = ossim_get_error_clean();
        Av_exception::throw_error(Av_exception::USER_ERROR, $e_msg);
    }
    $agents = Ossec_agent::get_list($sensor_id);
    $data = array();
    if (is_array($agents) && !empty($agents)) {
        foreach ($agents as $agent_id => $a_data) {
            if (empty($a_data)) {
                continue;
            }
            $a_unique_id = md5($agent_id);
            $agent_actions = Ossec_agent::get_actions($agent_id, $a_data);
            if (!empty($a_data['host_id'])) {
                $asset_name = Asset_host::get_name_by_id($conn, $a_data['host_id']);
            } else {
                $asset_name = '-';
            }
            //Normalize status description (See asset list filters)
            if ($a_data['status']['id'] == 1) {
                $a_data['status']['descr'] = 'Disconnected';
            }
            $t_data = array("DT_RowId" => 'cont_agent_' . $agent_id, "DT_RowData" => array('agent_key' => $a_unique_id, 'asset_id' => $a_data['host_id'], 'agent_status' => $a_data['status']), '', $agent_id, $a_data['name'], $asset_name, $a_data['ip_cidr'], "-", "-", $a_data['status']['descr'], $agent_actions);
            $data[] = $t_data;
        }
    }
} catch (Exception $e) {
    $db->close();
Beispiel #3
0
    $data['status'] = 'error';
    $data['data'] = $validation_errors;
} else {
    $ret = NULL;
    $data['status'] = 'success';
    try {
        $new_agent = Ossec_agent::create($sensor_id, $agent_name, $ip_cidr, $asset_id);
        //If ossec-remoted is not running, we have to restart Ossec Server
        $ossec_status = Ossec_control::execute_action($sensor_id, 'status');
        if ('UP' !== $ossec_status['general_status']['ossec-remoted']) {
            Ossec_control::execute_action($sensor_id, 'restart');
        }
        if (is_array($new_agent) && !empty($new_agent)) {
            $agent_id = $new_agent['id'];
            $agent_info = array('name' => $new_agent['name'], 'ip_cidr' => $new_agent['ip_cidr'], 'status' => $new_agent['status']);
            $agent_actions = Ossec_agent::get_actions($agent_id, $new_agent);
            $data['data'] = _("HIDS agent has been created. To deploy the agent, please choose one of the options under the 'Actions' column") . "###" . $agent_id . "###";
            $a_unique_id = md5($agent_id);
            if (valid_hex32($new_agent['host_id'])) {
                $db = new Ossim_db();
                $conn = $db->connect();
                $asset_name = Asset_host::get_name_by_id($conn, $new_agent['host_id']);
                $db->close();
            } else {
                $asset_name = '-';
            }
            //Normalize status description (See asset list filters)
            if ($new_agent['status']['id'] == 1) {
                $new_agent['status']['descr'] = 'Disconnected';
            }
            $agent_elem = array("DT_RowId" => 'cont_agent_' . $agent_id, "DT_RowData" => array('agent_key' => $a_unique_id, 'asset_id' => $new_agent['host_id'], 'agent_status' => $new_agent['status']), '', $agent_id, $new_agent['name'], $asset_name, $new_agent['ip_cidr'], "-", "-", $new_agent['status']['descr'], $agent_actions);