目标

  • 众所周知,NAT日志是校园网日志重要的一个部分
  • 由于出口绝大多数高校都是NAT,那么作为日志留存,我们就必须能够记录下具体的端口号、公网IP等。
  • 传统方式如果用纯文本保存nat日志的话,量级会非常大,搜索难度非常之高,使用es来保存则可以很快的进行搜索
  • 结合es的冷、温、热机制,也可以很好地满足定期删除的效果
  • 同时,kibana的可视化效果也很好,适合做数据分析

方式

搭建ELK集群

这个不多说了,后面有空详细写。我们的流程是:H3C防火墙(F5030D/F5010)输出syslog->Logstash->Elasticsearch

防火墙配置部分

H3C的NAT444日志分为中国电信、中国联通、中国移动以及H3C等几种格式。我们以中国电信为例,如下:

详细说明可以看:http://www.h3c.com/cn/d_202110/1474391_30005_0.htm

大概的格式如下:

<134> 1 2021 Dec 15 07:33:47 172.1.1.1 F5030_D - NAT444:sessionbasedA [17 172.16.1.1 - 218.2.135.1 47641 38104 -]

观察上面,我们知道:

  • 172.1.1.1是F5030D的接口地址
  • 172.16.1.1:47461是内网IP和端口
  • 218.2.135.1:38104是外网IP和端口

那么,我们首先将日志以syslog形式转发给Logstash

H3C防火墙的配置

  • 首先到系统设置,NAT日志中,选择输出快速日志,这样就可以在快速日志中比较方便的编辑了。
  • 来到基本配置快速日志,新建一个日志,将中国电信日志输出给日志服务器的560端口。
  • 众所周知,syslog的端口是udp514,注一开始我也很头疼如何在一个UDP 514端口上区分多个设备传来的日志?后来才发现,你多起几个端口就是了…这里我们用的就是560端口。
  • 在防火墙上确保到logstash服务器是通的,选择好原地址(一般是防火墙管理口),选择好时区即可

logstash的配置

logstash的安装不多说,也比较简单,配置文件我们注意是inputfilter以及output就可以了,也就是输入、过滤和解析、输出给es。

input部分

input部分如下:

    syslog{type => "syslog-fw-f5030d-nat"host => "172.16.1.1"port => 560}

这段的意思是,在172.16.1.1也就是logstash服务器上监听560端口,并将这个端口来的syslog标记为syslog-fw-f5030d-nat

filter部分

其实此时日志已经可以进来了,但为了后期方便,我们还需要对他进行处理,将四元组单独作为一个key
如下:

# 出口防火墙的解析,解析nat日志
if [type] == "syslog-fw-f5030d-nat" {grok {match => {"message" => "%{IP:SIP} - %{IP:DIP} %{INT:SPORT} %{INT:DPORT} "}}}

这个其实就是grok语法,我一开始以为很复杂,后来才发现对于nat日志这种,他已经考虑的很齐全了。。。
比如,这段%{IP:SIP} - %{IP:DIP} %{INT:SPORT} %{INT:DPORT}就是在类似<134> 1 2021 Dec 15 07:33:47 172.1.1.1 F5030_D - NAT444:sessionbasedA [17 172.16.1.1 - 218.2.135.1 47641 38104 -]这样的日子中,将第一个IP解析为SIP,将第二个IP解析为DIP,第一个INT解析为DIP,第二个INT解析为SPORT。对于IP的解析,grok已经给出了IP这个特殊代码。

ps,这里其实还是比较偷懒的,等有空再去慢慢研究。

总之最后结果就是

是不是很赞?

当然,理论上你不做filter也是可以搜索的,但是显然搜索结果很慢,也不方便写搜索语法。

output部分

上面有点跳,你要记得的是logstash的过程是inputfilter,最后是output才能输出给es。

output的代码也比较简单,如下

  if [type] == "syslog-fw-f5030d-nat" {elasticsearch {hosts => ["your-es-ip:9200"]user => "elastic"password => "your-es-key"index => "syslog-fw-f5030d-nat-%{+YYYYMMdd}"}}

也就是将上述日志syslog-fw-f5030d这个发送给es,并且index名称为syslog-fw-f5030d-nat-日期这样的。

ES部分的配置

此时其实日志已经到了es里面了。但我们还是要做一些简单地操作来优化后续的查询。

  • 首先我们进入kibana的Stack Management,点击索引模式并点击创建索引模式
  • 这里我们可以输入索引模式的名称,例如syslog-fw-f5030d-*,这时候他会去匹配所有的index,因为我们之前index都是按照日期分的,这里直接*就可以匹配所有
  • 此时我们来到kibana的Analytics下的Discover,左侧选择索引模式即可用语法进行搜索了。

至此,大功告成!

总结

当然,还有很多可以完善的地方

  • 首先是负载还不确定,我用校园网试了一下,一天大概在2~3亿条,索引不到50g的样子。这两天再观察一下宿舍cmcc无线的,这个量应该很大,不知道es吃不吃得消?
  • 其次就是这里是有瓶颈的,根据配置文件我们看到,logstash是一个单点,这个挂了日志就没地方发和处理了,我测试的时候看了下,进流量大概20m不到,出反而很大在40m左右。cpu看了下还好,不是太大问题。不知道日志量大的时候会不会丢日志?syslog还是udp协议的,丢了也不知道啊…
  • 以及es是单点。我虽然布了4台es节点,但是logstash只发给了master节点,如果这里出问题也是很麻烦的。

这些问题,准备在下面的es部署部分去完善吧。nat日志作为校园网日志留存很重要的一部分,先存下来,暂时还没想到有什么分析的目的,这个只有ip没有mac,似乎从ac上拿到mac,再去和认证系统匹配的意思更大?但那个用到的一般都是关系数据库了,和日志如何对接,又是一个课题…

使用elasticsearch保存h3c防火墙的nat日志相关推荐

  1. H3C防火墙实现NAT+DHCP

    实验要求:使用防火墙,使内网中的PC自动获得IP地址,而且经过NAT转换,使内网内的主机能够正常访问因特网. 实验设备:H3C防火墙 拓扑图: 由于网络环境是处于局域网(192.168.102.0/2 ...

  2. H3C防火墙NAT类型及处理顺序

    H3C防火墙NAT处理顺序 本文主要适用于H3C V7版本防火墙,介绍了NAT的基本类型和执行顺序.相关内容很多援引H3C官方产品文档,NAT类型及相关说明以官方文档为准. 1 NAT类型及配置说明 ...

  3. H3C防火墙升级系统版本报错:No sufficient storage space on the device

    背景 是这样的,AK125防火墙上线后激活了ips .AV授权,然后设置的周日晚定时升级,然后周一来了发现web页面打开非常卡,大部分页面安全策略都没有结果,一直转圈圈,命令行ssh正常.但是查看一些 ...

  4. GNUGK 作为Gatekeeper穿透防火墙和NAT

    2018-05-23 补充: 在    [ubuntu 16.04.04 上升级GNUGK 到4.9 ] 背景信息 由于内部使用Polycom的视频会议,在北.上.深各有办事处也用polycom ,偶 ...

  5. ElasticSearch+NLog实现.net core分布式日志管理

    概述 Elasticsearch可广泛应用于日志分析.全文检索.结构化数据分析等多种场景,大幅度降低维护多套专用系统的成本,在开源社区非常受欢迎.在系统中,如果将日志作为文件输出,查看系统日志将非常不 ...

  6. 演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤

    各位童鞋注意:该实验完成可以使用GNS3与4虚拟机进行桥接,然后在一台物理计算机上完成,不虽要去拿真正的4台服务器或者交换机路由器来连成一个网络,现在大家都使用网络仿真教学与实验! Linux工程环境 ...

  7. 防火墙和NAT基础学习

    防火墙 1. 防火墙基本概念 1.1 防火墙的功能 硬件防火墙是将各种技术融合在一起,采用专用的硬件架构,高速cpu,使用各种高速接口,从而保护我们的私有网络的安全.防火墙适应各种场合.用户可以根据自 ...

  8. H3C 防火墙混合实验 新华三杯拆解

    H3C 防火墙混合实验 一.项目拓扑 二.项目需求 三.配置步骤 1. 配置IP地址 2. FW默认路由,FW指向internet 3. 绑定防火墙安全域端口 4. 配置防火墙安全策略 5. OSPF ...

  9. Linux 防火墙与NAT服务

    防火墙与NAT服务器 Linux的防火墙主要透过Netfilter与TCPWrappers两个机制来管理的,其中Netfilter防火墙机制,可以让我们的私有IP的主机上网(IP分享器功能) 并且也能 ...

最新文章

  1. matlab在电力行业中的仿真技术-MATLAB基于EKF算法估计电动汽车蓄电池的SOC
  2. 小技巧:不用任何媒体处理软件进行视频压缩
  3. python filter函数中写none_Python3基础 filter 第一个参数为NONE时 结果只返回为True的对象...
  4. AngularJS中的过滤器(filter)
  5. Centos7 使用Docker MySQL部署_01
  6. XV6陷入,中断和驱动程序
  7. svn 中 版本回退
  8. LM2596S-ADJ DC-DC降压芯片使用
  9. 【JAVA程序设计】(C00011)基于ssm的企业OA(考勤)管理系统
  10. 常见笔顺错误的字_有哪些常见笔顺错误?
  11. codeforces 558D Guess Your Way Out! II
  12. Android 调起微信扫一扫
  13. 39、C++定义一个类,实现向量的加减运算
  14. elementary 安装常用软件
  15. 《ECMAScript 6 入门教程》学习笔记Ⅰ
  16. Vue实现轮播的方法
  17. IIS站点配置和DW CS6连接Access数据库
  18. Mybatis和MybatisPlus3.4的使用
  19. R语言 读写带分隔符的文件
  20. 个人网站5-网站SEO优化推广和增加百度谷歌收录

热门文章

  1. 用正则表达式爬取古诗文网站,边玩边学【python爬虫入门进阶】(09)
  2. 频谱仪的基本使用之RBW设置
  3. 如何更高效使用Mac?Mac必装软件推荐
  4. tidb-tso与标准时间相互转换
  5. log4j支持同时按日期和文件大小分割日志
  6. 判断一组数能否分成相等两组
  7. 计算机的神奇功能华为,图说华为MateBook X,这是一款神奇的笔记本电脑
  8. STM32F1在MDK下新建标准库函数工程
  9. 学位论文中将表格快速转换为latex格式
  10. Proxmox VE安装和在PVE上安装群晖DSM7.01