一、 前言
作为一名网络工程师进程要分析网络设备、防火墙设备日志,网上大部分都是通过logstash进行收集syslog日志,但是没有对国产设备防火墙分析。本次项目采用centos 7.2操作系统,elk7.7版本。关于elk的安装本次不涉及。
二、处理流程
1、开启防火墙会话功能,格式为syslog模式,其实也可以用netflow模式,elk其实是可以收集netflow日志;
2、elk在logstash配置文件配置grok插件,logstash模式安装了grok;
3、kibana需要将索引重新加载一下,就能关心的防火墙5元组重要信息(源端口、源IP、目的端口、目的ip等);
三、详细部署
应该华为防火墙涉及型号较多、版本都有所不同,但是原理都是一致的,所以本次说实现过的日志grok正则
1、防火墙日志:
Apr 29 2021 08:30:52 USG-FW01 %%01POLICY/6/POLICYPERMIT(l):vsys=public, protocol=6, source-ip=X.X.X.X, source-port=49187, destination-ip=X.X.X.X, destination-port=445, time=2021/4/29 16:30:52, source-zone=trust, destination-zone=untrust, application-name=,
2、grok正则表达式
(?<time>%{MONTH}\s%{MONTHDAY}\s%{YEAR}\s%{TIME}) %{HOSTNAME:name} %%01POLICY/6/%{WORD:policy}\(l\):vsys=%{WORD:vsys}, protocol=%{INT:protocol}, source-ip=%{IP:source_ip}, source-port=%{INT:source_port}, destination-ip=%{IP:destination_ip}, destination-port=%{INT:destination_port}, time=(?<session_time>%{YEAR}/%{MONTHNUM}/%{MONTHDAY}\s%{TIME}), source-zone=%{WORD:source_zone}, destination-zone=%{WORD:destinatione_zone}, (application-name=|application-name=%{WORD:application_name})
3、配置logstash配置
filter {
grok {
match => { "message" => "(?<time>%{MONTH}\s%{MONTHDAY}\s%{YEAR}\s%{TIME}) %{HOSTNAME:name} %%01POLICY/6/%{WORD:policy}\(l\):vsys=%{WORD:vsys}, protocol=%{INT:protocol}, source-ip=%{IP:source_ip}, source-port=%{INT:source_port}, destination-ip=%{IP:destination_ip}, destination-port=%{INT:destination_port}, time=(?<session_time>%{YEAR}/%{MONTHNUM}/%{MONTHDAY}\s%{TIME}), source-zone=%{WORD:source_zone}, destination-zone=%{WORD:destinatione_zone}, (application-name=|application-name=%{WORD:application_name})" }
}
}
4、通过grok正则进行提取关键字
{
"vsys": "public",
"destination_port": "445",
"source_zone": "trust",
"session_time": "2021/4/29 16:30:52",
"source_ip": "1.1.1.1",
"protocol": "6",
"destination_ip": "2.2.2.2",
"destinatione_zone": "untrust",
"source_port": "49187",
"name": "USG-FW01",
"time": "Apr 29 2021 08:30:52",
"policy": "POLICYPERMIT"
}
注意事项
1)、在grok正则表达式中自定义了120个,其中有多种时间定义,但是不都符合防火墙时间定义,所以需要自定义时间正则表达式,(?
kibana进行展示
kabana仪表盘中科院看到我们关注的防火墙五元组信息,源端口、源ip、目的端口、目的IP等信息;可以展示出ip地址排名、源端口排名、目的端口排名,具体操作将在下一期进行分享。