亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? op_alert_syslog2.c

?? 知名的開源IDS的日志工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** Copyright (C) 2003 Sourcefire, Inc.  (www.sourcefire.com)** Copyright (C) 2001-2002 Andrew R. Baker <andrewb@snort.org>** ** This program is distributed under the terms of version 1.0 of the ** Q Public License.  See LICENSE.QPL for further details.**** 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.**** Author(s):   Andrew R. Baker <andrewb@sourcefire.com>**** Based on op_alert_syslog.c*/#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <sys/types.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <ctype.h>#include <time.h>#include <netinet/in.h>#include <errno.h>#include <netdb.h>extern int h_errno;#include <sys/socket.h>#include <arpa/inet.h>#include "output-plugins/op_plugbase.h"#include "util.h"#include "barnyard.h"#include "input-plugins/dp_alert.h"#include "mstring.h"#include "classification.h"#include "sid.h"#define MODULE_NAME "alert_syslog2"typedef struct _OpAlertSyslog2_Data {    /* Runtime configuration */    char *message_buffer;    int header_length;    int month_offset;    int timestamp_offset;    int socket;    struct sockaddr_in sin;    u_int8_t priority;    /* Configuration arguments */    char *tag;    char *hostname;    char *syslog_host;    int facility;    int severity;    int syslog_port;    u_int8_t pid_flag;} OpAlertSyslog2_Data;#define MESSAGE_LENGTH  1024#define MONTH_LENGTH    3#define TIMESTAMP_LENGTH 11/* Message Template: * * <PRI>xxx xx xx:xx:xx xxxxxxxx  xxxxx[xxxxx]:  * * template len     - the length of the template * month offset     - the offset where the month begins * month length     - the length of bytes for the month * timestamp offset - the offset where the timestamp begins * timestamp length - the length of bytes for the timestamp * msg offset *//* Values to use for the month portion of the message.  We cannot use * strftime for this */char *month_values[] = {    "Jan",    "Feb",    "Mar",    "Apr",    "May",    "Jun",    "Jul",    "Aug",    "Sep",    "Oct",    "Nov",    "Dec"};/* Plugin entry functions */static int OpAlertSyslog2_Setup(OutputPlugin *, char *args);static int OpAlertSyslog2_Exit(OutputPlugin *);static int OpAlertSyslog2_Start(OutputPlugin *, void *);static int OpAlertSyslog2_Stop(OutputPlugin *);static int OpAlertSyslog2(void *, void *);static int OpAlertSyslog2_LogConfig(OutputPlugin *);static OpAlertSyslog2_Data *OpAlertSyslog2_ParseArgs(char *args);static int IsValidHostname(char *hostname);static int IsValidSyslogTag(char *syslog_tag);struct keyword_value{    char *keyword;    int value;};struct keyword_value facility_map[] = {    { "KERN",        0 },    { "USER",        1 },    { "MAIL",        2 },    { "DAEMON",      3 },    { "AUTH",        4 },    { "SYSLOG",      5 },    { "LPR",         6 },    { "NEWS",        7 },    { "UUCP",        8 },    { "CRON",        9 },    { "AUTHPRIV",   10 },    { "FTP",        11 },    { "NTP",        12 },    { "AUDIT",      13 },    { "ALERT",      14 },    { "CLOCK",      15 },    { "LOCAL0",     16 },    { "LOCAL1",     17 },    { "LOCAL2",     18 },    { "LOCAL3",     19 },    { "LOCAL4",     20 },    { "LOCAL5",     21 },    { "LOCAL6",     22 },    { "LOCAL7",     23 },    { NULL,         -1 }};#define DEFAULT_FACILITY    23#define MAX_FACILITY        23struct keyword_value severity_map[] = {    { "EMERG",   0 },    { "ALERT",   1 },    { "CRIT",    2 },    { "ERROR",   3 },    { "WARN",    4 },    { "NOTICE",  5 },    { "INFO",    6 },    { "DEBUG",   7 },    { NULL,     -1 }};#define DEFAULT_SEVERITY    5#define MAX_SEVERITY        7#define DEFAULT_SYSLOG_PORT 514#define DEFAULT_SYSLOG_HOST "localhost"/* init routine makes this processor available for dataprocessor directives */void OpAlertSyslog2_Init(){    OutputPlugin *outputPlugin;    /* Register the output plugin */    outputPlugin = RegisterOutputPlugin(MODULE_NAME, "alert");        /* Set the functions */    outputPlugin->setupFunc = OpAlertSyslog2_Setup;    outputPlugin->exitFunc = OpAlertSyslog2_Exit;    outputPlugin->startFunc = OpAlertSyslog2_Start;    outputPlugin->stopFunc = OpAlertSyslog2_Stop;    outputPlugin->outputFunc = OpAlertSyslog2;    outputPlugin->logConfigFunc = OpAlertSyslog2_LogConfig;}static int OpAlertSyslog2_LogConfig(OutputPlugin *outputPlugin){    OpAlertSyslog2_Data *data = NULL;        if(!outputPlugin || !outputPlugin->data)        return -1;    data = (OpAlertSyslog2_Data *)outputPlugin->data;    LogMessage("OpAlertSyslog2 configured\n");    LogMessage("  Syslog Host/Port: %s:%u/udp\n", data->syslog_host,            data->syslog_port);    LogMessage("  Syslog Facility:  %s(%i)\n", facility_map[data->facility],            data->facility);    LogMessage("  Syslog Severity:  %s(%i)\n", severity_map[data->severity],            data->severity);    LogMessage("  Hostname: %s\n", data->hostname);    if(data->pid_flag)        LogMessage("  Tag: %s[%u]\n", data->tag, getpid());    else        LogMessage("  Tag: %s\n", data->tag);    return 0;}/* Instantiate the output plugin */static int OpAlertSyslog2_Setup(OutputPlugin *outputPlugin, char *args){    /* setup the run time context for this output plugin */    if(!(outputPlugin->data = OpAlertSyslog2_ParseArgs(args)))    {        FatalError("Failed to setup %s output plugin\n", MODULE_NAME);        return -1;  /* XXX Eventually we will look at these result codes */    }        return 0;}/* Destructor function */static int OpAlertSyslog2_Exit(OutputPlugin *outputPlugin){    OpAlertSyslog2_Data *data = (OpAlertSyslog2_Data *)outputPlugin->data;        /* free that context data */    if(data)    {        if(data->message_buffer)            free(data->message_buffer);        data->message_buffer = NULL;        if(data->tag)            free(data->tag);        data->tag = NULL;                if(data->hostname)            free(data->hostname);        data->hostname = NULL;                if(data->syslog_host)            free(data->syslog_host);        data->syslog_host = NULL;        free(data);    }    data = NULL;    outputPlugin->data = NULL;    return 0;}/* Start function */static int OpAlertSyslog2_Start(OutputPlugin *outputPlugin, void *spool_header){    OpAlertSyslog2_Data *data = (OpAlertSyslog2_Data *)outputPlugin->data;    struct hostent *host_entry = NULL;        if(data == NULL)        FatalError("ERROR: Unable to find context for %s\n", MODULE_NAME);        if(pv.verbose >= 2)        OpAlertSyslog2_LogConfig(outputPlugin);        /* Lookup the remote host */    if(inet_aton(data->syslog_host, &data->sin.sin_addr) == 0)    {        if(!(host_entry = gethostbyname(data->syslog_host)))            FatalError("%s: Unable to lookup remote host '%s': %s\n",                     MODULE_NAME, data->syslog_host, hstrerror(h_errno));        memcpy(&data->sin.sin_addr, host_entry->h_addr,                 sizeof(data->sin.sin_addr));    }    data->sin.sin_family = AF_INET;    data->sin.sin_port = htons(data->syslog_port);        /* open a socket to the remote syslog host */    if((data->socket = socket(PF_INET, SOCK_DGRAM, 0)) == -1)        FatalError("%s: Unable to create socket: %s\n", MODULE_NAME,             strerror(errno));    return 0;}/* Stop function */static int OpAlertSyslog2_Stop(OutputPlugin *outputPlugin){    OpAlertSyslog2_Data *data = (OpAlertSyslog2_Data *)outputPlugin->data;    if(data == NULL)        FatalError("ERROR: Unable to find context for %s\n", MODULE_NAME);    /* close the socket */    if(data->socket != -1)        close(data->socket);    data->socket = -1;        return 0;}/* output function */static int OpAlertSyslog2(void *context, void *data){    UnifiedAlertRecord *record;    OpAlertSyslog2_Data *op_data;    struct tm *tm;    char src[16];    char dest[16];    ClassType *class_type = NULL;    Sid *sid = NULL;    int length;    int rval;    if(!data || !context)        return -1;    record = (UnifiedAlertRecord *)data;    op_data = (OpAlertSyslog2_Data *)context;    sid = GetSid(record->event.sig_generator, record->event.sig_id);    class_type = GetClassType(record->event.classification);    /* convert alert timestamp to struct tm using gmtime */    if(pv.localtime)        tm = localtime(&record->ts.tv_sec);    else        tm = gmtime(&record->ts.tv_sec);    memcpy(op_data->message_buffer + op_data->month_offset,             month_values[tm->tm_mon], MONTH_LENGTH);    strftime(op_data->message_buffer + op_data->timestamp_offset,             TIMESTAMP_LENGTH + 1, "%e %H:%M:%S", tm);    op_data->message_buffer[op_data->timestamp_offset + TIMESTAMP_LENGTH] = ' ';    snprintf(src, 16, "%u.%u.%u.%u", (record->sip & 0xff000000) >> 24,            (record->sip & 0x00ff0000) >> 16, (record->sip & 0x0000ff00) >> 8,            record->sip & 0x000000ff);    snprintf(dest, 16, "%u.%u.%u.%u", (record->dip & 0xff000000) >> 24,            (record->dip & 0x00ff0000) >> 16, (record->dip & 0x0000ff00) >> 8,            record->dip & 0x000000ff);    switch(record->protocol)    {        case IPPROTO_TCP:        case IPPROTO_UDP:            length = snprintf(op_data->message_buffer + op_data->header_length,                    MESSAGE_LENGTH - op_data->header_length,                     "[%d:%d:%d] %s [Classification: %s] "                    "[Priority: %d] {%s} %s:%d -> %s:%d",                    record->event.sig_generator, record->event.sig_id,                    record->event.sig_rev, sid != NULL ? sid->msg : "ALERT",                    class_type != NULL ? class_type->name : "Unknown",                    record->event.priority, protocol_names[record->protocol],                    src, record->sp, dest, record->dp);            break;        case IPPROTO_ICMP:            length = snprintf(op_data->message_buffer + op_data->header_length,                    MESSAGE_LENGTH - op_data->header_length,                     "[%d:%d:%d] %s [Classification: %s] "                    "[Priority: %d] {%s} %s -> %s",                    record->event.sig_generator, record->event.sig_id,                    record->event.sig_rev, sid != NULL ? sid->msg : "ALERT",                    class_type != NULL ? class_type->name : "Unknown",                    record->event.priority, protocol_names[record->protocol],                    src, dest);            break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av在线播放一区二区三区| 国产欧美日韩久久| 一区二区免费视频| 欧美三级欧美一级| 日本特黄久久久高潮| 日韩一区二区三区视频| 国产中文一区二区三区| 久久久精品中文字幕麻豆发布| 国产激情视频一区二区在线观看| 欧美国产日韩亚洲一区| 一本大道久久a久久综合婷婷| 一区二区三区不卡视频 | 精品国产一区二区三区忘忧草| 久久er99热精品一区二区| 国产清纯在线一区二区www| 97成人超碰视| 亚洲成人av资源| 精品美女在线观看| 成人av免费在线观看| 香蕉加勒比综合久久| 欧美r级电影在线观看| 99视频精品免费视频| 午夜精品久久久久影视| 久久综合久久99| 日本久久电影网| 精彩视频一区二区| 亚洲精选视频免费看| 欧美zozo另类异族| 色偷偷88欧美精品久久久| 美日韩一区二区| 亚洲欧美韩国综合色| 日韩久久久精品| 91丨porny丨户外露出| 久久99精品网久久| 夜夜精品视频一区二区| 26uuu另类欧美| 欧美三级日本三级少妇99| 国产麻豆视频一区二区| 亚洲成人动漫精品| 国产精品久久三| 日韩免费在线观看| 欧美三区在线观看| eeuss影院一区二区三区| 久久电影网站中文字幕| 亚洲综合区在线| 国产精品美女久久福利网站| 日韩一区二区三区电影在线观看 | 美女视频黄 久久| 亚洲人成网站色在线观看| 精品999在线播放| 欧美日韩色一区| 95精品视频在线| 国产精品一品二品| 久草中文综合在线| 日韩中文字幕一区二区三区| 亚洲黄色性网站| 国产精品伦一区二区三级视频| 日韩欧美电影一区| 91精品国产免费久久综合| 色天使久久综合网天天| 成人一区二区三区在线观看| 久久91精品久久久久久秒播| 日韩精品久久久久久| 亚洲不卡av一区二区三区| 亚洲女性喷水在线观看一区| 国产精品国产三级国产普通话99 | 欧美午夜精品久久久| 成年人国产精品| 成人三级伦理片| 国产91高潮流白浆在线麻豆 | 成人国产一区二区三区精品| 国产精品一区二区三区乱码| 久久国产综合精品| 久久福利资源站| 欧美日韩国产美| 一区二区三区精品在线| 久久久精品影视| 欧美精品一区二区在线播放 | 欧美一区二区成人6969| 欧美在线免费播放| 欧美亚洲动漫精品| 欧美系列日韩一区| 欧美日韩在线观看一区二区| 欧美自拍偷拍一区| 欧美日韩高清一区二区三区| 欧美美女黄视频| 欧美一级专区免费大片| 欧美一区二区三区四区视频 | 成人性生交大片免费看中文 | 91一区二区三区在线播放| www.欧美日韩| 一本久久综合亚洲鲁鲁五月天 | 偷拍日韩校园综合在线| 日韩av网站免费在线| 六月丁香婷婷色狠狠久久| 成人免费视频免费观看| 成av人片一区二区| 欧美伊人久久大香线蕉综合69| 欧美在线free| 制服丝袜亚洲播放| 国产亚洲精品bt天堂精选| 国产精品高潮呻吟久久| 洋洋av久久久久久久一区| 日产国产高清一区二区三区 | 精品一区二区三区影院在线午夜| 国产一区二区三区在线观看精品| 成人激情小说乱人伦| 欧美亚洲综合一区| 亚洲精品在线三区| 18成人在线观看| 日韩av午夜在线观看| 从欧美一区二区三区| 在线看国产一区二区| 日韩欧美国产三级| 国产精品女人毛片| 日本在线播放一区二区三区| 国产美女精品人人做人人爽| 色综合一个色综合亚洲| 337p亚洲精品色噜噜| 国产精品免费久久| 免费成人在线网站| 97se亚洲国产综合自在线不卡| 91精品国产欧美一区二区18 | 久久色在线观看| 亚洲一区免费观看| 国产精品影音先锋| 欧美日韩国产在线观看| 国产欧美日韩三级| 日本亚洲最大的色成网站www| 国产98色在线|日韩| 欧美剧情电影在线观看完整版免费励志电影| 精品国精品国产| 亚洲成av人影院| www.欧美日韩国产在线| 久久综合久久综合久久综合| 亚洲一区二区欧美激情| 成人午夜碰碰视频| 日韩你懂的在线观看| 亚洲综合一区二区三区| 成人免费的视频| 欧美大白屁股肥臀xxxxxx| 亚洲一区免费视频| 99久久国产综合精品女不卡| 精品播放一区二区| 青青国产91久久久久久| 91福利在线播放| 国产精品久久久久久亚洲毛片| 在线一区二区三区四区五区| 久久亚洲精品国产精品紫薇| 日韩国产成人精品| 欧美日韩久久一区| 亚洲最大色网站| 国产91综合一区在线观看| 精品奇米国产一区二区三区| 午夜精品免费在线| 欧美日韩一级视频| 一区二区三区日韩欧美精品| 99国产精品久久久久| 国产精品视频第一区| 国产一区二三区好的| 欧美国产视频在线| 天堂精品中文字幕在线| 欧美视频一区在线| 亚洲一区在线观看网站| 欧美无砖专区一中文字| 一区二区三区久久| 欧美日韩视频在线一区二区| 亚洲午夜久久久久中文字幕久| 色综合夜色一区| 亚洲一区日韩精品中文字幕| 欧美天堂亚洲电影院在线播放| 亚洲国产精品一区二区www| 欧美在线free| 日日摸夜夜添夜夜添国产精品| 欧美一三区三区四区免费在线看| 青草av.久久免费一区| 日韩视频免费观看高清完整版| 久久国产免费看| 久久精品免视看| 成人免费电影视频| 亚洲乱码国产乱码精品精的特点| 在线观看亚洲成人| 午夜欧美电影在线观看| 日韩精品自拍偷拍| 韩国精品在线观看| 国产精品色哟哟网站| av一本久道久久综合久久鬼色| 亚洲免费伊人电影| 欧美人伦禁忌dvd放荡欲情| 麻豆国产一区二区| 国产精品丝袜在线| 欧美视频精品在线| 国产精品三级电影| 成人激情动漫在线观看| 亚洲人成网站色在线观看| 欧美人牲a欧美精品| 韩国视频一区二区| 成人免费一区二区三区视频 | 午夜亚洲福利老司机| 精品国产青草久久久久福利|