syslog协议解析源码实现及Wireshark抓包分析

syslog协议解析源码实现及Wireshark抓包分析

2023年7月3日发(作者:)

syslog协议解析源码实现及Wireshark抓包分析本篇我们对syslong协议进⾏解析,通过抓包分析syslog协议报⽂格式,先了解syslog发展史。syslog协议多年来,⽤于syslog协议的标准RFC是RFC3194,现在,RFC5424是针对syslog协议提出的新标准草案。换句话说,RFC5424取代了RFC3194。RFC5424是对较早的syslog协议的急需的改进。协议的最⼤变化之⼀是遵循RFC3339的时间戳规范。在较旧的协议在时间戳⽅⾯没有指定太多。但是在RFC5424收到的⽇志消息中⾄少包含年份,⽉份,⽇期,⼩时和秒。syslog协议Syslog协议最初由Eric Allman编写。使⽤⽤户数据报协议(UDP)端⼝514进⾏通信。PRI 部分PRI部分以“ <”开头,尖括号中包含的数字,后跟⼀个“>”。这个数字包含了程序模块(Facility)和Level。Facility的定义如下:可以看出来syslog的Facility是早期为Unix操作系统定义的,不过它预留了User(1),Local use 0~7 (16~23)给其他程序使⽤。Level的定义如下:每个消息优先级还具有⼀个⼗进制严重性级别指⽰符。下表描述了它们及其数值价值观。 严重性值必须在0到7之间(包括0和7)。VERSION字段VERSION字段表⽰syslog协议的版本规范。 对于任何新版本,必须增加版本号更改HEADER任意部分的syslog协议规范格式。 更改包括添加或删除字段,或者更改现有字段的语法或语义。 本⽂件使⽤VERSION值为“ 1”。TIMESTAMP字段TIMESTAMP字段是源⾃[RFC3339]的形式化时间戳。在[RFC3164]格式必须是“Mmm dd hh:mm:ss”,不包括年份。“⽉份取值包括:Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec因为有些系统需要将⽇志长期归档,⽽时间字段⼜不包括年份,所以⼀些不标准的syslog格式中包含了年份:HOSTNAME字段HOSTNAME字段标识最初发送系统⽇志消息。HOSTNAME字段应包含主机名和域名。APP-NAME字段APP-NAME字段应标识设备或应⽤程序发出消息。 它是没有进⼀步语义的字符串。它⽤于过滤中继器或收集器上的消息。PROCESS ID字段PROCESS ID字段通常⽤于提供流程名称或流程与系统⽇志系统关联的ID,NILVALUE可能在以下情况下使⽤进程ID不可⽤。在没有任何嵌⼊式系统上操作系统进程ID,PROCESS ID可能是重新启动ID。PROCESS ID可以使⽇志分析器检测syslog中的不连续性通过检测syslog进程ID的更改进⾏报告。MESSAGE ID字段MESSAGE ID应该标识消息的类型。 例如,⼀个防⽕墙可能会将MESSAGE ID“ TCPIN”⽤于传⼊的TCP流量,并且MESSAGE ID“TCPOUT”⽤于传出TCP流量。 消息相同MESSAGE ID应该反映具有相同语义的事件。 MSGID本⾝是没有进⼀步语义的字符串。 ⽤于过滤中继器或收集器上的消息。Wireshark syslog协议解析实现对syslog协议的使⽤有了⼀个⼤概的了解之后,我们来解析实现⼀下syslog协议。int main(int argc, char* argv[]){ char errbuf[1024]; pcap_t *desc = 0; char *filename = argv[1]; if (argc != 2) { printf("usage: ./dissect_syslog [pcap file]n"); return -1; } printf("ProcessFile: process file: %sn", filename); if ((desc = pcap_open_offline(filename, errbuf)) == NULL) {

printf("pcap_open_offline: %s error!n", filename); return -1;

}

pcap_loop(desc, pkt_number, (pcap_handler)ace_pcap_hand, NULL); pcap_close(desc); return 0;}运⾏结果:总结本篇讲解了syslog协议解析实现。Wireshark 抓包分析各个字段的含义。前⾯也介绍过了Syslog在UDP上运⾏,其中syslog服务器侦听UDP端⼝514。Syslog常被⽤来⽇志等数据的传输协议,数据格式遵循规范主要有RFC3164,RFC5424等。⽬前RFC5424已作为Syslog的业界规范。欢迎关注微信公众号【程序猿编码】,需要syslog完整源码和报⽂的添加本⼈微信号()

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688341710a123473.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信