如何捕获发送到特定端口的系统日志数据
Posted
技术标签:
【中文标题】如何捕获发送到特定端口的系统日志数据【英文标题】:How do I capture syslog data sent to a specific port 【发布时间】:2018-09-22 08:07:50 【问题描述】:我有一个防火墙,可以将数据发送到特定端口上的远程 Linux 服务器。我想捕获该数据并解析它以存储在数据库中。
到目前为止,我已经尝试过 tcpdump、nc 和少数其他方法,但没有取得多大成功。任何帮助表示赞赏。
tcpdump -ni device port 1234 -s0 -w capture.pcap
ÿÿEH¶@0c:EJ"@Ϲ r¢"ódevice="SFW" date=2018-06-15 time=04:10:49 timezone="EDT" device_name="XG210" device_id=C2205ACMBG9B65A log_id=010101600001 log_type="防火墙" log_component="防火墙规则" log_subtype="Allowed" status="Allow" priority=信息持续时间=0 fw_rule_id=2 policy_type=1 user_name="" user_gp="" iap=4 ips_policy_id=0 appfilter_policy_id=0 应用程序="" application_risk=0 application_technology="" application_category="" in_interface="Port1" out_interface="" src_mac=00: 0:00: 0:00: 0 src_ip=111.11.1.111 src_country_code=R1 dst_ip=111.111.11.11 dst_country_code=美国协议="TCP" src_port=61257 dst_port=80 sent_pkts=0 recv_pkts=0 sent_bytes=0 recv_bytes=0 tran_src_ip= tran_src_port=0 tran_dst_ip=111.16.1.1 tran_dst_port=3128 srczonetype="局域网" srczone="局域网" dstzonetype="WAN" dstzone="WAN" dir_disp="" connevent="开始" connid="2721376288" vconnid="" hb_health="无心跳" message="" appresolvedby="签名"
【问题讨论】:
使用 tcpdump 时出了什么问题?将syslog生成的文本文件保存在目标机器上怎么样? tcpdump -ni device port 1234 -s0 -w capture.pcap 确实创建了文件,但是文件中有特殊字符。因此,我无法解析相同的内容。 请显示您的代码并说明错误或问题。 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。 我已在问题中添加了 tcpdump 输出和信息。 对于RFC5424,这些不是系统日志行。这些数据的格式是什么?什么发送这些数据?系统日志-ng?杂志?系统日志?系统日志?它是什么配置?我们应该相信firewal 发送这些数据吗?那么防火墙是什么呢? iptables?表格?它如何向 tcp 发送数据?你不能从流中删除sed 's/.*device=/device=/'
的特殊字符吗?
【参考方案1】:
我们已经开始使用https://www.graylog.org。在 DigitalOcean 主机上配置很容易。
步骤:
-
配置您的防火墙等以将数据发送到特定端口上的灰色日志
配置 graylog 以侦听该特定端口
然后你会看到graylog中的数据
希望这会有所帮助。
【讨论】:
以上是关于如何捕获发送到特定端口的系统日志数据的主要内容,如果未能解决你的问题,请参考以下文章